builder: release-comm-esr45-macosx64_release_update_verify_3 slave: bld-lion-r5-078 starttime: 1462839584.37 results: failure (2) ========= Started set props: master (results: 0, elapsed: 0 secs) (at 2016-05-09 17:19:44.375138) ========= master: http://buildbot-master86.bb.releng.scl3.mozilla.com:8001/ ========= Finished set props: master (results: 0, elapsed: 0 secs) (at 2016-05-09 17:19:44.375993) ========= ========= Started downloading to buildprops.json (results: 0, elapsed: 0 secs) (at 2016-05-09 17:19:44.376313) ========= ========= Finished downloading to buildprops.json (results: 0, elapsed: 0 secs) (at 2016-05-09 17:19:44.670189) ========= ========= Started 'rm -rf ...' (results: 0, elapsed: 0 secs) (at 2016-05-09 17:19:44.670839) ========= rm -rf scripts properties in dir /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/. (timeout 1200 secs) watching logfiles {} argv: ['rm', '-rf', 'scripts', 'properties'] environment: Apple_PubSub_Socket_Render=/tmp/launch-DFF9Xb/Render BUILDBOTCUSTOM=https://hg.mozilla.org/build/buildbotcustom BUILDBOT_CONFIGS=https://hg.mozilla.org/build/buildbot-configs CCACHE_COMPRESS=1 CCACHE_DIR=/builds/ccache CCACHE_UMASK=002 CHOWN_REVERT=~/bin/chown_revert CHOWN_ROOT=~/bin/chown_root CLOBBERER_URL=https://api.pub.build.mozilla.org/clobberer/forceclobber DISPLAY=/tmp/launch-uzQmPJ/org.x:0 GIT_SHARE_BASE_DIR=/builds/git-shared HG_SHARE_BASE_DIR=/builds/hg-shared HOME=/Users/cltbld IDLEIZER_DISABLE_SHUTDOWN=true LC_ALL=C LOGNAME=cltbld MOZ_AUTOMATION=1 MOZ_CRASHREPORTER_NO_REPORT=1 MOZ_OBJDIR=objdir-tb PATH=/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin PWD=/builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0 RUNNER_CONFIG_CMD=/opt/runner/bin/python2.7 /opt/runner/bin/runner -c /opt/runner/runner.cfg SHELL=/bin/bash SSH_AUTH_SOCK=/tmp/launch-zuRkMn/Listeners TINDERBOX_OUTPUT=1 TMPDIR=/var/folders/2l/m9q0960520g34fxk65k8lx6w00000w/T/ TWISTD_LOG_PATH=/builds/slave/twistd.log USER=cltbld VERSIONER_PYTHON_PREFER_32_BIT=no VERSIONER_PYTHON_VERSION=2.7 __CF_USER_TEXT_ENCODING=0x1C:0:0 using PTY: False program finished with exit code 0 elapsedTime=0.005349 ========= master_lag: 0.01 ========= ========= Finished 'rm -rf ...' (results: 0, elapsed: 0 secs) (at 2016-05-09 17:19:44.690062) ========= ========= Started 'hg clone ...' (results: 0, elapsed: 12 secs) (at 2016-05-09 17:19:44.690897) ========= hg clone https://hg.mozilla.org/build/tools scripts in dir /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/. (timeout 1320 secs) watching logfiles {} argv: ['hg', 'clone', 'https://hg.mozilla.org/build/tools', 'scripts'] environment: Apple_PubSub_Socket_Render=/tmp/launch-DFF9Xb/Render BUILDBOTCUSTOM=https://hg.mozilla.org/build/buildbotcustom BUILDBOT_CONFIGS=https://hg.mozilla.org/build/buildbot-configs CCACHE_COMPRESS=1 CCACHE_DIR=/builds/ccache CCACHE_UMASK=002 CHOWN_REVERT=~/bin/chown_revert CHOWN_ROOT=~/bin/chown_root CLOBBERER_URL=https://api.pub.build.mozilla.org/clobberer/forceclobber DISPLAY=/tmp/launch-uzQmPJ/org.x:0 GIT_SHARE_BASE_DIR=/builds/git-shared HG_SHARE_BASE_DIR=/builds/hg-shared HOME=/Users/cltbld IDLEIZER_DISABLE_SHUTDOWN=true LC_ALL=C LOGNAME=cltbld MOZ_AUTOMATION=1 MOZ_CRASHREPORTER_NO_REPORT=1 MOZ_OBJDIR=objdir-tb PATH=/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin PWD=/builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0 RUNNER_CONFIG_CMD=/opt/runner/bin/python2.7 /opt/runner/bin/runner -c /opt/runner/runner.cfg SHELL=/bin/bash SSH_AUTH_SOCK=/tmp/launch-zuRkMn/Listeners TINDERBOX_OUTPUT=1 TMPDIR=/var/folders/2l/m9q0960520g34fxk65k8lx6w00000w/T/ TWISTD_LOG_PATH=/builds/slave/twistd.log USER=cltbld VERSIONER_PYTHON_PREFER_32_BIT=no VERSIONER_PYTHON_VERSION=2.7 __CF_USER_TEXT_ENCODING=0x1C:0:0 using PTY: False warning: s3-us-west-2.amazonaws.com certificate with fingerprint 1a:0e:4a:64:90:c1:d0:2f:79:46:95:b5:17:dc:63:45:cf:19:37:bd not verified (check hostfingerprints or web.cacerts config setting) applying clone bundle from https://s3-us-west-2.amazonaws.com/moz-hg-bundles-us-west-2/build/tools/b030af490d9395958c3dc17443204037faf6a991.gzip.hg adding changesets adding manifests adding file changes added 6774 changesets with 14402 changes to 1986 files (+1 heads) finished applying clone bundle searching for changes adding changesets adding manifests adding file changes added 3 changesets with 7 changes to 6 files updating to branch default 1139 files updated, 0 files merged, 0 files removed, 0 files unresolved program finished with exit code 0 elapsedTime=12.196560 ========= master_lag: 0.02 ========= ========= Finished 'hg clone ...' (results: 0, elapsed: 12 secs) (at 2016-05-09 17:19:56.902748) ========= ========= Started 'hg update ...' (results: 0, elapsed: 0 secs) (at 2016-05-09 17:19:56.903276) ========= hg update -C -r THUNDERBIRD_45_1_0_RELEASE_RUNTIME in dir /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts (timeout 1200 secs) watching logfiles {} argv: ['hg', 'update', '-C', '-r', 'THUNDERBIRD_45_1_0_RELEASE_RUNTIME'] environment: Apple_PubSub_Socket_Render=/tmp/launch-DFF9Xb/Render BUILDBOTCUSTOM=https://hg.mozilla.org/build/buildbotcustom BUILDBOT_CONFIGS=https://hg.mozilla.org/build/buildbot-configs CCACHE_COMPRESS=1 CCACHE_DIR=/builds/ccache CCACHE_UMASK=002 CHOWN_REVERT=~/bin/chown_revert CHOWN_ROOT=~/bin/chown_root CLOBBERER_URL=https://api.pub.build.mozilla.org/clobberer/forceclobber DISPLAY=/tmp/launch-uzQmPJ/org.x:0 GIT_SHARE_BASE_DIR=/builds/git-shared HG_SHARE_BASE_DIR=/builds/hg-shared HOME=/Users/cltbld IDLEIZER_DISABLE_SHUTDOWN=true LC_ALL=C LOGNAME=cltbld MOZ_AUTOMATION=1 MOZ_CRASHREPORTER_NO_REPORT=1 MOZ_OBJDIR=objdir-tb PATH=/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin PWD=/builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts RUNNER_CONFIG_CMD=/opt/runner/bin/python2.7 /opt/runner/bin/runner -c /opt/runner/runner.cfg SHELL=/bin/bash SSH_AUTH_SOCK=/tmp/launch-zuRkMn/Listeners TINDERBOX_OUTPUT=1 TMPDIR=/var/folders/2l/m9q0960520g34fxk65k8lx6w00000w/T/ TWISTD_LOG_PATH=/builds/slave/twistd.log USER=cltbld VERSIONER_PYTHON_PREFER_32_BIT=no VERSIONER_PYTHON_VERSION=2.7 __CF_USER_TEXT_ENCODING=0x1C:0:0 using PTY: False 1 files updated, 0 files merged, 0 files removed, 0 files unresolved program finished with exit code 0 elapsedTime=0.814697 ========= master_lag: 0.01 ========= ========= Finished 'hg update ...' (results: 0, elapsed: 0 secs) (at 2016-05-09 17:19:57.730567) ========= ========= Started set props: script_repo_revision (results: 0, elapsed: 0 secs) (at 2016-05-09 17:19:57.730895) ========= hg id -i in dir /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts (timeout 1200 secs) watching logfiles {} argv: ['hg', 'id', '-i'] environment: Apple_PubSub_Socket_Render=/tmp/launch-DFF9Xb/Render BUILDBOTCUSTOM=https://hg.mozilla.org/build/buildbotcustom BUILDBOT_CONFIGS=https://hg.mozilla.org/build/buildbot-configs CCACHE_COMPRESS=1 CCACHE_DIR=/builds/ccache CCACHE_UMASK=002 CHOWN_REVERT=~/bin/chown_revert CHOWN_ROOT=~/bin/chown_root CLOBBERER_URL=https://api.pub.build.mozilla.org/clobberer/forceclobber DISPLAY=/tmp/launch-uzQmPJ/org.x:0 GIT_SHARE_BASE_DIR=/builds/git-shared HG_SHARE_BASE_DIR=/builds/hg-shared HOME=/Users/cltbld IDLEIZER_DISABLE_SHUTDOWN=true LC_ALL=C LOGNAME=cltbld MOZ_AUTOMATION=1 MOZ_CRASHREPORTER_NO_REPORT=1 MOZ_OBJDIR=objdir-tb PATH=/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin PWD=/builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts RUNNER_CONFIG_CMD=/opt/runner/bin/python2.7 /opt/runner/bin/runner -c /opt/runner/runner.cfg SHELL=/bin/bash SSH_AUTH_SOCK=/tmp/launch-zuRkMn/Listeners TINDERBOX_OUTPUT=1 TMPDIR=/var/folders/2l/m9q0960520g34fxk65k8lx6w00000w/T/ TWISTD_LOG_PATH=/builds/slave/twistd.log USER=cltbld VERSIONER_PYTHON_PREFER_32_BIT=no VERSIONER_PYTHON_VERSION=2.7 __CF_USER_TEXT_ENCODING=0x1C:0:0 using PTY: False 977ce00d7c48 program finished with exit code 0 elapsedTime=0.212117 script_repo_revision: '977ce00d7c48' ========= master_lag: 0.01 ========= ========= Finished set props: script_repo_revision (results: 0, elapsed: 0 secs) (at 2016-05-09 17:19:57.956870) ========= ========= Started 'bash scripts/scripts/release/updates/chunked-verify.sh ...' failed (results: 2, elapsed: 1 hrs, 35 mins, 6 secs) (at 2016-05-09 17:19:57.957237) ========= bash scripts/scripts/release/updates/chunked-verify.sh macosx64 updateChannels 6 3 release in dir /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/. (timeout 1200 secs) watching logfiles {} argv: ['bash', 'scripts/scripts/release/updates/chunked-verify.sh', 'macosx64', 'updateChannels', '6', '3', 'release'] environment: Apple_PubSub_Socket_Render=/tmp/launch-DFF9Xb/Render BUILDBOTCUSTOM=https://hg.mozilla.org/build/buildbotcustom BUILDBOT_CONFIGS=https://hg.mozilla.org/build/buildbot-configs CCACHE_COMPRESS=1 CCACHE_DIR=/builds/ccache CCACHE_UMASK=002 CHOWN_REVERT=~/bin/chown_revert CHOWN_ROOT=~/bin/chown_root CLOBBERER_URL=https://api.pub.build.mozilla.org/clobberer/forceclobber DISPLAY=/tmp/launch-uzQmPJ/org.x:0 GIT_SHARE_BASE_DIR=/builds/git-shared HG_SHARE_BASE_DIR=/builds/hg-shared HOME=/Users/cltbld IDLEIZER_DISABLE_SHUTDOWN=true LC_ALL=C LOGNAME=cltbld MOZ_AUTOMATION=1 MOZ_CRASHREPORTER_NO_REPORT=1 MOZ_OBJDIR=objdir-tb PATH=/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin PROPERTIES_FILE=/builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildprops.json PWD=/builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0 RUNNER_CONFIG_CMD=/opt/runner/bin/python2.7 /opt/runner/bin/runner -c /opt/runner/runner.cfg SHELL=/bin/bash SSH_AUTH_SOCK=/tmp/launch-zuRkMn/Listeners TINDERBOX_OUTPUT=1 TMPDIR=/var/folders/2l/m9q0960520g34fxk65k8lx6w00000w/T/ TWISTD_LOG_PATH=/builds/slave/twistd.log USER=cltbld VERSIONER_PYTHON_PREFER_32_BIT=no VERSIONER_PYTHON_VERSION=2.7 __CF_USER_TEXT_ENCODING=0x1C:0:0 using PTY: False + set -o pipefail ++ dirname scripts/scripts/release/updates/chunked-verify.sh + pushd scripts/scripts/release/updates ++ pwd + MY_DIR=/builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates + popd + SCRIPTS_DIR=/builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../.. + PYTHON=/tools/python/bin/python + '[' '!' -x /tools/python/bin/python ']' + PYTHON=python + JSONTOOL='python /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../buildfarm/utils/jsontool.py' ++ pwd + workdir=/builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0 + platform=macosx64 + configDict=updateChannels + chunks=6 + thisChunk=3 + channel=release + '[' -n /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildprops.json -a -f /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildprops.json ']' + python /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../buildfarm/utils/jsontool.py -k properties.NO_BBCONFIG /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildprops.json Traceback (most recent call last): File "/builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../buildfarm/utils/jsontool.py", line 25, in v = v[k] KeyError: 'NO_BBCONFIG' + python /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../buildfarm/utils/jsontool.py -k properties.VERIFY_CONFIG /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildprops.json Traceback (most recent call last): File "/builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../buildfarm/utils/jsontool.py", line 25, in v = v[k] KeyError: 'VERIFY_CONFIG' + python /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../buildfarm/utils/jsontool.py -k properties.TOTAL_CHUNKS /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildprops.json Traceback (most recent call last): File "/builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../buildfarm/utils/jsontool.py", line 25, in v = v[k] KeyError: 'TOTAL_CHUNKS' + python /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../buildfarm/utils/jsontool.py -k properties.THIS_CHUNK /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildprops.json Traceback (most recent call last): File "/builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../buildfarm/utils/jsontool.py", line 25, in v = v[k] KeyError: 'THIS_CHUNK' + '[' -z '' -a -z https://hg.mozilla.org/build/buildbot-configs ']' +++ cd /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../.. +++ pwd ++ basename /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0 + SLAVEBUILDDIR=tb-rel-c-esr45-m64_rel_u_v_3-0 + '[' -z '' ']' ++ python /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../buildfarm/utils/jsontool.py -k properties.release_config /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildprops.json + RELEASE_CONFIG=mozilla/release-thunderbird-comm-esr45.py ++ python /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../buildfarm/utils/jsontool.py -k properties.release_tag /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildprops.json + TAG=THUNDERBIRD_45_1_0_RELEASE ++ python /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../buildfarm/utils/jsontool.py -k properties.slavebuilddir /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildprops.json + SLAVEBUILDDIR=tb-rel-c-esr45-m64_rel_u_v_3-0 + python -u /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../buildfarm/maintenance/purge_builds.py -s 16 -n info -n 'rel-*' -n 'tb-rel-*' -n tb-rel-c-esr45-m64_rel_u_v_3-0 706.17 GB of space available + '[' -z '' -a -n '' ']' + '[' -z '' ']' + python /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/chunked-verify.py -t THUNDERBIRD_45_1_0_RELEASE -r mozilla/release-thunderbird-comm-esr45.py -b https://hg.mozilla.org/build/buildbot-configs -p macosx64 --chunks 6 --this-chunk 3 --config-dict updateChannels --release-channel release + tee /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../../verify_log.txt Reporting hg version in use command: START command: hg -q version command: cwd: . command: output: Mercurial Distributed SCM (version 3.7.3) command: END (0.09s elapsed) Checking if share extension works command: START command: hg help share command: cwd: /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0 command: env: {'HGPLAIN': '1'} command: END (0.25s elapsed) command: START command: hg path default command: cwd: /builds/hg-shared/build/buildbot-configs command: env: {'HGPLAIN': '1'} command: END (0.25s elapsed) command: output: https://hg.mozilla.org/build/buildbot-configs Updating shared repo Reporting hg version in use command: START command: hg -q version command: cwd: . command: output: Mercurial Distributed SCM (version 3.7.3) command: END (0.09s elapsed) command: START command: hg path default command: cwd: /builds/hg-shared/build/buildbot-configs command: env: {'HGPLAIN': '1'} command: END (0.25s elapsed) command: output: https://hg.mozilla.org/build/buildbot-configs command: START command: hg pull --traceback https://hg.mozilla.org/build/buildbot-configs command: cwd: /builds/hg-shared/build/buildbot-configs command: env: {'HGPLAIN': '1'} command: END (0.25s elapsed) command: output: pulling from https://hg.mozilla.org/build/buildbot-configs searching for changes no changes found Trying to share /builds/hg-shared/build/buildbot-configs to /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildbot-configs mkdir: /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildbot-configs command: START command: hg share -U /builds/hg-shared/build/buildbot-configs /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildbot-configs command: cwd: /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0 command: output: command: END (0.22s elapsed) command: START command: hg branch command: cwd: /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildbot-configs command: env: {'HGPLAIN': '1'} command: END (0.25s elapsed) command: output: default command: START command: hg update -C command: cwd: /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildbot-configs command: output: 195 files updated, 0 files merged, 0 files removed, 0 files unresolved command: END (1.99s elapsed) command: START command: hg parent --template {node|short} command: cwd: /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/buildbot-configs command: env: {'HGPLAIN': '1'} command: END (0.25s elapsed) command: output: 3a7c1d3dbace command: START command: hg update -C -r THUNDERBIRD_45_1_0_RELEASE command: cwd: buildbot-configs command: output: 14 files updated, 0 files merged, 0 files removed, 0 files unresolved command: END (0.40s elapsed) command: START command: hg parent --template {node|short} command: cwd: buildbot-configs command: env: {'HGPLAIN': '1'} command: END (0.25s elapsed) command: output: 101957d3f7db command: START command: cat /var/folders/2l/m9q0960520g34fxk65k8lx6w00000w/T/tmp4HzGCA command: cwd: /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0 command: output: release="38.7.2" product="Thunderbird" platform="Darwin_x86_64-gcc3-u-i386-x86_64" build_id="20160402193654" locales="ta-LK tr uk vi zh-CN zh-TW" channel="release-localtest" patch_types="complete partial" from="/thunderbird/releases/38.7.2/mac/%locale%/Thunderbird 38.7.2.dmg" aus_server="https://aus4.mozilla.org" ftp_server_from="http://archive.mozilla.org/pub/mozilla.org" ftp_server_to="http://archive.mozilla.org/pub/mozilla.org" to="/thunderbird/candidates/45.1.0-candidates/build3/mac/%locale%/Thunderbird 45.1.0.dmg" release="38.7.1" product="Thunderbird" platform="Darwin_x86_64-gcc3-u-i386-x86_64" build_id="20160323055719" locales="de en-US ru" channel="release-localtest" patch_types="complete" from="/thunderbird/releases/38.7.1/mac/%locale%/Thunderbird 38.7.1.dmg" ftp_server_from="http://archive.mozilla.org/pub/mozilla.org" ftp_server_to="http://archive.mozilla.org/pub/mozilla.org" release="38.7.0" product="Thunderbird" platform="Darwin_x86_64-gcc3-u-i386-x86_64" build_id="20160310150025" locales="de en-US ru" channel="release-localtest" patch_types="complete" from="/thunderbird/releases/38.7.0/mac/%locale%/Thunderbird 38.7.0.dmg" ftp_server_from="http://archive.mozilla.org/pub/mozilla.org" ftp_server_to="http://archive.mozilla.org/pub/mozilla.org" release="38.6.0" product="Thunderbird" platform="Darwin_x86_64-gcc3-u-i386-x86_64" build_id="20160211132445" locales="ar ast be bg bn-BD br ca cs cy da de dsb el en-GB en-US es-AR es-ES et eu fi fr fy-NL ga-IE gd gl he hr hsb hu hy-AM id is it ja-JP-mac ko lt nb-NO nl nn-NO pa-IN pl pt-BR pt-PT" channel="release-localtest" patch_types="complete partial" from="/thunderbird/releases/38.6.0/mac/%locale%/Thunderbird 38.6.0.dmg" ftp_server_from="http://archive.mozilla.org/pub/mozilla.org" ftp_server_to="http://archive.mozilla.org/pub/mozilla.org" release="31.1.1" product="Thunderbird" platform="Darwin_x86_64-gcc3-u-i386-x86_64" build_id="20140908105904" locales="nn-NO pa-IN pl pt-BR pt-PT rm ro si sk sl sq sr sv-SE ta-LK tr uk vi zh-CN zh-TW" channel="release-localtest" patch_types="complete" release="31.1.0" product="Thunderbird" platform="Darwin_x86_64-gcc3-u-i386-x86_64" build_id="20140828165811" locales="ar ast be bg bn-BD br ca cs da el en-GB es-AR es-ES et eu fi fr fy-NL ga-IE gd gl he hr hu hy-AM id is it ja-JP-mac ko lt nb-NO nl nn-NO pa-IN pl pt-BR pt-PT rm ro si sk sl sq sr sv-SE ta-LK tr uk vi zh-CN zh-TW" channel="release-localtest" patch_types="complete" release="31.0" product="Thunderbird" platform="Darwin_x86_64-gcc3-u-i386-x86_64" build_id="20140717165725" locales="ar ast be bg bn-BD br ca cs da el en-GB es-AR es-ES et eu fi fr fy-NL ga-IE gd gl he hr hu hy-AM id is it ja-JP-mac ko lt nb-NO nl nn-NO pa-IN pl pt-BR pt-PT rm ro si sk sl sq sr sv-SE ta-LK tr uk vi zh-CN zh-TW" channel="release-localtest" patch_types="complete" release="24.6.0" product="Thunderbird" platform="Darwin_x86_64-gcc3-u-i386-x86_64" build_id="20140610001341" locales="ar ast be bg bn-BD br ca cs da el en-GB es-AR es-ES et eu fi fr fy-NL ga-IE gd gl he hr hu hy-AM id is it ja-JP-mac ko lt nb-NO nl nn-NO pa-IN pl pt-BR pt-PT rm ro si sk sl sq sr sv-SE ta-LK tr uk vi zh-CN zh-TW" channel="release-localtest" patch_types="complete" release="24.5.0" product="Thunderbird" platform="Darwin_x86_64-gcc3-u-i386-x86_64" build_id="20140424091057" locales="ar ast be bg bn-BD br ca cs da el en-GB es-AR es-ES et eu fi fr fy-NL ga-IE gd gl he hr hu hy-AM id is it ja-JP-mac ko lt nb-NO nl nn-NO pa-IN pl pt-BR pt-PT rm ro si sk sl sq sr sv-SE ta-LK tr uk vi zh-CN zh-TW" channel="release-localtest" patch_types="complete" release="24.4.0" product="Thunderbird" platform="Darwin_x86_64-gcc3-u-i386-x86_64" build_id="20140316131045" locales="ar ast be bg bn-BD br ca cs da el en-GB es-AR es-ES et eu fi fr fy-NL ga-IE gd gl he hr hu hy-AM id is it ja-JP-mac ko lt nb-NO nl nn-NO pa-IN pl pt-BR pt-PT rm ro si sk sl sq sr sv-SE ta-LK tr uk vi zh-CN zh-TW" channel="release-localtest" patch_types="complete" release="24.3.0" product="Thunderbird" platform="Darwin_x86_64-gcc3-u-i386-x86_64" build_id="20140131124303" locales="ar ast be bg bn-BD br ca cs da el en-GB es-AR es-ES et eu fi fr fy-NL ga-IE gd gl he hr hu hy-AM id is it ja-JP-mac ko lt nb-NO nl nn-NO pa-IN pl pt-BR pt-PT rm ro si sk sl sq sr sv-SE ta-LK tr uk vi zh-CN zh-TW" channel="release-localtest" patch_types="complete" release="24.2.0" product="Thunderbird" platform="Darwin_x86_64-gcc3-u-i386-x86_64" build_id="20131206072529" locales="ar ast be bg bn-BD br ca cs da el en-GB es-AR es-ES et eu fi fr fy-NL ga-IE gd gl he hr hu hy-AM id is it ja-JP-mac ko lt nb-NO nl nn-NO pa-IN pl pt-BR pt-PT rm ro si sk sl sq sr sv-SE ta-LK tr uk vi zh-CN zh-TW" channel="release-localtest" patch_types="complete" release="24.1.1" product="Thunderbird" platform="Darwin_x86_64-gcc3-u-i386-x86_64" build_id="20131118083805" locales="ar ast be bg bn-BD br ca cs da el en-GB es-AR es-ES et eu fi fr fy-NL ga-IE gd gl he hr hu hy-AM id is it ja-JP-mac ko lt nb-NO nl nn-NO pa-IN pl pt-BR pt-PT rm ro si sk sl sq sr sv-SE ta-LK tr uk vi zh-CN zh-TW" channel="release-localtest" patch_types="complete" release="24.1.0" product="Thunderbird" platform="Darwin_x86_64-gcc3-u-i386-x86_64" build_id="20131023145339" locales="ar ast be bg bn-BD br ca cs da el en-GB" channel="release-localtest" patch_types="complete" command: END (0.00s elapsed) command: START command: bash verify.sh -c /var/folders/2l/m9q0960520g34fxk65k8lx6w00000w/T/tmp4HzGCA command: cwd: /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/scripts/scripts/release/updates/../../../release/updates command: output: Using config file /var/folders/2l/m9q0960520g34fxk65k8lx6w00000w/T/tmp4HzGCA Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:20:03-- https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.46, 63.245.213.44 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:20:03 GMT Keep-Alive: timeout=5, max=966 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 948 Length: 948 [text/xml] Saving to: 'update.xml' 0K 100% 113M=0s 2016-05-09 17:20:03 (113 MB/s) - 'update.xml' saved [948/948] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ta-LK/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ta-LK/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:20:04-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ta-LK/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67931504 Connection: keep-alive Date: Tue, 10 May 2016 00:20:05 GMT x-amz-replication-status: COMPLETED x-amz-version-id: la5Clej0u2BwsX3SCX.P_WaYM7_0US5t Last-Modified: Tue, 03 May 2016 16:17:43 GMT ETag: "bb84ad91fc9001840968dacaea7c2828" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 3d3d633d266d05d90a4eea7a6a59b514.cloudfront.net (CloudFront) X-Amz-Cf-Id: S7pXqfwcsUJvzJPojQTuYdzhqi467jvrYc4HPGukD0-GGdji8h-Phg== Length: 67931504 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 2.17M 29s 3072K ........ ........ ........ ........ ........ ........ 9% 7.55M 17s 6144K ........ ........ ........ ........ ........ ........ 13% 11.3M 13s 9216K ........ ........ ........ ........ ........ ........ 18% 14.8M 10s 12288K ........ ........ ........ ........ ........ ........ 23% 15.4M 8s 15360K ........ ........ ........ ........ ........ ........ 27% 21.7M 7s 18432K ........ ........ ........ ........ ........ ........ 32% 22.6M 6s 21504K ........ ........ ........ ........ ........ ........ 37% 23.8M 5s 24576K ........ ........ ........ ........ ........ ........ 41% 23.5M 4s 27648K ........ ........ ........ ........ ........ ........ 46% 40.1M 4s 30720K ........ ........ ........ ........ ........ ........ 50% 24.4M 3s 33792K ........ ........ ........ ........ ........ ........ 55% 37.9M 3s 36864K ........ ........ ........ ........ ........ ........ 60% 24.0M 2s 39936K ........ ........ ........ ........ ........ ........ 64% 24.2M 2s 43008K ........ ........ ........ ........ ........ ........ 69% 38.1M 2s 46080K ........ ........ ........ ........ ........ ........ 74% 25.0M 1s 49152K ........ ........ ........ ........ ........ ........ 78% 37.9M 1s 52224K ........ ........ ........ ........ ........ ........ 83% 23.8M 1s 55296K ........ ........ ........ ........ ........ ........ 87% 42.0M 1s 58368K ........ ........ ........ ........ ........ ........ 92% 24.8M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 39.0M 0s 64512K ........ ........ ........ .... 100% 27.7M=4.2s 2016-05-09 17:20:08 (15.3 MB/s) - 'update/complete.mar' saved [67931504/67931504] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/ta-LK/Thunderbird 38.7.2.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.7.2.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/ta-LK/Thunderbird 38.7.2.dmg'] --2016-05-09 17:20:09-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/ta-LK/Thunderbird%2038.7.2.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69981167 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:20:10 GMT ETag: "0b4ba970596894e578ac99fd391c5d6c" Last-Modified: Mon, 04 Apr 2016 16:48:58 GMT x-amz-replication-status: COMPLETED x-amz-version-id: LufMlrBpk_imuN3HRQLi7OvDbhG83uqb X-Cache: Miss from cloudfront Via: 1.1 8e86372eaaa62fc64b70e7bcde725dd9.cloudfront.net (CloudFront) X-Amz-Cf-Id: E2XnZhEyP-THVlzD75nV_hqyNEXQzNkiCMIRAksGuSqBhJX7qFinug== Length: 69981167 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.7.2.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.84M 35s 3072K ........ ........ ........ ........ ........ ........ 8% 7.39M 21s 6144K ........ ........ ........ ........ ........ ........ 13% 8.13M 15s 9216K ........ ........ ........ ........ ........ ........ 17% 8.44M 13s 12288K ........ ........ ........ ........ ........ ........ 22% 4.71M 12s 15360K ........ ........ ........ ........ ........ ........ 26% 6.44M 10s 18432K ........ ........ ........ ........ ........ ........ 31% 3.31M 10s 21504K ........ ........ ........ ........ ........ ........ 35% 18.7M 9s 24576K ........ ........ ........ ........ ........ ........ 40% 10.3M 8s 27648K ........ ........ ........ ........ ........ ........ 44% 7.10M 7s 30720K ........ ........ ........ ........ ........ ........ 49% 6.15M 6s 33792K ........ ........ ........ ........ ........ ........ 53% 6.95M 6s 36864K ........ ........ ........ ........ ........ ........ 58% 6.10M 5s 39936K ........ ........ ........ ........ ........ ........ 62% 4.21M 5s 43008K ........ ........ ........ ........ ........ ........ 67% 5.09M 4s 46080K ........ ........ ........ ........ ........ ........ 71% 5.57M 3s 49152K ........ ........ ........ ........ ........ ........ 76% 6.52M 3s 52224K ........ ........ ........ ........ ........ ........ 80% 6.60M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 6.90M 2s 58368K ........ ........ ........ ........ ........ ........ 89% 6.16M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 5.97M 1s 64512K ........ ........ ........ ........ ........ ........ 98% 5.78M 0s 67584K ........ ... 100% 5.64M=12s 2016-05-09 17:20:22 (5.62 MB/s) - 'Thunderbird 38.7.2.dmg' saved [69981167/69981167] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ta-LK/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ta-LK/Thunderbird 45.1.0.dmg'] --2016-05-09 17:20:23-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ta-LK/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77318950 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:20:23 GMT ETag: "ac5dd2e15f9d88e1bfd004734040e2e6" Last-Modified: Mon, 09 May 2016 22:07:20 GMT x-amz-replication-status: COMPLETED x-amz-version-id: H6v2q4eD4Py8JDQzQDsVsUAPnboOfw4a X-Cache: Miss from cloudfront Via: 1.1 aa96a51fedae85199c643eb5c8eca4e4.cloudfront.net (CloudFront) X-Amz-Cf-Id: HkQyS7NgQksn3kIeV-sRCuMbAZic7qegOe2TBSD2XHGbVsceczYNMA== Length: 77318950 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 2.16M 33s 3072K ........ ........ ........ ........ ........ ........ 8% 5.35M 22s 6144K ........ ........ ........ ........ ........ ........ 12% 7.01M 17s 9216K ........ ........ ........ ........ ........ ........ 16% 8.37M 14s 12288K ........ ........ ........ ........ ........ ........ 20% 7.52M 12s 15360K ........ ........ ........ ........ ........ ........ 24% 7.49M 11s 18432K ........ ........ ........ ........ ........ ........ 28% 10.2M 10s 21504K ........ ........ ........ ........ ........ ........ 32% 8.32M 9s 24576K ........ ........ ........ ........ ........ ........ 36% 6.94M 8s 27648K ........ ........ ........ ........ ........ ........ 40% 9.63M 7s 30720K ........ ........ ........ ........ ........ ........ 44% 8.36M 7s 33792K ........ ........ ........ ........ ........ ........ 48% 8.42M 6s 36864K ........ ........ ........ ........ ........ ........ 52% 8.39M 5s 39936K ........ ........ ........ ........ ........ ........ 56% 7.54M 5s 43008K ........ ........ ........ ........ ........ ........ 61% 10.7M 4s 46080K ........ ........ ........ ........ ........ ........ 65% 10.4M 4s 49152K ........ ........ ........ ........ ........ ........ 69% 11.1M 3s 52224K ........ ........ ........ ........ ........ ........ 73% 13.0M 3s 55296K ........ ........ ........ ........ ........ ........ 77% 7.89M 2s 58368K ........ ........ ........ ........ ........ ........ 81% 17.9M 2s 61440K ........ ........ ........ ........ ........ ........ 85% 22.9M 1s 64512K ........ ........ ........ ........ ........ ........ 89% 18.9M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 13.0M 1s 70656K ........ ........ ........ ........ ........ ........ 97% 9.37M 0s 73728K ........ ........ ........ ... 100% 15.5M=9.0s 2016-05-09 17:20:32 (8.21 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77318950/77318950] installing downloads/Thunderbird 38.7.2.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/ta.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/ta.lproj/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/ta.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/ta.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/ta.lproj/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/ta.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/ta.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ta.lproj/ non-fatal error removing directory: Contents/Resources/ta.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/ta.lproj/InfoPlist.strings FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_9-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_9-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_9-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_9-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_9-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_9-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_9-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_9-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_9-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_9-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 5,11d4 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 117d107 < rmdir "Contents/Resources/searchplugins/" 122d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < /zgVAgElV+pHo/MlKo7tyPrpTpg= --- > PrynNTqNgqXaT6rYXLtDWsetfqI= 221c221 < NiEOns/U3FJc5c20KcoooTu3Qxg= --- > DTA80S7aXgCgUX+76r7mtEKaoAQ= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < Lxq2pJUT3aquAJdkWKHlq7dKNYI= --- > oe4SKUG33s9d9hwaNqyPqFCCheg= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 429c429 < j6DQ5aZ9LrqviqYobqMlxZ6//Cg= --- > BE5RKAbfrmS8zwFbMk+V93ihCv8= 433c433 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 437c437 < 3zeOvwjYmUe4MBzYJBZ+BCN48zs= --- > BhR8H4FGaNjU1xOMExYLgYFlsFA= 441c441 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 591,618d590 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < 4hekEFfDHIlJB92abRZ1BbFo16g= --- > bpr7Htwb7H/XZclKCE551jNQYv0= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c978 < /zgVAgElV+pHo/MlKo7tyPrpTpg= --- > PrynNTqNgqXaT6rYXLtDWsetfqI= 1010c982 < NiEOns/U3FJc5c20KcoooTu3Qxg= --- > DTA80S7aXgCgUX+76r7mtEKaoAQ= 1014c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1070 < Lxq2pJUT3aquAJdkWKHlq7dKNYI= --- > oe4SKUG33s9d9hwaNqyPqFCCheg= 1102c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1176c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1178c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1180c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1182c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1184c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1186c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1188c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1190c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1218c1190 < j6DQ5aZ9LrqviqYobqMlxZ6//Cg= --- > BE5RKAbfrmS8zwFbMk+V93ihCv8= 1222c1194 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1226c1198 < 3zeOvwjYmUe4MBzYJBZ+BCN48zs= --- > BhR8H4FGaNjU1xOMExYLgYFlsFA= 1230c1202 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1380,1407d1351 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48009851 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:21 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48009850 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:21 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48009849 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:21 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48009800 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:21 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48009799 8 -rw-r--r-- 1 cltbld staff 1670 May 9 17:21 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48009798 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:21 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48009797 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:21 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48009796 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:21 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48009795 8 -rw-r--r-- 1 cltbld staff 1338 May 9 17:21 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48009794 8 -rw-r--r-- 1 cltbld staff 1363 May 9 17:21 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ta-LK/thunderbird-38.7.2-38.8.0.partial.mar' and placing in cache... Executing: ['wget', '-O', 'update/partial.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ta-LK/thunderbird-38.7.2-38.8.0.partial.mar'] --2016-05-09 17:21:29-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ta-LK/thunderbird-38.7.2-38.8.0.partial.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 3994554 Connection: keep-alive Date: Tue, 10 May 2016 00:21:31 GMT x-amz-replication-status: COMPLETED x-amz-version-id: I_.bc7LlfY5dMr2qgRHx68eIH9Qs5P.u Last-Modified: Tue, 03 May 2016 16:18:05 GMT ETag: "502af19efbb48fac796c807e4a79d351" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 990c804118e679d7ea0f4d3ca3cc4534.cloudfront.net (CloudFront) X-Amz-Cf-Id: WSJY9LfKylInwdzdnnUASl_q-nfh5UbBzc_UZC6LobYNWE06ruKfLA== Length: 3994554 (3.8M) [application/octet-stream] Saving to: 'update/partial.mar' 0K ........ ........ ........ ........ ........ ........ 78% 1.79M 0s 3072K ........ .... 100% 3.72M=1.9s 2016-05-09 17:21:32 (2.01 MB/s) - 'update/partial.mar' saved [3994554/3994554] Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/ta-LK/Thunderbird 38.7.2.dmg' from cache... Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ta-LK/Thunderbird 45.1.0.dmg' from cache... installing downloads/Thunderbird 38.7.2.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE partial PREPARE PATCH Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE PATCH Contents/Resources/platform.ini PREPARE PATCH Contents/Resources/omni.ja PREPARE PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE PATCH Contents/Resources/blocklist.xml PREPARE PATCH Contents/Resources/application.ini PREPARE PATCH Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE PATCH Contents/MacOS/thunderbird-bin PREPARE PATCH Contents/MacOS/thunderbird PREPARE PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE PATCH Contents/MacOS/libsoftokn3.dylib PREPARE PATCH Contents/MacOS/libprldap60.dylib PREPARE PATCH Contents/MacOS/libplugin_child_interpose.dylib PREPARE PATCH Contents/MacOS/libnssdbm3.dylib PREPARE PATCH Contents/MacOS/libnssckbi.dylib PREPARE PATCH Contents/MacOS/libnss3.dylib PREPARE PATCH Contents/MacOS/libmozglue.dylib PREPARE PATCH Contents/MacOS/libmozalloc.dylib PREPARE PATCH Contents/MacOS/libldif60.dylib PREPARE PATCH Contents/MacOS/libldap60.dylib PREPARE PATCH Contents/MacOS/libfreebl3.dylib PREPARE PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE PATCH Contents/MacOS/XUL PREPARE PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE PATCH Contents/Info.plist EXECUTE PATCH Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE PATCH Contents/Resources/platform.ini EXECUTE PATCH Contents/Resources/omni.ja EXECUTE PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE PATCH Contents/Resources/blocklist.xml EXECUTE PATCH Contents/Resources/application.ini EXECUTE PATCH Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE PATCH Contents/MacOS/thunderbird-bin EXECUTE PATCH Contents/MacOS/thunderbird EXECUTE PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE PATCH Contents/MacOS/libsoftokn3.dylib EXECUTE PATCH Contents/MacOS/libprldap60.dylib EXECUTE PATCH Contents/MacOS/libplugin_child_interpose.dylib EXECUTE PATCH Contents/MacOS/libnssdbm3.dylib EXECUTE PATCH Contents/MacOS/libnssckbi.dylib EXECUTE PATCH Contents/MacOS/libnss3.dylib EXECUTE PATCH Contents/MacOS/libmozglue.dylib EXECUTE PATCH Contents/MacOS/libmozalloc.dylib EXECUTE PATCH Contents/MacOS/libldif60.dylib EXECUTE PATCH Contents/MacOS/libldap60.dylib EXECUTE PATCH Contents/MacOS/libfreebl3.dylib EXECUTE PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE PATCH Contents/MacOS/XUL EXECUTE PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE PATCH Contents/Info.plist FINISH PATCH Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH PATCH Contents/Resources/platform.ini FINISH PATCH Contents/Resources/omni.ja FINISH PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH PATCH Contents/Resources/blocklist.xml FINISH PATCH Contents/Resources/application.ini FINISH PATCH Contents/MacOS/updater.app/Contents/MacOS/updater FINISH PATCH Contents/MacOS/thunderbird-bin FINISH PATCH Contents/MacOS/thunderbird FINISH PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH PATCH Contents/MacOS/libsoftokn3.dylib FINISH PATCH Contents/MacOS/libprldap60.dylib FINISH PATCH Contents/MacOS/libplugin_child_interpose.dylib FINISH PATCH Contents/MacOS/libnssdbm3.dylib FINISH PATCH Contents/MacOS/libnssckbi.dylib FINISH PATCH Contents/MacOS/libnss3.dylib FINISH PATCH Contents/MacOS/libmozglue.dylib FINISH PATCH Contents/MacOS/libmozalloc.dylib FINISH PATCH Contents/MacOS/libldif60.dylib FINISH PATCH Contents/MacOS/libldap60.dylib FINISH PATCH Contents/MacOS/libfreebl3.dylib FINISH PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH PATCH Contents/MacOS/XUL FINISH PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH PATCH Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_9-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_9-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_9-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_9-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_9-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_9-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_9-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_9-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_9-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_9-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 5,11d4 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 117d107 < rmdir "Contents/Resources/searchplugins/" 122d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < /zgVAgElV+pHo/MlKo7tyPrpTpg= --- > PrynNTqNgqXaT6rYXLtDWsetfqI= 221c221 < NiEOns/U3FJc5c20KcoooTu3Qxg= --- > DTA80S7aXgCgUX+76r7mtEKaoAQ= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < Lxq2pJUT3aquAJdkWKHlq7dKNYI= --- > oe4SKUG33s9d9hwaNqyPqFCCheg= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 429c429 < j6DQ5aZ9LrqviqYobqMlxZ6//Cg= --- > BE5RKAbfrmS8zwFbMk+V93ihCv8= 433c433 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 437c437 < 3zeOvwjYmUe4MBzYJBZ+BCN48zs= --- > BhR8H4FGaNjU1xOMExYLgYFlsFA= 441c441 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 591,618d590 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < 4hekEFfDHIlJB92abRZ1BbFo16g= --- > bpr7Htwb7H/XZclKCE551jNQYv0= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c978 < /zgVAgElV+pHo/MlKo7tyPrpTpg= --- > PrynNTqNgqXaT6rYXLtDWsetfqI= 1010c982 < NiEOns/U3FJc5c20KcoooTu3Qxg= --- > DTA80S7aXgCgUX+76r7mtEKaoAQ= 1014c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1070 < Lxq2pJUT3aquAJdkWKHlq7dKNYI= --- > oe4SKUG33s9d9hwaNqyPqFCCheg= 1102c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1176c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1178c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1180c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1182c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1184c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1186c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1188c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1190c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1218c1190 < j6DQ5aZ9LrqviqYobqMlxZ6//Cg= --- > BE5RKAbfrmS8zwFbMk+V93ihCv8= 1222c1194 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1226c1198 < 3zeOvwjYmUe4MBzYJBZ+BCN48zs= --- > BhR8H4FGaNjU1xOMExYLgYFlsFA= 1230c1202 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1380,1407d1351 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48010214 8 -rw-r--r-- 1 cltbld staff 1221 Apr 2 19:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48010215 8 -rw-r--r-- 1 cltbld staff 2284 Apr 2 19:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48010568 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:22 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48010260 8 -rw-r--r-- 1 cltbld staff 1531 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48010261 8 -rw-r--r-- 1 cltbld staff 1670 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48010262 8 -rw-r--r-- 1 cltbld staff 2453 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48010263 8 -rw-r--r-- 1 cltbld staff 2569 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48010264 8 -rw-r--r-- 1 cltbld staff 899 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48010265 8 -rw-r--r-- 1 cltbld staff 1338 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48010266 8 -rw-r--r-- 1 cltbld staff 1363 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 SUCCESS: partial updates are smaller than complete updates, all is well in the universe Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:22:23-- https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.46, 63.245.213.44, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.46|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:22:23 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 939 Length: 939 [text/xml] Saving to: 'update.xml' 0K 100% 128M=0s 2016-05-09 17:22:23 (128 MB/s) - 'update.xml' saved [939/939] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/tr/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/tr/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:22:23-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/tr/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67836745 Connection: keep-alive Date: Tue, 10 May 2016 00:22:25 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 5g2H.LgZwg05jpL8vrfSaYNRSjVuhYCv Last-Modified: Tue, 03 May 2016 15:17:19 GMT ETag: "a22a61f58dac42fdf26cfbe936d457e6" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 02192a27c967e955f8c815efa939bfc8.cloudfront.net (CloudFront) X-Amz-Cf-Id: jIk4nhghFXpOOsaLxcguMhb0i9B27lSoJcIQ2xInzcMlUgSZ0d5BVQ== Length: 67836745 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 2.15M 29s 3072K ........ ........ ........ ........ ........ ........ 9% 5.08M 19s 6144K ........ ........ ........ ........ ........ ........ 13% 7.61M 15s 9216K ........ ........ ........ ........ ........ ........ 18% 9.34M 12s 12288K ........ ........ ........ ........ ........ ........ 23% 11.4M 10s 15360K ........ ........ ........ ........ ........ ........ 27% 14.4M 8s 18432K ........ ........ ........ ........ ........ ........ 32% 14.9M 7s 21504K ........ ........ ........ ........ ........ ........ 37% 17.2M 6s 24576K ........ ........ ........ ........ ........ ........ 41% 19.4M 5s 27648K ........ ........ ........ ........ ........ ........ 46% 19.4M 4s 30720K ........ ........ ........ ........ ........ ........ 51% 19.3M 4s 33792K ........ ........ ........ ........ ........ ........ 55% 18.1M 3s 36864K ........ ........ ........ ........ ........ ........ 60% 21.0M 3s 39936K ........ ........ ........ ........ ........ ........ 64% 20.3M 2s 43008K ........ ........ ........ ........ ........ ........ 69% 24.0M 2s 46080K ........ ........ ........ ........ ........ ........ 74% 30.5M 2s 49152K ........ ........ ........ ........ ........ ........ 78% 30.5M 1s 52224K ........ ........ ........ ........ ........ ........ 83% 35.0M 1s 55296K ........ ........ ........ ........ ........ ........ 88% 36.7M 1s 58368K ........ ........ ........ ........ ........ ........ 92% 31.5M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 29.3M 0s 64512K ........ ........ ........ ... 100% 31.1M=5.2s 2016-05-09 17:22:29 (12.4 MB/s) - 'update/complete.mar' saved [67836745/67836745] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/tr/Thunderbird 38.7.2.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.7.2.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/tr/Thunderbird 38.7.2.dmg'] --2016-05-09 17:22:30-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/tr/Thunderbird%2038.7.2.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69853613 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:22:31 GMT ETag: "740dea8417199916362a88704667e027" Last-Modified: Mon, 04 Apr 2016 16:48:13 GMT x-amz-replication-status: COMPLETED x-amz-version-id: k5lgvgT1oVE2lmzUoL0CWkYfy9qHFQMW X-Cache: Miss from cloudfront Via: 1.1 515297ac55a7ae01bf8c7d03df4fecb1.cloudfront.net (CloudFront) X-Amz-Cf-Id: zMo0YM-vRJmC8DDkSViVuuHiIo0uvY7Zz-tV21EyqETC63e3F_qKaA== Length: 69853613 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.7.2.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 893K 73s 3072K ........ ........ ........ ........ ........ ........ 9% 1.06M 63s 6144K ........ ........ ........ ........ ........ ........ 13% 1.43M 54s 9216K ........ ........ ........ ........ ........ ........ 18% 1.31M 49s 12288K ........ ........ ........ ........ ........ ........ 22% 1.42M 44s 15360K ........ ........ ........ ........ ........ ........ 27% 2.81M 37s 18432K ........ ........ ........ ........ ........ ........ 31% 4.85M 31s 21504K ........ ........ ........ ........ ........ ........ 36% 5.83M 27s 24576K ........ ........ ........ ........ ........ ........ 40% 8.15M 23s 27648K ........ ........ ........ ........ ........ ........ 45% 8.44M 19s 30720K ........ ........ ........ ........ ........ ........ 49% 8.94M 16s 33792K ........ ........ ........ ........ ........ ........ 54% 11.0M 14s 36864K ........ ........ ........ ........ ........ ........ 58% 10.7M 12s 39936K ........ ........ ........ ........ ........ ........ 63% 9.97M 10s 43008K ........ ........ ........ ........ ........ ........ 67% 11.2M 8s 46080K ........ ........ ........ ........ ........ ........ 72% 7.89M 7s 49152K ........ ........ ........ ........ ........ ........ 76% 16.6M 5s 52224K ........ ........ ........ ........ ........ ........ 81% 7.97M 4s 55296K ........ ........ ........ ........ ........ ........ 85% 8.59M 3s 58368K ........ ........ ........ ........ ........ ........ 90% 7.39M 2s 61440K ........ ........ ........ ........ ........ ........ 94% 7.07M 1s 64512K ........ ........ ........ ........ ........ ........ 99% 8.02M 0s 67584K ........ . 100% 6.90M=20s 2016-05-09 17:22:51 (3.37 MB/s) - 'Thunderbird 38.7.2.dmg' saved [69853613/69853613] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/tr/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/tr/Thunderbird 45.1.0.dmg'] --2016-05-09 17:22:51-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/tr/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77227425 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:22:52 GMT ETag: "2a67b261cd41805c559d369ca373f039" Last-Modified: Mon, 09 May 2016 20:35:53 GMT x-amz-replication-status: COMPLETED x-amz-version-id: FdIGYjXppy3J37Fym5XMwjj0oQAZGoRX X-Cache: Miss from cloudfront Via: 1.1 8e86372eaaa62fc64b70e7bcde725dd9.cloudfront.net (CloudFront) X-Amz-Cf-Id: X2inePmiOWGiu4Tbi3-q8VdsQ4SSBHmQB7-8pCgA6soTfjt6TLXG7Q== Length: 77227425 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.21M 59s 3072K ........ ........ ........ ........ ........ ........ 8% 4.50M 36s 6144K ........ ........ ........ ........ ........ ........ 12% 5.88M 26s 9216K ........ ........ ........ ........ ........ ........ 16% 7.42M 21s 12288K ........ ........ ........ ........ ........ ........ 20% 8.87M 17s 15360K ........ ........ ........ ........ ........ ........ 24% 11.0M 14s 18432K ........ ........ ........ ........ ........ ........ 28% 12.2M 12s 21504K ........ ........ ........ ........ ........ ........ 32% 10.7M 11s 24576K ........ ........ ........ ........ ........ ........ 36% 15.3M 9s 27648K ........ ........ ........ ........ ........ ........ 40% 15.5M 8s 30720K ........ ........ ........ ........ ........ ........ 44% 19.7M 7s 33792K ........ ........ ........ ........ ........ ........ 48% 19.9M 6s 36864K ........ ........ ........ ........ ........ ........ 52% 26.0M 5s 39936K ........ ........ ........ ........ ........ ........ 57% 25.3M 5s 43008K ........ ........ ........ ........ ........ ........ 61% 25.8M 4s 46080K ........ ........ ........ ........ ........ ........ 65% 16.8M 3s 49152K ........ ........ ........ ........ ........ ........ 69% 23.2M 3s 52224K ........ ........ ........ ........ ........ ........ 73% 27.2M 2s 55296K ........ ........ ........ ........ ........ ........ 77% 7.10M 2s 58368K ........ ........ ........ ........ ........ ........ 81% 8.91M 2s 61440K ........ ........ ........ ........ ........ ........ 85% 11.7M 1s 64512K ........ ........ ........ ........ ........ ........ 89% 14.8M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 12.0M 1s 70656K ........ ........ ........ ........ ........ ........ 97% 16.1M 0s 73728K ........ ........ ........ .. 100% 15.9M=8.4s 2016-05-09 17:23:01 (8.74 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77227425/77227425] installing downloads/Thunderbird 38.7.2.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/tr.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yandex-tr.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-tr.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/tr.lproj/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/tr.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yandex-tr.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-tr.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/tr.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yandex-tr.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-tr.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/tr.lproj/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/tr.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yandex-tr.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-tr.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/tr.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yandex-tr.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-tr.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/tr.lproj/ non-fatal error removing directory: Contents/Resources/tr.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/tr.lproj/InfoPlist.strings FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yandex-tr.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-tr.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 5,7d4 < remove "Contents/Resources/searchplugins/yandex-tr.xml" < remove "Contents/Resources/searchplugins/wikipedia-tr.xml" < remove "Contents/Resources/searchplugins/google.xml" 55,57c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 86c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 113d107 < rmdir "Contents/Resources/searchplugins/" 118d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < mO8r8cZW4R84fWXz4rdK9HBoPHk= --- > ihxrHz1MIjfKCQ4+bcW8J+YwUbs= 221c221 < UoqjGmU2zAMhEaRtkc5oiDfvWf8= --- > NK2cmOiXH2ODNJ9ttcHKooyDtQQ= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < UOIXweQRyUA+mMzA1XeOMjzdm9w= --- > 79Obd3Zj3Vus/Y+s6soHQwVDRnM= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 429c429 < XNP/hmLQLBfZv0oOxpCROZMsiiQ= --- > p4bsGLMvASI6M4EIhK/RClgcVEE= 433c433 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 437c437 < Y52yq72cs8Xq58Na8NoF5m5lJPQ= --- > moUjPR/r0KHsodm7Y0mlycAGqs4= 441c441 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 591,602d590 < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/wikipedia-tr.xml < < CjW5o4XA/TRcYNIM8SKDhkg0IzI= < < Resources/searchplugins/yandex-tr.xml < < kNd+CEl66/V7h+sdAi1w1Hjqovs= < 640c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 649c637 < cul0zNKxuZwzv8/7hIVoZzVfv3A= --- > b/j9NDzyASgjnXqSLMG/UJBif44= 658c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 667c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 676c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 681c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 685c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 694c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 703c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 712c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 721c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 730c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 739c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 748c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 757c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 766c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 775c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 782c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 786c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 798c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 802c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 806c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 810c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 814c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 818c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 822c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 826c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 830c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 834c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 838c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 842c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 846c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 850c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 854c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 858c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 862c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 866c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 870c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 874c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 878c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 882c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 886c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 890c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 894c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 898c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 902c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 906c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 910c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 914c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 918c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 922c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 926c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 930c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 934c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 938c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 942c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 946c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 950c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 954c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 958c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 962c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 966c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 970c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 974c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 982c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 986c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 990c978 < mO8r8cZW4R84fWXz4rdK9HBoPHk= --- > ihxrHz1MIjfKCQ4+bcW8J+YwUbs= 994c982 < UoqjGmU2zAMhEaRtkc5oiDfvWf8= --- > NK2cmOiXH2ODNJ9ttcHKooyDtQQ= 998c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1002c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1006c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1010c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1014c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1018c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1022c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1026c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1030c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1034c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1038c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1042c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1046c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1050c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1054c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1066c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1070c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1078c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1082c1070 < UOIXweQRyUA+mMzA1XeOMjzdm9w= --- > 79Obd3Zj3Vus/Y+s6soHQwVDRnM= 1086c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1090c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1094c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1098c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1102c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1106c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1110c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1114c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1118c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1122c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1126c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1130c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1134c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1142c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1146c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1150c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1154c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1158c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1160c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1162c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1164c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1166c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1168c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1170c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1172c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1174c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1202c1190 < XNP/hmLQLBfZv0oOxpCROZMsiiQ= --- > p4bsGLMvASI6M4EIhK/RClgcVEE= 1206c1194 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1210c1198 < Y52yq72cs8Xq58Na8NoF5m5lJPQ= --- > moUjPR/r0KHsodm7Y0mlycAGqs4= 1214c1202 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1364,1375d1351 < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/wikipedia-tr.xml < < CjW5o4XA/TRcYNIM8SKDhkg0IzI= < < Resources/searchplugins/yandex-tr.xml < < kNd+CEl66/V7h+sdAi1w1Hjqovs= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48011191 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:23 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48011190 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:23 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48011189 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:23 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48011140 8 -rw-r--r-- 1 cltbld staff 2371 May 9 17:23 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48011139 8 -rw-r--r-- 1 cltbld staff 2223 May 9 17:23 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-tr.xml 48011138 8 -rw-r--r-- 1 cltbld staff 2618 May 9 17:23 source/Thunderbird.app/Contents/Resources/searchplugins/yandex-tr.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/tr/thunderbird-38.7.2-38.8.0.partial.mar' and placing in cache... Executing: ['wget', '-O', 'update/partial.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/tr/thunderbird-38.7.2-38.8.0.partial.mar'] --2016-05-09 17:23:54-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/tr/thunderbird-38.7.2-38.8.0.partial.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 3993315 Connection: keep-alive Date: Tue, 10 May 2016 00:23:56 GMT x-amz-replication-status: COMPLETED x-amz-version-id: PAH5U.MGAe.R2zCvxgSXDevJbFuTnXhJ Last-Modified: Tue, 03 May 2016 15:17:24 GMT ETag: "75eb4426118d72da6021e25321d94a86" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 0576b942ae9f4fc9c0b62b0736e9bfd6.cloudfront.net (CloudFront) X-Amz-Cf-Id: IMdUizyxTr0bO0bCqMuZICtqI7V3kMPGY9ce3zac1ubBNQ-OHiXW5w== Length: 3993315 (3.8M) [application/octet-stream] Saving to: 'update/partial.mar' 0K ........ ........ ........ ........ ........ ........ 78% 1.95M 0s 3072K ........ .... 100% 3.73M=1.8s 2016-05-09 17:23:57 (2.17 MB/s) - 'update/partial.mar' saved [3993315/3993315] Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/tr/Thunderbird 38.7.2.dmg' from cache... Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/tr/Thunderbird 45.1.0.dmg' from cache... installing downloads/Thunderbird 38.7.2.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE partial PREPARE PATCH Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE PATCH Contents/Resources/platform.ini PREPARE PATCH Contents/Resources/omni.ja PREPARE PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE PATCH Contents/Resources/blocklist.xml PREPARE PATCH Contents/Resources/application.ini PREPARE PATCH Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE PATCH Contents/MacOS/thunderbird-bin PREPARE PATCH Contents/MacOS/thunderbird PREPARE PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE PATCH Contents/MacOS/libsoftokn3.dylib PREPARE PATCH Contents/MacOS/libprldap60.dylib PREPARE PATCH Contents/MacOS/libplugin_child_interpose.dylib PREPARE PATCH Contents/MacOS/libnssdbm3.dylib PREPARE PATCH Contents/MacOS/libnssckbi.dylib PREPARE PATCH Contents/MacOS/libnss3.dylib PREPARE PATCH Contents/MacOS/libmozglue.dylib PREPARE PATCH Contents/MacOS/libmozalloc.dylib PREPARE PATCH Contents/MacOS/libldif60.dylib PREPARE PATCH Contents/MacOS/libldap60.dylib PREPARE PATCH Contents/MacOS/libfreebl3.dylib PREPARE PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE PATCH Contents/MacOS/XUL PREPARE PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE PATCH Contents/Info.plist EXECUTE PATCH Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE PATCH Contents/Resources/platform.ini EXECUTE PATCH Contents/Resources/omni.ja EXECUTE PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE PATCH Contents/Resources/blocklist.xml EXECUTE PATCH Contents/Resources/application.ini EXECUTE PATCH Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE PATCH Contents/MacOS/thunderbird-bin EXECUTE PATCH Contents/MacOS/thunderbird EXECUTE PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE PATCH Contents/MacOS/libsoftokn3.dylib EXECUTE PATCH Contents/MacOS/libprldap60.dylib EXECUTE PATCH Contents/MacOS/libplugin_child_interpose.dylib EXECUTE PATCH Contents/MacOS/libnssdbm3.dylib EXECUTE PATCH Contents/MacOS/libnssckbi.dylib EXECUTE PATCH Contents/MacOS/libnss3.dylib EXECUTE PATCH Contents/MacOS/libmozglue.dylib EXECUTE PATCH Contents/MacOS/libmozalloc.dylib EXECUTE PATCH Contents/MacOS/libldif60.dylib EXECUTE PATCH Contents/MacOS/libldap60.dylib EXECUTE PATCH Contents/MacOS/libfreebl3.dylib EXECUTE PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE PATCH Contents/MacOS/XUL EXECUTE PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE PATCH Contents/Info.plist FINISH PATCH Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH PATCH Contents/Resources/platform.ini FINISH PATCH Contents/Resources/omni.ja FINISH PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH PATCH Contents/Resources/blocklist.xml FINISH PATCH Contents/Resources/application.ini FINISH PATCH Contents/MacOS/updater.app/Contents/MacOS/updater FINISH PATCH Contents/MacOS/thunderbird-bin FINISH PATCH Contents/MacOS/thunderbird FINISH PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH PATCH Contents/MacOS/libsoftokn3.dylib FINISH PATCH Contents/MacOS/libprldap60.dylib FINISH PATCH Contents/MacOS/libplugin_child_interpose.dylib FINISH PATCH Contents/MacOS/libnssdbm3.dylib FINISH PATCH Contents/MacOS/libnssckbi.dylib FINISH PATCH Contents/MacOS/libnss3.dylib FINISH PATCH Contents/MacOS/libmozglue.dylib FINISH PATCH Contents/MacOS/libmozalloc.dylib FINISH PATCH Contents/MacOS/libldif60.dylib FINISH PATCH Contents/MacOS/libldap60.dylib FINISH PATCH Contents/MacOS/libfreebl3.dylib FINISH PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH PATCH Contents/MacOS/XUL FINISH PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH PATCH Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/tr/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 5,7d4 < remove "Contents/Resources/searchplugins/yandex-tr.xml" < remove "Contents/Resources/searchplugins/wikipedia-tr.xml" < remove "Contents/Resources/searchplugins/google.xml" 55,57c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 86c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 113d107 < rmdir "Contents/Resources/searchplugins/" 118d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < mO8r8cZW4R84fWXz4rdK9HBoPHk= --- > ihxrHz1MIjfKCQ4+bcW8J+YwUbs= 221c221 < UoqjGmU2zAMhEaRtkc5oiDfvWf8= --- > NK2cmOiXH2ODNJ9ttcHKooyDtQQ= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < UOIXweQRyUA+mMzA1XeOMjzdm9w= --- > 79Obd3Zj3Vus/Y+s6soHQwVDRnM= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 429c429 < XNP/hmLQLBfZv0oOxpCROZMsiiQ= --- > p4bsGLMvASI6M4EIhK/RClgcVEE= 433c433 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 437c437 < Y52yq72cs8Xq58Na8NoF5m5lJPQ= --- > moUjPR/r0KHsodm7Y0mlycAGqs4= 441c441 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 591,602d590 < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/wikipedia-tr.xml < < CjW5o4XA/TRcYNIM8SKDhkg0IzI= < < Resources/searchplugins/yandex-tr.xml < < kNd+CEl66/V7h+sdAi1w1Hjqovs= < 640c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 649c637 < cul0zNKxuZwzv8/7hIVoZzVfv3A= --- > b/j9NDzyASgjnXqSLMG/UJBif44= 658c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 667c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 676c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 681c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 685c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 694c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 703c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 712c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 721c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 730c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 739c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 748c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 757c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 766c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 775c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 782c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 786c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 798c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 802c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 806c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 810c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 814c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 818c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 822c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 826c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 830c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 834c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 838c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 842c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 846c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 850c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 854c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 858c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 862c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 866c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 870c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 874c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 878c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 882c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 886c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 890c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 894c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 898c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 902c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 906c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 910c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 914c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 918c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 922c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 926c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 930c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 934c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 938c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 942c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 946c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 950c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 954c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 958c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 962c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 966c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 970c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 974c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 982c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 986c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 990c978 < mO8r8cZW4R84fWXz4rdK9HBoPHk= --- > ihxrHz1MIjfKCQ4+bcW8J+YwUbs= 994c982 < UoqjGmU2zAMhEaRtkc5oiDfvWf8= --- > NK2cmOiXH2ODNJ9ttcHKooyDtQQ= 998c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1002c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1006c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1010c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1014c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1018c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1022c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1026c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1030c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1034c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1038c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1042c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1046c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1050c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1054c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1066c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1070c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1078c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1082c1070 < UOIXweQRyUA+mMzA1XeOMjzdm9w= --- > 79Obd3Zj3Vus/Y+s6soHQwVDRnM= 1086c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1090c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1094c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1098c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1102c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1106c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1110c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1114c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1118c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1122c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1126c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1130c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1134c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1142c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1146c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1150c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1154c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1158c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1160c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1162c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1164c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1166c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1168c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1170c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1172c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1174c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1202c1190 < XNP/hmLQLBfZv0oOxpCROZMsiiQ= --- > p4bsGLMvASI6M4EIhK/RClgcVEE= 1206c1194 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1210c1198 < Y52yq72cs8Xq58Na8NoF5m5lJPQ= --- > moUjPR/r0KHsodm7Y0mlycAGqs4= 1214c1202 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1364,1375d1351 < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/wikipedia-tr.xml < < CjW5o4XA/TRcYNIM8SKDhkg0IzI= < < Resources/searchplugins/yandex-tr.xml < < kNd+CEl66/V7h+sdAi1w1Hjqovs= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48011555 8 -rw-r--r-- 1 cltbld staff 1221 Apr 2 19:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48011556 8 -rw-r--r-- 1 cltbld staff 2284 Apr 2 19:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48011903 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:24 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48011601 8 -rw-r--r-- 1 cltbld staff 2371 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48011602 8 -rw-r--r-- 1 cltbld staff 2223 Apr 2 21:35 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-tr.xml 48011603 8 -rw-r--r-- 1 cltbld staff 2618 Apr 2 21:35 source/Thunderbird.app/Contents/Resources/searchplugins/yandex-tr.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 SUCCESS: partial updates are smaller than complete updates, all is well in the universe Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:24:47-- https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:24:47 GMT Keep-Alive: timeout=5, max=778 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 939 Length: 939 [text/xml] Saving to: 'update.xml' 0K 100% 112M=0s 2016-05-09 17:24:47 (112 MB/s) - 'update.xml' saved [939/939] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/uk/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/uk/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:24:48-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/uk/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68326769 Connection: keep-alive Date: Tue, 10 May 2016 00:24:49 GMT x-amz-replication-status: COMPLETED x-amz-version-id: wPITwkGNUc3DfpdIyGaCKlOXJqDfHMJd Last-Modified: Tue, 03 May 2016 15:30:03 GMT ETag: "b74814b17503746806ba9f8eb68c62cd" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 55676da1e5c0a9c4e60a94a95b01dc04.cloudfront.net (CloudFront) X-Amz-Cf-Id: Hqa9MNz0DIzdQnFMYooZ9umjNsoV_M7c1yLR665wRtfLK7jRmFqw8w== Length: 68326769 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 2.28M 27s 3072K ........ ........ ........ ........ ........ ........ 9% 5.65M 18s 6144K ........ ........ ........ ........ ........ ........ 13% 7.61M 14s 9216K ........ ........ ........ ........ ........ ........ 18% 10.3M 11s 12288K ........ ........ ........ ........ ........ ........ 23% 12.3M 9s 15360K ........ ........ ........ ........ ........ ........ 27% 11.8M 8s 18432K ........ ........ ........ ........ ........ ........ 32% 15.3M 7s 21504K ........ ........ ........ ........ ........ ........ 36% 18.9M 6s 24576K ........ ........ ........ ........ ........ ........ 41% 16.8M 5s 27648K ........ ........ ........ ........ ........ ........ 46% 23.3M 4s 30720K ........ ........ ........ ........ ........ ........ 50% 21.4M 4s 33792K ........ ........ ........ ........ ........ ........ 55% 25.5M 3s 36864K ........ ........ ........ ........ ........ ........ 59% 31.8M 3s 39936K ........ ........ ........ ........ ........ ........ 64% 27.8M 2s 43008K ........ ........ ........ ........ ........ ........ 69% 30.2M 2s 46080K ........ ........ ........ ........ ........ ........ 73% 29.1M 2s 49152K ........ ........ ........ ........ ........ ........ 78% 42.4M 1s 52224K ........ ........ ........ ........ ........ ........ 82% 35.5M 1s 55296K ........ ........ ........ ........ ........ ........ 87% 30.1M 1s 58368K ........ ........ ........ ........ ........ ........ 92% 41.6M 0s 61440K ........ ........ ........ ........ ........ ........ 96% 40.6M 0s 64512K ........ ........ ........ ........ .. 100% 41.2M=4.8s 2016-05-09 17:24:53 (13.6 MB/s) - 'update/complete.mar' saved [68326769/68326769] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/uk/Thunderbird 38.7.2.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.7.2.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/uk/Thunderbird 38.7.2.dmg'] --2016-05-09 17:24:54-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/uk/Thunderbird%2038.7.2.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70311440 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:24:54 GMT ETag: "aa8410890c68d5b355c006ae3cd6d015" Last-Modified: Mon, 04 Apr 2016 16:48:16 GMT x-amz-replication-status: COMPLETED x-amz-version-id: CH8b6Jr.Qc0we9WH0B9UxOY3pAcgJuEd X-Cache: Miss from cloudfront Via: 1.1 6e65abb04cb818a6ec78111935b507f7.cloudfront.net (CloudFront) X-Amz-Cf-Id: 6MGA2zmuDvIkUMyNyoHnkAxcNkakOepnFjglfiCCPkuBeNxHQ28DMg== Length: 70311440 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.7.2.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.29M 50s 3072K ........ ........ ........ ........ ........ ........ 8% 3.64M 32s 6144K ........ ........ ........ ........ ........ ........ 13% 4.97M 24s 9216K ........ ........ ........ ........ ........ ........ 17% 6.18M 19s 12288K ........ ........ ........ ........ ........ ........ 22% 7.83M 16s 15360K ........ ........ ........ ........ ........ ........ 26% 9.31M 13s 18432K ........ ........ ........ ........ ........ ........ 31% 10.0M 12s 21504K ........ ........ ........ ........ ........ ........ 35% 13.4M 10s 24576K ........ ........ ........ ........ ........ ........ 40% 11.4M 9s 27648K ........ ........ ........ ........ ........ ........ 44% 14.7M 7s 30720K ........ ........ ........ ........ ........ ........ 49% 14.1M 6s 33792K ........ ........ ........ ........ ........ ........ 53% 16.8M 5s 36864K ........ ........ ........ ........ ........ ........ 58% 20.4M 5s 39936K ........ ........ ........ ........ ........ ........ 62% 17.3M 4s 43008K ........ ........ ........ ........ ........ ........ 67% 12.0M 3s 46080K ........ ........ ........ ........ ........ ........ 71% 22.1M 3s 49152K ........ ........ ........ ........ ........ ........ 76% 10.8M 2s 52224K ........ ........ ........ ........ ........ ........ 80% 13.9M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 16.2M 1s 58368K ........ ........ ........ ........ ........ ........ 89% 18.6M 1s 61440K ........ ........ ........ ........ ........ ........ 93% 18.0M 1s 64512K ........ ........ ........ ........ ........ ........ 98% 15.7M 0s 67584K ........ ........ 100% 16.4M=8.3s 2016-05-09 17:25:03 (8.08 MB/s) - 'Thunderbird 38.7.2.dmg' saved [70311440/70311440] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/uk/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/uk/Thunderbird 45.1.0.dmg'] --2016-05-09 17:25:03-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/uk/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77731569 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:25:04 GMT ETag: "471ea68f7211683eb4267e724e9d445a" Last-Modified: Mon, 09 May 2016 20:59:40 GMT x-amz-replication-status: COMPLETED x-amz-version-id: BoFoE2Yb0evmBE7neKh.sOXFA..rrON8 X-Cache: Miss from cloudfront Via: 1.1 ff09df097f823b2834408d17e9779d62.cloudfront.net (CloudFront) X-Amz-Cf-Id: 1Ab6A49IEJMljSokbg0RaQ0yjKR_GikVXpPZF-snx1oh3NF6nJi69w== Length: 77731569 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.64M 43s 3072K ........ ........ ........ ........ ........ ........ 8% 6.07M 26s 6144K ........ ........ ........ ........ ........ ........ 12% 8.40M 19s 9216K ........ ........ ........ ........ ........ ........ 16% 10.4M 15s 12288K ........ ........ ........ ........ ........ ........ 20% 11.2M 13s 15360K ........ ........ ........ ........ ........ ........ 24% 12.0M 11s 18432K ........ ........ ........ ........ ........ ........ 28% 12.0M 9s 21504K ........ ........ ........ ........ ........ ........ 32% 19.9M 8s 24576K ........ ........ ........ ........ ........ ........ 36% 16.2M 7s 27648K ........ ........ ........ ........ ........ ........ 40% 7.72M 7s 30720K ........ ........ ........ ........ ........ ........ 44% 12.9M 6s 33792K ........ ........ ........ ........ ........ ........ 48% 12.7M 5s 36864K ........ ........ ........ ........ ........ ........ 52% 14.5M 5s 39936K ........ ........ ........ ........ ........ ........ 56% 13.8M 4s 43008K ........ ........ ........ ........ ........ ........ 60% 16.0M 4s 46080K ........ ........ ........ ........ ........ ........ 64% 15.9M 3s 49152K ........ ........ ........ ........ ........ ........ 68% 16.4M 3s 52224K ........ ........ ........ ........ ........ ........ 72% 16.1M 2s 55296K ........ ........ ........ ........ ........ ........ 76% 17.6M 2s 58368K ........ ........ ........ ........ ........ ........ 80% 16.5M 2s 61440K ........ ........ ........ ........ ........ ........ 84% 16.6M 1s 64512K ........ ........ ........ ........ ........ ........ 89% 16.3M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 17.8M 1s 70656K ........ ........ ........ ........ ........ ........ 97% 15.0M 0s 73728K ........ ........ ........ ........ .. 100% 18.4M=7.3s 2016-05-09 17:25:11 (10.2 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77731569/77731569] installing downloads/Thunderbird 38.7.2.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/uk.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/uk.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/uk.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/uk.lproj/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/uk.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/uk.dic PREPARE ADD Contents/Resources/dictionaries/uk.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/uk.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/uk.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/uk.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/uk.lproj/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/uk.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/uk.dic EXECUTE ADD Contents/Resources/dictionaries/uk.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/uk.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/uk.dic FINISH REMOVEFILE Contents/Resources/dictionaries/uk.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/uk.lproj/ non-fatal error removing directory: Contents/Resources/uk.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/uk.lproj/InfoPlist.strings FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/uk.dic FINISH ADD Contents/Resources/dictionaries/uk.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini 1c1,5 < ; This file is in the UTF-8 encoding --- > # This Source Code Form is subject to the terms of the Mozilla Public > # License, v. 2.0. If a copy of the MPL was not distributed with this > # file, You can obtain one at http://mozilla.org/MPL/2.0/. > > # This file is in the UTF-8 encoding 9c13 < ; LOCALIZATION NOTE (CrashReporterVendorTitle): %s is replaced with the vendor name. (i.e. "Mozilla") --- > # LOCALIZATION NOTE (CrashReporterVendorTitle): %s is replaced with the vendor name. (i.e. "Mozilla") 11,14c15,18 < ; LOCALIZATION NOTE (CrashReporterErrorText): %s is replaced with another string containing detailed information. < CrashReporterErrorText=Програма зіткнулаÑÑŒ з проблемою та впала.\n\nÐа жаль, доповідач про аварії не здатен надіÑлати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ цю аварію.\n\nПодробиці: %s < ; LOCALIZATION NOTE (CrashReporterProductErrorText2): The first %s is replaced with the product name (i.e. "Firefox"), the second is replaced with another string containing detailed information. These two substitutions can not be reordered! < CrashReporterProductErrorText2=%s зіткнувÑÑ Ð· проблемою Ñ– впав.\n\nÐа жаль, доповідач про аварії не здатен надіÑлати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ цю аварію.\n\nПодробиці: %s --- > # LOCALIZATION NOTE (CrashReporterErrorText): %s is replaced with another string containing detailed information. > CrashReporterErrorText=Програма зіткнулаÑÑŒ з проблемою Ñ– впала.\n\nÐа жаль, не вдалоÑÑ Ð½Ð°Ð´Ñ–Ñлати звіт про це падіннÑ.\n\nПодробиці: %s > # LOCALIZATION NOTE (CrashReporterProductErrorText2): The first %s is replaced with the product name (i.e. "Firefox"), the second is replaced with another string containing detailed information. These two substitutions can not be reordered! > CrashReporterProductErrorText2=%s зіткнувÑÑ Ð· проблемою Ñ– впав.\n\nÐа жаль, не вдалоÑÑ Ð½Ð°Ð´Ñ–Ñлати звіт про падіннÑ.\n\nПодробиці: %s 16,17c20,21 < ; LOCALIZATION NOTE (CrashReporterDescriptionText2): The %s is replaced with the product name. < CrashReporterDescriptionText2=%s зіткнувÑÑ Ð· проблемою Ñ– впав.\n\nЩоб допомогти нам розібратиÑÑŒ та виправити проблему ви можете надіÑлати нам Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ аварію. --- > # LOCALIZATION NOTE (CrashReporterDescriptionText2): The %s is replaced with the product name. > CrashReporterDescriptionText2=%s зіткнувÑÑ Ð· проблемою Ñ– впав.\n\nЩоб допомогти нам розібратиÑÑŒ Ñ– виправити проблему, ви можете надіÑлати звіт про падіннÑ. 23,24c27,28 < ; LOCALIZATION NOTE (CheckSendReport): The %s is replaced with the vendor name. < CheckSendReport=Повідомте %s про цю аварію, щоб вони змогли Ñ—Ñ— виправити --- > # LOCALIZATION NOTE (CheckSendReport): The %s is replaced with the vendor name. > CheckSendReport=Повідомте %s про це падіннÑ, щоб вони змогли владнати проблему 28c32 < ReportPreSubmit2=Ваш звіт про аварію буде надіÑлано до того, Ñк ви закриєте або перезавантажите програму. --- > ReportPreSubmit2=Ваш звіт про Ð¿Ð°Ð´Ñ–Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ надіÑлано перед тим, Ñк ви закриєте або перезапуÑтите програму. 33c37 < ; LOCALIZATION NOTE (Quit2): The %s is replaced with the product name. --- > # LOCALIZATION NOTE (Quit2): The %s is replaced with the product name. 35c39 < ; LOCALIZATION NOTE (Restart): The %s is replaced with the product name. --- > # LOCALIZATION NOTE (Restart): The %s is replaced with the product name. 39c43,44 < ; LOCALIZATION NOTE (CrashID): The %s is replaced with the Crash ID from the server, which is a string like abc12345-6789-0abc-def1-23456abcdef1 --- > > # LOCALIZATION NOTE (CrashID): The %s is replaced with the Crash ID from the server, which is a string like abc12345-6789-0abc-def1-23456abcdef1 41c46 < ; LOCALIZATION NOTE (CrashDetailsURL): The %s is replaced with a URL that the user can visit to view the crash details. --- > # LOCALIZATION NOTE (CrashDetailsURL): The %s is replaced with a URL that the user can visit to view the crash details. 53c58 < ; LOCALIZATION NOTE (ErrorEndOfLife): The %s is replaced with the product name. --- > # LOCALIZATION NOTE (ErrorEndOfLife): The %s is replaced with the product name. 54a60 > diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources 76c76 < ePu/uY9EafoDxws2UxZnc8zkG4k= --- > PqdN5g07UOwZqcuPp7oCNVaYqDw= 150c150 < ePu/uY9EafoDxws2UxZnc8zkG4k= --- > PqdN5g07UOwZqcuPp7oCNVaYqDw= Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 5,11d4 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 92c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 119d109 < rmdir "Contents/Resources/searchplugins/" 124d113 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/Resources/updater.ini target/Thunderbird.app/Contents/Resources/updater.ini 1c1,5 < ; This file is in the UTF-8 encoding --- > # This Source Code Form is subject to the terms of the Mozilla Public > # License, v. 2.0. If a copy of the MPL was not distributed with this > # file, You can obtain one at http://mozilla.org/MPL/2.0/. > > # This file is in the UTF-8 encoding 3d6 < Info=Thunderbird вÑтановлює оновленнÑ. Він запуÑтитьÑÑ Ð·Ð° мить… 4a8 > Info=Thunderbird вÑтановлює оновленнÑ. Він запуÑтитьÑÑ Ð·Ð° мить… diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < TZ/7QG3IKJtkZJmMcYe2TGTqU9A= --- > bXGu1eFlGRPCAji1D9Gbemc5Zfg= 229c229 < tJYH+WwP3BW+bKBCrqHmxRIwIWI= --- > IpZl1StF7QoYwkMOiVcanUCYSn4= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < PtS1xH5v/RT9WyKD15Ky9+zcnQ0= --- > LbDXBNUnmPn27sdeC1/14jAL+/I= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 395c395 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 397c397 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 401c401 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 403c403 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 405c405 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 409c409 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 437c437 < f8h9bKJMVjRwHiUUyIZHR6R66hk= --- > fhZM8InUb/+KVlV3gFOaB9mnuo0= 441c441 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 445c445 < jXlAaXeutzxOr5AM3Iq9xAZdGSM= --- > Dhp+mncuPBFrW6hEnlVDYUEsY2w= 449c449 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 599,626d598 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 646c618 < NwJGB5qzwkvr9jvSVyZhruPKF4k= --- > t6fgeo2neV1tYerign2yOBOJoww= 664c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 673c645 < u+G+IyVX0rNR56EeqaomiqPgq7Y= --- > t8FpMOMGt1bEDSYDkuSi3lYXFdg= 682c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 691c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 700c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 705c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 709c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 718c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 727c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 736c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 745c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 754c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 763c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 772c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 781c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 790c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 799c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 806c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 810c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 822c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 834c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 838c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 842c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 846c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 850c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 854c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 858c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 862c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 866c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 870c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 874c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 878c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 882c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 886c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 890c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 894c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 898c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 902c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 906c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 910c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 914c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 918c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 922c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 926c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 930c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 934c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 938c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 942c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 946c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 950c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 954c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 958c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 962c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 966c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 970c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 974c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 978c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 982c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 986c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 990c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 994c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 998c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 1002c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1006c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1014c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1018c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1022c994 < TZ/7QG3IKJtkZJmMcYe2TGTqU9A= --- > bXGu1eFlGRPCAji1D9Gbemc5Zfg= 1026c998 < tJYH+WwP3BW+bKBCrqHmxRIwIWI= --- > IpZl1StF7QoYwkMOiVcanUCYSn4= 1030c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1034c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1038c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1042c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1046c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1050c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1054c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1058c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1062c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1066c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1070c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1074c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1078c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1082c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1086c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1098c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1102c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1110c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1114c1086 < PtS1xH5v/RT9WyKD15Ky9+zcnQ0= --- > LbDXBNUnmPn27sdeC1/14jAL+/I= 1118c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1122c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1126c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1130c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1134c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1138c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1142c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1146c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1150c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1154c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1158c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1162c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1166c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1174c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1178c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1182c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1186c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1190c1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1192c1164 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1194c1166 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1196c1168 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1198c1170 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1200c1172 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1202c1174 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1204c1176 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1206c1178 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1234c1206 < f8h9bKJMVjRwHiUUyIZHR6R66hk= --- > fhZM8InUb/+KVlV3gFOaB9mnuo0= 1238c1210 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1242c1214 < jXlAaXeutzxOr5AM3Iq9xAZdGSM= --- > Dhp+mncuPBFrW6hEnlVDYUEsY2w= 1246c1218 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1396,1423d1367 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 1443c1387 < NwJGB5qzwkvr9jvSVyZhruPKF4k= --- > t6fgeo2neV1tYerign2yOBOJoww= Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48012537 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:25 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48012536 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:25 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48012535 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:25 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48012487 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:25 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48012486 8 -rw-r--r-- 1 cltbld staff 1670 May 9 17:25 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48012485 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:25 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48012484 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:25 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48012483 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:25 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48012482 8 -rw-r--r-- 1 cltbld staff 1338 May 9 17:25 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48012481 8 -rw-r--r-- 1 cltbld staff 1363 May 9 17:25 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/uk/thunderbird-38.7.2-38.8.0.partial.mar' and placing in cache... Executing: ['wget', '-O', 'update/partial.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/uk/thunderbird-38.7.2-38.8.0.partial.mar'] --2016-05-09 17:26:06-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/uk/thunderbird-38.7.2-38.8.0.partial.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 3992572 Connection: keep-alive Date: Tue, 10 May 2016 00:26:07 GMT x-amz-replication-status: COMPLETED x-amz-version-id: ydkOALbH63H6WGd9pyXkX02WmmV5jwk8 Last-Modified: Tue, 03 May 2016 15:30:09 GMT ETag: "264ba0a6ff13ea0808fecdceab46bf1f" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 d01884a3320364227d925bce1a38f0ad.cloudfront.net (CloudFront) X-Amz-Cf-Id: wBzav7f9I_EO0zOHDMRAYRcpV257xTPu7XEFt0BIPoMqMsaA8n4XqQ== Length: 3992572 (3.8M) [application/octet-stream] Saving to: 'update/partial.mar' 0K ........ ........ ........ ........ ........ ........ 78% 1.86M 0s 3072K ........ .... 100% 2.80M=1.9s 2016-05-09 17:26:08 (2.00 MB/s) - 'update/partial.mar' saved [3992572/3992572] Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/uk/Thunderbird 38.7.2.dmg' from cache... Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/uk/Thunderbird 45.1.0.dmg' from cache... installing downloads/Thunderbird 38.7.2.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE partial PREPARE PATCH Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE PATCH Contents/Resources/platform.ini PREPARE PATCH Contents/Resources/omni.ja PREPARE PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE PATCH Contents/Resources/blocklist.xml PREPARE PATCH Contents/Resources/application.ini PREPARE PATCH Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE PATCH Contents/MacOS/thunderbird-bin PREPARE PATCH Contents/MacOS/thunderbird PREPARE PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE PATCH Contents/MacOS/libsoftokn3.dylib PREPARE PATCH Contents/MacOS/libprldap60.dylib PREPARE PATCH Contents/MacOS/libplugin_child_interpose.dylib PREPARE PATCH Contents/MacOS/libnssdbm3.dylib PREPARE PATCH Contents/MacOS/libnssckbi.dylib PREPARE PATCH Contents/MacOS/libnss3.dylib PREPARE PATCH Contents/MacOS/libmozglue.dylib PREPARE PATCH Contents/MacOS/libmozalloc.dylib PREPARE PATCH Contents/MacOS/libldif60.dylib PREPARE PATCH Contents/MacOS/libldap60.dylib PREPARE PATCH Contents/MacOS/libfreebl3.dylib PREPARE PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE PATCH Contents/MacOS/XUL PREPARE PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE PATCH Contents/Info.plist EXECUTE PATCH Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE PATCH Contents/Resources/platform.ini EXECUTE PATCH Contents/Resources/omni.ja EXECUTE PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE PATCH Contents/Resources/blocklist.xml EXECUTE PATCH Contents/Resources/application.ini EXECUTE PATCH Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE PATCH Contents/MacOS/thunderbird-bin EXECUTE PATCH Contents/MacOS/thunderbird EXECUTE PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE PATCH Contents/MacOS/libsoftokn3.dylib EXECUTE PATCH Contents/MacOS/libprldap60.dylib EXECUTE PATCH Contents/MacOS/libplugin_child_interpose.dylib EXECUTE PATCH Contents/MacOS/libnssdbm3.dylib EXECUTE PATCH Contents/MacOS/libnssckbi.dylib EXECUTE PATCH Contents/MacOS/libnss3.dylib EXECUTE PATCH Contents/MacOS/libmozglue.dylib EXECUTE PATCH Contents/MacOS/libmozalloc.dylib EXECUTE PATCH Contents/MacOS/libldif60.dylib EXECUTE PATCH Contents/MacOS/libldap60.dylib EXECUTE PATCH Contents/MacOS/libfreebl3.dylib EXECUTE PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE PATCH Contents/MacOS/XUL EXECUTE PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE PATCH Contents/Info.plist FINISH PATCH Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH PATCH Contents/Resources/platform.ini FINISH PATCH Contents/Resources/omni.ja FINISH PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH PATCH Contents/Resources/blocklist.xml FINISH PATCH Contents/Resources/application.ini FINISH PATCH Contents/MacOS/updater.app/Contents/MacOS/updater FINISH PATCH Contents/MacOS/thunderbird-bin FINISH PATCH Contents/MacOS/thunderbird FINISH PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH PATCH Contents/MacOS/libsoftokn3.dylib FINISH PATCH Contents/MacOS/libprldap60.dylib FINISH PATCH Contents/MacOS/libplugin_child_interpose.dylib FINISH PATCH Contents/MacOS/libnssdbm3.dylib FINISH PATCH Contents/MacOS/libnssckbi.dylib FINISH PATCH Contents/MacOS/libnss3.dylib FINISH PATCH Contents/MacOS/libmozglue.dylib FINISH PATCH Contents/MacOS/libmozalloc.dylib FINISH PATCH Contents/MacOS/libldif60.dylib FINISH PATCH Contents/MacOS/libldap60.dylib FINISH PATCH Contents/MacOS/libfreebl3.dylib FINISH PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH PATCH Contents/MacOS/XUL FINISH PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH PATCH Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini 1c1,5 < ; This file is in the UTF-8 encoding --- > # This Source Code Form is subject to the terms of the Mozilla Public > # License, v. 2.0. If a copy of the MPL was not distributed with this > # file, You can obtain one at http://mozilla.org/MPL/2.0/. > > # This file is in the UTF-8 encoding 9c13 < ; LOCALIZATION NOTE (CrashReporterVendorTitle): %s is replaced with the vendor name. (i.e. "Mozilla") --- > # LOCALIZATION NOTE (CrashReporterVendorTitle): %s is replaced with the vendor name. (i.e. "Mozilla") 11,14c15,18 < ; LOCALIZATION NOTE (CrashReporterErrorText): %s is replaced with another string containing detailed information. < CrashReporterErrorText=Програма зіткнулаÑÑŒ з проблемою та впала.\n\nÐа жаль, доповідач про аварії не здатен надіÑлати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ цю аварію.\n\nПодробиці: %s < ; LOCALIZATION NOTE (CrashReporterProductErrorText2): The first %s is replaced with the product name (i.e. "Firefox"), the second is replaced with another string containing detailed information. These two substitutions can not be reordered! < CrashReporterProductErrorText2=%s зіткнувÑÑ Ð· проблемою Ñ– впав.\n\nÐа жаль, доповідач про аварії не здатен надіÑлати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ цю аварію.\n\nПодробиці: %s --- > # LOCALIZATION NOTE (CrashReporterErrorText): %s is replaced with another string containing detailed information. > CrashReporterErrorText=Програма зіткнулаÑÑŒ з проблемою Ñ– впала.\n\nÐа жаль, не вдалоÑÑ Ð½Ð°Ð´Ñ–Ñлати звіт про це падіннÑ.\n\nПодробиці: %s > # LOCALIZATION NOTE (CrashReporterProductErrorText2): The first %s is replaced with the product name (i.e. "Firefox"), the second is replaced with another string containing detailed information. These two substitutions can not be reordered! > CrashReporterProductErrorText2=%s зіткнувÑÑ Ð· проблемою Ñ– впав.\n\nÐа жаль, не вдалоÑÑ Ð½Ð°Ð´Ñ–Ñлати звіт про падіннÑ.\n\nПодробиці: %s 16,17c20,21 < ; LOCALIZATION NOTE (CrashReporterDescriptionText2): The %s is replaced with the product name. < CrashReporterDescriptionText2=%s зіткнувÑÑ Ð· проблемою Ñ– впав.\n\nЩоб допомогти нам розібратиÑÑŒ та виправити проблему ви можете надіÑлати нам Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ аварію. --- > # LOCALIZATION NOTE (CrashReporterDescriptionText2): The %s is replaced with the product name. > CrashReporterDescriptionText2=%s зіткнувÑÑ Ð· проблемою Ñ– впав.\n\nЩоб допомогти нам розібратиÑÑŒ Ñ– виправити проблему, ви можете надіÑлати звіт про падіннÑ. 23,24c27,28 < ; LOCALIZATION NOTE (CheckSendReport): The %s is replaced with the vendor name. < CheckSendReport=Повідомте %s про цю аварію, щоб вони змогли Ñ—Ñ— виправити --- > # LOCALIZATION NOTE (CheckSendReport): The %s is replaced with the vendor name. > CheckSendReport=Повідомте %s про це падіннÑ, щоб вони змогли владнати проблему 28c32 < ReportPreSubmit2=Ваш звіт про аварію буде надіÑлано до того, Ñк ви закриєте або перезавантажите програму. --- > ReportPreSubmit2=Ваш звіт про Ð¿Ð°Ð´Ñ–Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ надіÑлано перед тим, Ñк ви закриєте або перезапуÑтите програму. 33c37 < ; LOCALIZATION NOTE (Quit2): The %s is replaced with the product name. --- > # LOCALIZATION NOTE (Quit2): The %s is replaced with the product name. 35c39 < ; LOCALIZATION NOTE (Restart): The %s is replaced with the product name. --- > # LOCALIZATION NOTE (Restart): The %s is replaced with the product name. 39c43,44 < ; LOCALIZATION NOTE (CrashID): The %s is replaced with the Crash ID from the server, which is a string like abc12345-6789-0abc-def1-23456abcdef1 --- > > # LOCALIZATION NOTE (CrashID): The %s is replaced with the Crash ID from the server, which is a string like abc12345-6789-0abc-def1-23456abcdef1 41c46 < ; LOCALIZATION NOTE (CrashDetailsURL): The %s is replaced with a URL that the user can visit to view the crash details. --- > # LOCALIZATION NOTE (CrashDetailsURL): The %s is replaced with a URL that the user can visit to view the crash details. 53c58 < ; LOCALIZATION NOTE (ErrorEndOfLife): The %s is replaced with the product name. --- > # LOCALIZATION NOTE (ErrorEndOfLife): The %s is replaced with the product name. 54a60 > diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources 76c76 < ePu/uY9EafoDxws2UxZnc8zkG4k= --- > PqdN5g07UOwZqcuPp7oCNVaYqDw= 150c150 < ePu/uY9EafoDxws2UxZnc8zkG4k= --- > PqdN5g07UOwZqcuPp7oCNVaYqDw= Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/uk/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 5,11d4 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 92c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 119d109 < rmdir "Contents/Resources/searchplugins/" 124d113 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/Resources/updater.ini target/Thunderbird.app/Contents/Resources/updater.ini 1c1,5 < ; This file is in the UTF-8 encoding --- > # This Source Code Form is subject to the terms of the Mozilla Public > # License, v. 2.0. If a copy of the MPL was not distributed with this > # file, You can obtain one at http://mozilla.org/MPL/2.0/. > > # This file is in the UTF-8 encoding 3d6 < Info=Thunderbird вÑтановлює оновленнÑ. Він запуÑтитьÑÑ Ð·Ð° мить… 4a8 > Info=Thunderbird вÑтановлює оновленнÑ. Він запуÑтитьÑÑ Ð·Ð° мить… diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < TZ/7QG3IKJtkZJmMcYe2TGTqU9A= --- > bXGu1eFlGRPCAji1D9Gbemc5Zfg= 229c229 < tJYH+WwP3BW+bKBCrqHmxRIwIWI= --- > IpZl1StF7QoYwkMOiVcanUCYSn4= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < PtS1xH5v/RT9WyKD15Ky9+zcnQ0= --- > LbDXBNUnmPn27sdeC1/14jAL+/I= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 395c395 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 397c397 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 401c401 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 403c403 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 405c405 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 409c409 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 437c437 < f8h9bKJMVjRwHiUUyIZHR6R66hk= --- > fhZM8InUb/+KVlV3gFOaB9mnuo0= 441c441 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 445c445 < jXlAaXeutzxOr5AM3Iq9xAZdGSM= --- > Dhp+mncuPBFrW6hEnlVDYUEsY2w= 449c449 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 599,626d598 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 646c618 < NwJGB5qzwkvr9jvSVyZhruPKF4k= --- > t6fgeo2neV1tYerign2yOBOJoww= 664c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 673c645 < u+G+IyVX0rNR56EeqaomiqPgq7Y= --- > t8FpMOMGt1bEDSYDkuSi3lYXFdg= 682c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 691c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 700c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 705c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 709c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 718c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 727c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 736c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 745c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 754c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 763c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 772c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 781c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 790c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 799c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 806c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 810c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 822c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 834c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 838c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 842c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 846c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 850c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 854c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 858c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 862c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 866c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 870c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 874c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 878c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 882c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 886c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 890c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 894c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 898c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 902c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 906c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 910c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 914c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 918c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 922c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 926c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 930c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 934c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 938c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 942c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 946c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 950c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 954c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 958c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 962c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 966c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 970c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 974c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 978c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 982c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 986c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 990c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 994c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 998c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 1002c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1006c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1014c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1018c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1022c994 < TZ/7QG3IKJtkZJmMcYe2TGTqU9A= --- > bXGu1eFlGRPCAji1D9Gbemc5Zfg= 1026c998 < tJYH+WwP3BW+bKBCrqHmxRIwIWI= --- > IpZl1StF7QoYwkMOiVcanUCYSn4= 1030c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1034c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1038c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1042c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1046c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1050c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1054c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1058c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1062c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1066c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1070c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1074c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1078c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1082c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1086c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1098c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1102c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1110c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1114c1086 < PtS1xH5v/RT9WyKD15Ky9+zcnQ0= --- > LbDXBNUnmPn27sdeC1/14jAL+/I= 1118c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1122c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1126c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1130c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1134c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1138c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1142c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1146c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1150c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1154c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1158c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1162c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1166c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1174c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1178c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1182c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1186c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1190c1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1192c1164 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1194c1166 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1196c1168 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1198c1170 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1200c1172 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1202c1174 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1204c1176 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1206c1178 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1234c1206 < f8h9bKJMVjRwHiUUyIZHR6R66hk= --- > fhZM8InUb/+KVlV3gFOaB9mnuo0= 1238c1210 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1242c1214 < jXlAaXeutzxOr5AM3Iq9xAZdGSM= --- > Dhp+mncuPBFrW6hEnlVDYUEsY2w= 1246c1218 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1396,1423d1367 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 1443c1387 < NwJGB5qzwkvr9jvSVyZhruPKF4k= --- > t6fgeo2neV1tYerign2yOBOJoww= Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48012904 8 -rw-r--r-- 1 cltbld staff 1221 Apr 2 19:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48012905 8 -rw-r--r-- 1 cltbld staff 2284 Apr 2 19:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48013259 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:26 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48012950 8 -rw-r--r-- 1 cltbld staff 1531 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48012951 8 -rw-r--r-- 1 cltbld staff 1670 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48012952 8 -rw-r--r-- 1 cltbld staff 2453 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48012953 8 -rw-r--r-- 1 cltbld staff 2569 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48012954 8 -rw-r--r-- 1 cltbld staff 899 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48012955 8 -rw-r--r-- 1 cltbld staff 1338 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48012956 8 -rw-r--r-- 1 cltbld staff 1363 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 SUCCESS: partial updates are smaller than complete updates, all is well in the universe Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:27:00-- https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:27:00 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 939 Length: 939 [text/xml] Saving to: 'update.xml' 0K 100% 128M=0s 2016-05-09 17:27:00 (128 MB/s) - 'update.xml' saved [939/939] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/vi/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/vi/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:27:00-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/vi/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67945330 Connection: keep-alive Date: Tue, 10 May 2016 00:27:01 GMT x-amz-replication-status: COMPLETED x-amz-version-id: wUmrFZQMB_eBD9mgmbKXfBK9I4j8f.pD Last-Modified: Tue, 03 May 2016 15:43:11 GMT ETag: "e2efc47fc5d0e8ada3d1cec1c7560d13" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 95da1452a75435200220a7075ca3893f.cloudfront.net (CloudFront) X-Amz-Cf-Id: oYH2e-QLuWtGkuwj1Ds1qcFydt1U-ov1V1Se0eEs2JeSwsF2X5eueg== Length: 67945330 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 2.02M 31s 3072K ........ ........ ........ ........ ........ ........ 9% 4.82M 21s 6144K ........ ........ ........ ........ ........ ........ 13% 6.40M 16s 9216K ........ ........ ........ ........ ........ ........ 18% 5.66M 14s 12288K ........ ........ ........ ........ ........ ........ 23% 5.53M 12s 15360K ........ ........ ........ ........ ........ ........ 27% 5.55M 11s 18432K ........ ........ ........ ........ ........ ........ 32% 6.11M 10s 21504K ........ ........ ........ ........ ........ ........ 37% 5.66M 9s 24576K ........ ........ ........ ........ ........ ........ 41% 5.65M 8s 27648K ........ ........ ........ ........ ........ ........ 46% 5.67M 7s 30720K ........ ........ ........ ........ ........ ........ 50% 5.44M 7s 33792K ........ ........ ........ ........ ........ ........ 55% 6.42M 6s 36864K ........ ........ ........ ........ ........ ........ 60% 6.27M 5s 39936K ........ ........ ........ ........ ........ ........ 64% 6.47M 4s 43008K ........ ........ ........ ........ ........ ........ 69% 7.92M 4s 46080K ........ ........ ........ ........ ........ ........ 74% 9.37M 3s 49152K ........ ........ ........ ........ ........ ........ 78% 9.95M 2s 52224K ........ ........ ........ ........ ........ ........ 83% 10.3M 2s 55296K ........ ........ ........ ........ ........ ........ 87% 12.5M 1s 58368K ........ ........ ........ ........ ........ ........ 92% 12.9M 1s 61440K ........ ........ ........ ........ ........ ........ 97% 13.4M 0s 64512K ........ ........ ........ .... 100% 3.42M=11s 2016-05-09 17:27:11 (6.03 MB/s) - 'update/complete.mar' saved [67945330/67945330] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/vi/Thunderbird 38.7.2.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.7.2.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/vi/Thunderbird 38.7.2.dmg'] --2016-05-09 17:27:13-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/vi/Thunderbird%2038.7.2.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69951703 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:27:13 GMT ETag: "1fcff16581f3c78c3e15101c08b31d03" Last-Modified: Mon, 04 Apr 2016 16:48:19 GMT x-amz-replication-status: COMPLETED x-amz-version-id: mflfQMMULCO.DsC5duANS6RQ.Oo1ILns X-Cache: Miss from cloudfront Via: 1.1 2a47832c458ab2a6b20c8363f5aa35ea.cloudfront.net (CloudFront) X-Amz-Cf-Id: WyjDs2xUkw1PB2mGT5kNxnsl12P7jolRtqP1OqOyASiOfOozbFO7xg== Length: 69951703 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.7.2.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.49M 43s 3072K ........ ........ ........ ........ ........ ........ 8% 3.42M 29s 6144K ........ ........ ........ ........ ........ ........ 13% 4.77M 23s 9216K ........ ........ ........ ........ ........ ........ 17% 5.06M 19s 12288K ........ ........ ........ ........ ........ ........ 22% 5.51M 16s 15360K ........ ........ ........ ........ ........ ........ 26% 5.04M 14s 18432K ........ ........ ........ ........ ........ ........ 31% 5.35M 13s 21504K ........ ........ ........ ........ ........ ........ 35% 5.20M 11s 24576K ........ ........ ........ ........ ........ ........ 40% 5.55M 10s 27648K ........ ........ ........ ........ ........ ........ 44% 5.07M 9s 30720K ........ ........ ........ ........ ........ ........ 49% 5.63M 8s 33792K ........ ........ ........ ........ ........ ........ 53% 6.59M 7s 36864K ........ ........ ........ ........ ........ ........ 58% 6.81M 6s 39936K ........ ........ ........ ........ ........ ........ 62% 8.79M 5s 43008K ........ ........ ........ ........ ........ ........ 67% 10.4M 5s 46080K ........ ........ ........ ........ ........ ........ 71% 9.79M 4s 49152K ........ ........ ........ ........ ........ ........ 76% 10.2M 3s 52224K ........ ........ ........ ........ ........ ........ 80% 12.3M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 12.2M 2s 58368K ........ ........ ........ ........ ........ ........ 89% 13.9M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 12.2M 1s 64512K ........ ........ ........ ........ ........ ........ 98% 11.9M 0s 67584K ........ ... 100% 19.3M=11s 2016-05-09 17:27:25 (5.84 MB/s) - 'Thunderbird 38.7.2.dmg' saved [69951703/69951703] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/vi/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/vi/Thunderbird 45.1.0.dmg'] --2016-05-09 17:27:25-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/vi/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77342481 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:27:26 GMT ETag: "97691316c8a6dd65b14440d0a6572289" Last-Modified: Mon, 09 May 2016 21:26:24 GMT x-amz-replication-status: COMPLETED x-amz-version-id: toKR_yCFXIt6OidmjLoZEZ4xidwHDgJ6 X-Cache: Miss from cloudfront Via: 1.1 3d3d633d266d05d90a4eea7a6a59b514.cloudfront.net (CloudFront) X-Amz-Cf-Id: r4eeUWJO93NIdIS54vyIIsxuh0Fua9MATG67acpLbc073kQUypuXJw== Length: 77342481 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.50M 47s 3072K ........ ........ ........ ........ ........ ........ 8% 4.88M 29s 6144K ........ ........ ........ ........ ........ ........ 12% 7.43M 22s 9216K ........ ........ ........ ........ ........ ........ 16% 9.70M 17s 12288K ........ ........ ........ ........ ........ ........ 20% 9.49M 14s 15360K ........ ........ ........ ........ ........ ........ 24% 11.4M 12s 18432K ........ ........ ........ ........ ........ ........ 28% 24.0M 10s 21504K ........ ........ ........ ........ ........ ........ 32% 11.7M 9s 24576K ........ ........ ........ ........ ........ ........ 36% 13.1M 8s 27648K ........ ........ ........ ........ ........ ........ 40% 15.8M 7s 30720K ........ ........ ........ ........ ........ ........ 44% 9.69M 6s 33792K ........ ........ ........ ........ ........ ........ 48% 8.51M 6s 36864K ........ ........ ........ ........ ........ ........ 52% 10.5M 5s 39936K ........ ........ ........ ........ ........ ........ 56% 27.0M 4s 43008K ........ ........ ........ ........ ........ ........ 61% 18.5M 4s 46080K ........ ........ ........ ........ ........ ........ 65% 10.3M 3s 49152K ........ ........ ........ ........ ........ ........ 69% 14.6M 3s 52224K ........ ........ ........ ........ ........ ........ 73% 11.5M 2s 55296K ........ ........ ........ ........ ........ ........ 77% 12.9M 2s 58368K ........ ........ ........ ........ ........ ........ 81% 13.3M 2s 61440K ........ ........ ........ ........ ........ ........ 85% 11.8M 1s 64512K ........ ........ ........ ........ ........ ........ 89% 12.9M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 12.4M 1s 70656K ........ ........ ........ ........ ........ ........ 97% 13.4M 0s 73728K ........ ........ ........ .... 100% 13.6M=8.2s 2016-05-09 17:27:34 (8.97 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77342481/77342481] installing downloads/Thunderbird 38.7.2.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/vi.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/vi-x-KieuMoi.[KhongChuan].dic PREPARE REMOVEFILE Contents/Resources/dictionaries/vi-x-KieuMoi.[KhongChuan].aff PREPARE REMOVEFILE Contents/Resources/dictionaries/vi-x-KieuCu.[Chuan].dic PREPARE REMOVEFILE Contents/Resources/dictionaries/vi-x-KieuCu.[Chuan].aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/vi.lproj/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/vi.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/vi-x-KieuMoi.[KhongChuan].dic PREPARE ADD Contents/Resources/dictionaries/vi-x-KieuMoi.[KhongChuan].aff PREPARE ADD Contents/Resources/dictionaries/vi-x-KieuCu.[Chuan].dic PREPARE ADD Contents/Resources/dictionaries/vi-x-KieuCu.[Chuan].aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/vi.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/vi-x-KieuMoi.[KhongChuan].dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/vi-x-KieuMoi.[KhongChuan].aff EXECUTE REMOVEFILE Contents/Resources/dictionaries/vi-x-KieuCu.[Chuan].dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/vi-x-KieuCu.[Chuan].aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/vi.lproj/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/vi.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/vi-x-KieuMoi.[KhongChuan].dic EXECUTE ADD Contents/Resources/dictionaries/vi-x-KieuMoi.[KhongChuan].aff EXECUTE ADD Contents/Resources/dictionaries/vi-x-KieuCu.[Chuan].dic EXECUTE ADD Contents/Resources/dictionaries/vi-x-KieuCu.[Chuan].aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/vi.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/vi-x-KieuMoi.[KhongChuan].dic FINISH REMOVEFILE Contents/Resources/dictionaries/vi-x-KieuMoi.[KhongChuan].aff FINISH REMOVEFILE Contents/Resources/dictionaries/vi-x-KieuCu.[Chuan].dic FINISH REMOVEFILE Contents/Resources/dictionaries/vi-x-KieuCu.[Chuan].aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/vi.lproj/ non-fatal error removing directory: Contents/Resources/vi.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/vi.lproj/InfoPlist.strings FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/vi-x-KieuMoi.[KhongChuan].dic FINISH ADD Contents/Resources/dictionaries/vi-x-KieuMoi.[KhongChuan].aff FINISH ADD Contents/Resources/dictionaries/vi-x-KieuCu.[Chuan].dic FINISH ADD Contents/Resources/dictionaries/vi-x-KieuCu.[Chuan].aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 36 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" --- > //@line 36 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" 3c3 < //@line 38 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" --- > //@line 38 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" 5c5 < //@line 41 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" --- > //@line 41 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" 8c8 < //@line 44 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" --- > //@line 44 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" 19c19 < //@line 55 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" --- > //@line 55 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 5,11d4 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 94c85 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 121d111 < rmdir "Contents/Resources/searchplugins/" 126d115 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 45c45 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 49c49 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 53c53 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 57c57 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 61c61 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 65c65 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 69c69 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 73c73 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 77c77 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 81c81 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 85c85 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 89c89 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 93c93 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 97c97 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 101c101 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 105c105 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 109c109 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 113c113 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 117c117 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 121c121 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 125c125 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 129c129 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 133c133 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 137c137 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 141c141 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 145c145 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 149c149 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 153c153 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 157c157 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 161c161 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 165c165 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 169c169 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 173c173 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 177c177 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 181c181 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 185c185 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 189c189 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 193c193 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 197c197 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 201c201 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 205c205 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 209c209 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 213c213 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 217c217 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 225c225 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 229c229 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 233c233 < wIoiWfvv1nE4TVrPMsfBDEjh6Lo= --- > 0ct78/r5P7tHzdPHQGNEgbSNYs4= 237c237 < ILAGW2wt8FLwbJlbV88pij2iC5Y= --- > QdfBr3QG5w5ZPfOQqf1q7Zp6Qgc= 241c241 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 245c245 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 249c249 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 253c253 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 257c257 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 261c261 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 265c265 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 269c269 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 273c273 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 277c277 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 281c281 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 285c285 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 289c289 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 293c293 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 297c297 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 309c309 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 313c313 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 321c321 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 325c325 < nfanyI/kIgq+QRC2yxsOUPehYyE= --- > KMKEa3bybgKJT6lo5F9iQq4dguM= 329c329 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 333c333 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 337c337 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 341c341 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 345c345 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 349c349 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 353c353 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 357c357 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 361c361 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 365c365 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 369c369 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 373c373 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 377c377 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 385c385 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 389c389 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 393c393 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 397c397 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 401c401 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 403c403 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 405c405 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 409c409 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 411c411 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 413c413 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 415c415 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 417c417 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 445c445 < Ks440D5AYyXskFnnxIZONqxgEGw= --- > qRBAN1ntsEgjZkt6c4HrcKiWuSQ= 449c449 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 453c453 < udMzqJvmJefsSPBc9L+0kwshnyw= --- > RnqKufDZK3nadbEcyVznC1cX3ZY= 457c457 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 607,634d606 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 672c644 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 681c653 < ChjXrlRvG1VCuXCKRG42cY44lp0= --- > lwXSbe8aoilqDEmUt2wP9YEXIiw= 690c662 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 699c671 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 708c680 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 713c685 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 717c689 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 726c698 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 735c707 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 744c716 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 753c725 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 762c734 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 771c743 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 780c752 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 789c761 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 798c770 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 807c779 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 814c786 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 818c790 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 830c802 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 850c822 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 854c826 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 858c830 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 862c834 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 866c838 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 870c842 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 874c846 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 878c850 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 882c854 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 886c858 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 890c862 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 894c866 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 898c870 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 902c874 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 906c878 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 910c882 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 914c886 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 918c890 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 922c894 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 926c898 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 930c902 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 934c906 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 938c910 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 942c914 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 946c918 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 950c922 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 954c926 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 958c930 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 962c934 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 966c938 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 970c942 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 974c946 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 978c950 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 982c954 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 986c958 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 990c962 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 994c966 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 998c970 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 1002c974 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 1006c978 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 1010c982 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 1014c986 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 1018c990 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1022c994 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1030c1002 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1034c1006 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1038c1010 < wIoiWfvv1nE4TVrPMsfBDEjh6Lo= --- > 0ct78/r5P7tHzdPHQGNEgbSNYs4= 1042c1014 < ILAGW2wt8FLwbJlbV88pij2iC5Y= --- > QdfBr3QG5w5ZPfOQqf1q7Zp6Qgc= 1046c1018 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1050c1022 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1054c1026 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1058c1030 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1062c1034 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1066c1038 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1070c1042 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1074c1046 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1078c1050 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1082c1054 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1086c1058 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1090c1062 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1094c1066 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1098c1070 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1102c1074 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1114c1086 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1118c1090 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1126c1098 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1130c1102 < nfanyI/kIgq+QRC2yxsOUPehYyE= --- > KMKEa3bybgKJT6lo5F9iQq4dguM= 1134c1106 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1138c1110 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1142c1114 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1146c1118 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1150c1122 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1154c1126 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1158c1130 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1162c1134 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1166c1138 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1170c1142 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1174c1146 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1178c1150 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1182c1154 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1190c1162 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1194c1166 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1198c1170 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1202c1174 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1206c1178 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1208c1180 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1210c1182 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1212c1184 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1214c1186 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1216c1188 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1218c1190 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1220c1192 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1222c1194 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1250c1222 < Ks440D5AYyXskFnnxIZONqxgEGw= --- > qRBAN1ntsEgjZkt6c4HrcKiWuSQ= 1254c1226 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1258c1230 < udMzqJvmJefsSPBc9L+0kwshnyw= --- > RnqKufDZK3nadbEcyVznC1cX3ZY= 1262c1234 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1412,1439d1383 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48013899 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:28 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48013898 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:28 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48013897 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:28 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48013849 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:28 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48013848 8 -rw-r--r-- 1 cltbld staff 1670 May 9 17:28 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48013847 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:28 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48013846 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:28 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48013845 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:28 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48013844 8 -rw-r--r-- 1 cltbld staff 1338 May 9 17:28 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48013843 8 -rw-r--r-- 1 cltbld staff 1363 May 9 17:28 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/vi/thunderbird-38.7.2-38.8.0.partial.mar' and placing in cache... Executing: ['wget', '-O', 'update/partial.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/vi/thunderbird-38.7.2-38.8.0.partial.mar'] --2016-05-09 17:28:29-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/vi/thunderbird-38.7.2-38.8.0.partial.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 3993152 Connection: keep-alive Date: Tue, 10 May 2016 00:28:30 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 2jyKgf8xhBpgE6t1z.vf6EiK6UDjM.4u Last-Modified: Tue, 03 May 2016 15:43:15 GMT ETag: "1437eeed93baa7f0bb0d6287598a2307" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 dc7c4fb5024ff022cad1642ec506a6e8.cloudfront.net (CloudFront) X-Amz-Cf-Id: wG5Wzbod3i9V96MZwKuprJICDLo74i6XT9RcwZe6w_nL7DqoiUh89Q== Length: 3993152 (3.8M) [application/octet-stream] Saving to: 'update/partial.mar' 0K ........ ........ ........ ........ ........ ........ 78% 1.65M 0s 3072K ........ .... 100% 4.05M=2.0s 2016-05-09 17:28:31 (1.89 MB/s) - 'update/partial.mar' saved [3993152/3993152] Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/vi/Thunderbird 38.7.2.dmg' from cache... Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/vi/Thunderbird 45.1.0.dmg' from cache... installing downloads/Thunderbird 38.7.2.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE partial PREPARE PATCH Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE PATCH Contents/Resources/platform.ini PREPARE PATCH Contents/Resources/omni.ja PREPARE PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE PATCH Contents/Resources/blocklist.xml PREPARE PATCH Contents/Resources/application.ini PREPARE PATCH Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE PATCH Contents/MacOS/thunderbird-bin PREPARE PATCH Contents/MacOS/thunderbird PREPARE PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE PATCH Contents/MacOS/libsoftokn3.dylib PREPARE PATCH Contents/MacOS/libprldap60.dylib PREPARE PATCH Contents/MacOS/libplugin_child_interpose.dylib PREPARE PATCH Contents/MacOS/libnssdbm3.dylib PREPARE PATCH Contents/MacOS/libnssckbi.dylib PREPARE PATCH Contents/MacOS/libnss3.dylib PREPARE PATCH Contents/MacOS/libmozglue.dylib PREPARE PATCH Contents/MacOS/libmozalloc.dylib PREPARE PATCH Contents/MacOS/libldif60.dylib PREPARE PATCH Contents/MacOS/libldap60.dylib PREPARE PATCH Contents/MacOS/libfreebl3.dylib PREPARE PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE PATCH Contents/MacOS/XUL PREPARE PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE PATCH Contents/Info.plist EXECUTE PATCH Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE PATCH Contents/Resources/platform.ini EXECUTE PATCH Contents/Resources/omni.ja EXECUTE PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE PATCH Contents/Resources/blocklist.xml EXECUTE PATCH Contents/Resources/application.ini EXECUTE PATCH Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE PATCH Contents/MacOS/thunderbird-bin EXECUTE PATCH Contents/MacOS/thunderbird EXECUTE PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE PATCH Contents/MacOS/libsoftokn3.dylib EXECUTE PATCH Contents/MacOS/libprldap60.dylib EXECUTE PATCH Contents/MacOS/libplugin_child_interpose.dylib EXECUTE PATCH Contents/MacOS/libnssdbm3.dylib EXECUTE PATCH Contents/MacOS/libnssckbi.dylib EXECUTE PATCH Contents/MacOS/libnss3.dylib EXECUTE PATCH Contents/MacOS/libmozglue.dylib EXECUTE PATCH Contents/MacOS/libmozalloc.dylib EXECUTE PATCH Contents/MacOS/libldif60.dylib EXECUTE PATCH Contents/MacOS/libldap60.dylib EXECUTE PATCH Contents/MacOS/libfreebl3.dylib EXECUTE PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE PATCH Contents/MacOS/XUL EXECUTE PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE PATCH Contents/Info.plist FINISH PATCH Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH PATCH Contents/Resources/platform.ini FINISH PATCH Contents/Resources/omni.ja FINISH PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH PATCH Contents/Resources/blocklist.xml FINISH PATCH Contents/Resources/application.ini FINISH PATCH Contents/MacOS/updater.app/Contents/MacOS/updater FINISH PATCH Contents/MacOS/thunderbird-bin FINISH PATCH Contents/MacOS/thunderbird FINISH PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH PATCH Contents/MacOS/libsoftokn3.dylib FINISH PATCH Contents/MacOS/libprldap60.dylib FINISH PATCH Contents/MacOS/libplugin_child_interpose.dylib FINISH PATCH Contents/MacOS/libnssdbm3.dylib FINISH PATCH Contents/MacOS/libnssckbi.dylib FINISH PATCH Contents/MacOS/libnss3.dylib FINISH PATCH Contents/MacOS/libmozglue.dylib FINISH PATCH Contents/MacOS/libmozalloc.dylib FINISH PATCH Contents/MacOS/libldif60.dylib FINISH PATCH Contents/MacOS/libldap60.dylib FINISH PATCH Contents/MacOS/libfreebl3.dylib FINISH PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH PATCH Contents/MacOS/XUL FINISH PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH PATCH Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 36 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" --- > //@line 36 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" 3c3 < //@line 38 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" --- > //@line 38 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" 5c5 < //@line 41 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" --- > //@line 41 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" 8c8 < //@line 44 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" --- > //@line 44 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" 19c19 < //@line 55 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" --- > //@line 55 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/vi/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 5,11d4 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 94c85 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 121d111 < rmdir "Contents/Resources/searchplugins/" 126d115 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 45c45 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 49c49 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 53c53 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 57c57 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 61c61 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 65c65 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 69c69 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 73c73 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 77c77 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 81c81 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 85c85 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 89c89 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 93c93 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 97c97 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 101c101 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 105c105 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 109c109 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 113c113 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 117c117 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 121c121 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 125c125 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 129c129 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 133c133 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 137c137 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 141c141 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 145c145 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 149c149 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 153c153 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 157c157 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 161c161 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 165c165 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 169c169 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 173c173 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 177c177 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 181c181 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 185c185 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 189c189 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 193c193 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 197c197 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 201c201 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 205c205 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 209c209 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 213c213 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 217c217 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 225c225 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 229c229 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 233c233 < wIoiWfvv1nE4TVrPMsfBDEjh6Lo= --- > 0ct78/r5P7tHzdPHQGNEgbSNYs4= 237c237 < ILAGW2wt8FLwbJlbV88pij2iC5Y= --- > QdfBr3QG5w5ZPfOQqf1q7Zp6Qgc= 241c241 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 245c245 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 249c249 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 253c253 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 257c257 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 261c261 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 265c265 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 269c269 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 273c273 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 277c277 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 281c281 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 285c285 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 289c289 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 293c293 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 297c297 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 309c309 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 313c313 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 321c321 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 325c325 < nfanyI/kIgq+QRC2yxsOUPehYyE= --- > KMKEa3bybgKJT6lo5F9iQq4dguM= 329c329 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 333c333 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 337c337 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 341c341 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 345c345 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 349c349 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 353c353 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 357c357 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 361c361 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 365c365 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 369c369 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 373c373 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 377c377 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 385c385 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 389c389 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 393c393 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 397c397 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 401c401 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 403c403 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 405c405 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 409c409 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 411c411 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 413c413 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 415c415 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 417c417 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 445c445 < Ks440D5AYyXskFnnxIZONqxgEGw= --- > qRBAN1ntsEgjZkt6c4HrcKiWuSQ= 449c449 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 453c453 < udMzqJvmJefsSPBc9L+0kwshnyw= --- > RnqKufDZK3nadbEcyVznC1cX3ZY= 457c457 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 607,634d606 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 672c644 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 681c653 < ChjXrlRvG1VCuXCKRG42cY44lp0= --- > lwXSbe8aoilqDEmUt2wP9YEXIiw= 690c662 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 699c671 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 708c680 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 713c685 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 717c689 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 726c698 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 735c707 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 744c716 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 753c725 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 762c734 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 771c743 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 780c752 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 789c761 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 798c770 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 807c779 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 814c786 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 818c790 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 830c802 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 850c822 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 854c826 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 858c830 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 862c834 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 866c838 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 870c842 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 874c846 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 878c850 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 882c854 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 886c858 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 890c862 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 894c866 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 898c870 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 902c874 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 906c878 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 910c882 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 914c886 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 918c890 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 922c894 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 926c898 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 930c902 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 934c906 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 938c910 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 942c914 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 946c918 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 950c922 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 954c926 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 958c930 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 962c934 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 966c938 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 970c942 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 974c946 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 978c950 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 982c954 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 986c958 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 990c962 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 994c966 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 998c970 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 1002c974 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 1006c978 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 1010c982 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 1014c986 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 1018c990 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1022c994 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1030c1002 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1034c1006 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1038c1010 < wIoiWfvv1nE4TVrPMsfBDEjh6Lo= --- > 0ct78/r5P7tHzdPHQGNEgbSNYs4= 1042c1014 < ILAGW2wt8FLwbJlbV88pij2iC5Y= --- > QdfBr3QG5w5ZPfOQqf1q7Zp6Qgc= 1046c1018 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1050c1022 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1054c1026 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1058c1030 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1062c1034 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1066c1038 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1070c1042 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1074c1046 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1078c1050 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1082c1054 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1086c1058 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1090c1062 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1094c1066 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1098c1070 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1102c1074 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1114c1086 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1118c1090 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1126c1098 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1130c1102 < nfanyI/kIgq+QRC2yxsOUPehYyE= --- > KMKEa3bybgKJT6lo5F9iQq4dguM= 1134c1106 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1138c1110 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1142c1114 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1146c1118 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1150c1122 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1154c1126 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1158c1130 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1162c1134 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1166c1138 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1170c1142 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1174c1146 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1178c1150 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1182c1154 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1190c1162 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1194c1166 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1198c1170 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1202c1174 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1206c1178 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1208c1180 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1210c1182 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1212c1184 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1214c1186 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1216c1188 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1218c1190 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1220c1192 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1222c1194 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1250c1222 < Ks440D5AYyXskFnnxIZONqxgEGw= --- > qRBAN1ntsEgjZkt6c4HrcKiWuSQ= 1254c1226 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1258c1230 < udMzqJvmJefsSPBc9L+0kwshnyw= --- > RnqKufDZK3nadbEcyVznC1cX3ZY= 1262c1234 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1412,1439d1383 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48014270 8 -rw-r--r-- 1 cltbld staff 1221 Apr 2 19:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48014271 8 -rw-r--r-- 1 cltbld staff 2284 Apr 2 19:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48014626 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:29 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48014316 8 -rw-r--r-- 1 cltbld staff 1531 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48014317 8 -rw-r--r-- 1 cltbld staff 1670 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48014318 8 -rw-r--r-- 1 cltbld staff 2453 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48014319 8 -rw-r--r-- 1 cltbld staff 2569 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48014320 8 -rw-r--r-- 1 cltbld staff 899 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48014321 8 -rw-r--r-- 1 cltbld staff 1338 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48014322 8 -rw-r--r-- 1 cltbld staff 1363 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 SUCCESS: partial updates are smaller than complete updates, all is well in the universe Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:29:22-- https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:29:22 GMT Keep-Alive: timeout=5, max=954 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 948 Length: 948 [text/xml] Saving to: 'update.xml' 0K 100% 113M=0s 2016-05-09 17:29:22 (113 MB/s) - 'update.xml' saved [948/948] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-CN/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-CN/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:29:22-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-CN/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67859252 Connection: keep-alive Date: Tue, 10 May 2016 00:29:23 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 77lZx0xXYevsypOYNDdh7fKnAWa67U1B Last-Modified: Tue, 03 May 2016 15:56:15 GMT ETag: "89230eb8600af1717675088694195e65" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 fc7da6323a08a2c16d48dd4939ce0898.cloudfront.net (CloudFront) X-Amz-Cf-Id: 0C_E-9_wh9A9mTIpgiYxQCAZsC0voE5He_U3wRJCf1ECNyDQY5f82A== Length: 67859252 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 2.06M 30s 3072K ........ ........ ........ ........ ........ ........ 9% 4.59M 21s 6144K ........ ........ ........ ........ ........ ........ 13% 4.17M 18s 9216K ........ ........ ........ ........ ........ ........ 18% 6.80M 14s 12288K ........ ........ ........ ........ ........ ........ 23% 6.92M 12s 15360K ........ ........ ........ ........ ........ ........ 27% 6.94M 11s 18432K ........ ........ ........ ........ ........ ........ 32% 6.64M 10s 21504K ........ ........ ........ ........ ........ ........ 37% 7.21M 8s 24576K ........ ........ ........ ........ ........ ........ 41% 6.92M 8s 27648K ........ ........ ........ ........ ........ ........ 46% 7.21M 7s 30720K ........ ........ ........ ........ ........ ........ 50% 7.78M 6s 33792K ........ ........ ........ ........ ........ ........ 55% 6.95M 5s 36864K ........ ........ ........ ........ ........ ........ 60% 6.89M 5s 39936K ........ ........ ........ ........ ........ ........ 64% 8.06M 4s 43008K ........ ........ ........ ........ ........ ........ 69% 10.5M 3s 46080K ........ ........ ........ ........ ........ ........ 74% 10.3M 3s 49152K ........ ........ ........ ........ ........ ........ 78% 11.6M 2s 52224K ........ ........ ........ ........ ........ ........ 83% 12.8M 2s 55296K ........ ........ ........ ........ ........ ........ 88% 13.7M 1s 58368K ........ ........ ........ ........ ........ ........ 92% 14.9M 1s 61440K ........ ........ ........ ........ ........ ........ 97% 16.6M 0s 64512K ........ ........ ........ ... 100% 14.1M=9.3s 2016-05-09 17:29:32 (6.98 MB/s) - 'update/complete.mar' saved [67859252/67859252] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/zh-CN/Thunderbird 38.7.2.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.7.2.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/zh-CN/Thunderbird 38.7.2.dmg'] --2016-05-09 17:29:33-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/zh-CN/Thunderbird%2038.7.2.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69872327 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:29:33 GMT ETag: "1c3c0f481f48883a415b5e7404d1a837" Last-Modified: Mon, 04 Apr 2016 16:48:15 GMT x-amz-replication-status: COMPLETED x-amz-version-id: CKwzWceom4SzG9X8NUL2z3t74rLKrlRf X-Cache: Miss from cloudfront Via: 1.1 aa89533ad2ec5e0edba466c9920bd000.cloudfront.net (CloudFront) X-Amz-Cf-Id: aoVQNiHJ-yysq4-r5kP90zrO-tGPrVfy9Wn5w49ZsfClY0F97wpLPA== Length: 69872327 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.7.2.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.52M 42s 3072K ........ ........ ........ ........ ........ ........ 9% 5.44M 26s 6144K ........ ........ ........ ........ ........ ........ 13% 7.64M 19s 9216K ........ ........ ........ ........ ........ ........ 18% 10.2M 15s 12288K ........ ........ ........ ........ ........ ........ 22% 10.8M 12s 15360K ........ ........ ........ ........ ........ ........ 27% 11.7M 10s 18432K ........ ........ ........ ........ ........ ........ 31% 13.4M 9s 21504K ........ ........ ........ ........ ........ ........ 36% 15.8M 7s 24576K ........ ........ ........ ........ ........ ........ 40% 14.3M 6s 27648K ........ ........ ........ ........ ........ ........ 45% 17.9M 6s 30720K ........ ........ ........ ........ ........ ........ 49% 18.8M 5s 33792K ........ ........ ........ ........ ........ ........ 54% 17.4M 4s 36864K ........ ........ ........ ........ ........ ........ 58% 21.8M 4s 39936K ........ ........ ........ ........ ........ ........ 63% 24.2M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 18.0M 3s 46080K ........ ........ ........ ........ ........ ........ 72% 17.5M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 24.2M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 35.2M 1s 55296K ........ ........ ........ ........ ........ ........ 85% 44.1M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 22.9M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 31.6M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 33.3M 0s 67584K ........ .. 100% 37.2M=6.1s 2016-05-09 17:29:40 (11.0 MB/s) - 'Thunderbird 38.7.2.dmg' saved [69872327/69872327] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/zh-CN/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/zh-CN/Thunderbird 45.1.0.dmg'] --2016-05-09 17:29:40-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/zh-CN/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77245460 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:29:40 GMT ETag: "739e8f6ff8df47e2a10d337f25474358" Last-Modified: Mon, 09 May 2016 21:49:15 GMT x-amz-replication-status: COMPLETED x-amz-version-id: CBVkjqDttPR2UDYnkd5FqgXlxUkVMBIS X-Cache: Miss from cloudfront Via: 1.1 8d667b66bfb5cc8a8898a76f2ecc1d5a.cloudfront.net (CloudFront) X-Amz-Cf-Id: dwz4L5bgDeaYs8K1PZ81F3DpmDY8izPwZ6LVJWHeohVK0yxUeSNGKA== Length: 77245460 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.89M 37s 3072K ........ ........ ........ ........ ........ ........ 8% 6.92M 23s 6144K ........ ........ ........ ........ ........ ........ 12% 10.1M 17s 9216K ........ ........ ........ ........ ........ ........ 16% 12.5M 13s 12288K ........ ........ ........ ........ ........ ........ 20% 16.6M 11s 15360K ........ ........ ........ ........ ........ ........ 24% 1001K 18s 18432K ........ ........ ........ ........ ........ ........ 28% 257K 45s 21504K ........ ........ ........ ........ ........ ........ 32% 4.07M 38s 24576K ........ ........ ........ ........ ........ ........ 36% 3.49M 33s 27648K ........ ........ ........ ........ ........ ........ 40% 4.21M 29s 30720K ........ ........ ........ ........ ........ ........ 44% 4.07M 26s 33792K ........ ........ ........ ........ ........ ........ 48% 4.52M 22s 36864K ........ ........ ........ ........ ........ ........ 52% 4.07M 20s 39936K ........ ........ ........ ........ ........ ........ 57% 4.48M 17s 43008K ........ ........ ........ ........ ........ ........ 61% 4.12M 15s 46080K ........ ........ ........ ........ ........ ........ 65% 4.47M 13s 49152K ........ ........ ........ ........ ........ ........ 69% 2.82M 11s 52224K ........ ........ ........ ........ ........ ........ 73% 4.41M 9s 55296K ........ ........ ........ ........ ........ ........ 77% 2.63M 8s 58368K ........ ........ ........ ........ ........ ........ 81% 1.82M 7s 61440K ........ ........ ........ ........ ........ ........ 85% 1.82M 5s 64512K ........ ........ ........ ........ ........ ........ 89% 2.24M 4s 67584K ........ ........ ........ ........ ........ ........ 93% 4.12M 2s 70656K ........ ........ ........ ........ ........ ........ 97% 6.08M 1s 73728K ........ ........ ........ .. 100% 6.81M=33s 2016-05-09 17:30:14 (2.21 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77245460/77245460] installing downloads/Thunderbird 38.7.2.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/zh.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/zh.lproj/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/zh.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/zh.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/zh.lproj/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/zh.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/zh.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/zh.lproj/ non-fatal error removing directory: Contents/Resources/zh.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/zh.lproj/InfoPlist.strings FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 5,11d4 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 117d107 < rmdir "Contents/Resources/searchplugins/" 122d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < a6iDkgUYCJ8FsSjwqSG3Tm3h054= --- > 1nEI4nr8WV5eNXtmLShVfiT6o5s= 221c221 < AWb8gO1E0fbcifgBanEFNv5xk6o= --- > FNjGGz++jL2rfXjOZp0Po0Zsou4= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < FVCl1JDdqK+arq7tdkp6T6knd2w= --- > CS4DnkutUKH20LPBOujHPACaGo8= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 429c429 < PeDOyi4aOmHdswQE2UaOpPyPnXI= --- > BBywhDv0OqWO//4Vnn54lhvlgyg= 433c433 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 437c437 < 3mllitwvIo3ydTFd/9knbmqKlys= --- > VsK0HpeXq86ldtDOC/ygyVtJUyw= 441c441 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 591,618d590 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < uBaf5cTiA3EnMfiHK4snF/HiGPA= --- > kLzx8Jo/kiMQSWt3MuDgJzI3gus= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c978 < a6iDkgUYCJ8FsSjwqSG3Tm3h054= --- > 1nEI4nr8WV5eNXtmLShVfiT6o5s= 1010c982 < AWb8gO1E0fbcifgBanEFNv5xk6o= --- > FNjGGz++jL2rfXjOZp0Po0Zsou4= 1014c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1070 < FVCl1JDdqK+arq7tdkp6T6knd2w= --- > CS4DnkutUKH20LPBOujHPACaGo8= 1102c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1176c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1178c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1180c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1182c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1184c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1186c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1188c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1190c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1218c1190 < PeDOyi4aOmHdswQE2UaOpPyPnXI= --- > BBywhDv0OqWO//4Vnn54lhvlgyg= 1222c1194 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1226c1198 < 3mllitwvIo3ydTFd/9knbmqKlys= --- > VsK0HpeXq86ldtDOC/ygyVtJUyw= 1230c1202 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1380,1407d1351 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48015255 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:31 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48015254 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:31 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48015253 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:31 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48015205 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:30 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48015204 8 -rw-r--r-- 1 cltbld staff 1670 May 9 17:30 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48015203 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:30 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48015202 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:30 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48015201 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:30 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48015200 8 -rw-r--r-- 1 cltbld staff 1338 May 9 17:30 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48015199 8 -rw-r--r-- 1 cltbld staff 1363 May 9 17:30 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-CN/thunderbird-38.7.2-38.8.0.partial.mar' and placing in cache... Executing: ['wget', '-O', 'update/partial.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-CN/thunderbird-38.7.2-38.8.0.partial.mar'] --2016-05-09 17:31:08-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-CN/thunderbird-38.7.2-38.8.0.partial.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 3994698 Connection: keep-alive Date: Tue, 10 May 2016 00:31:09 GMT x-amz-replication-status: COMPLETED x-amz-version-id: Up5sVqNAs9sXfqNrYUs_sQ560_irBK9Z Last-Modified: Tue, 03 May 2016 15:56:19 GMT ETag: "cefc9efe4c244e055f7cd27f53a9b105" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 ca024aca72de992a25bcd7fdcfe84b67.cloudfront.net (CloudFront) X-Amz-Cf-Id: 1DfwIcrqOpSCEk5C8e6qDOz2QOyOjLNzk_2ZI5fE-3ChUflWH6sU4g== Length: 3994698 (3.8M) [application/octet-stream] Saving to: 'update/partial.mar' 0K ........ ........ ........ ........ ........ ........ 78% 2.30M 0s 3072K ........ .... 100% 5.66M=1.4s 2016-05-09 17:31:09 (2.63 MB/s) - 'update/partial.mar' saved [3994698/3994698] Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/zh-CN/Thunderbird 38.7.2.dmg' from cache... Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/zh-CN/Thunderbird 45.1.0.dmg' from cache... installing downloads/Thunderbird 38.7.2.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE partial PREPARE PATCH Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE PATCH Contents/Resources/platform.ini PREPARE PATCH Contents/Resources/omni.ja PREPARE PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE PATCH Contents/Resources/blocklist.xml PREPARE PATCH Contents/Resources/application.ini PREPARE PATCH Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE PATCH Contents/MacOS/thunderbird-bin PREPARE PATCH Contents/MacOS/thunderbird PREPARE PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE PATCH Contents/MacOS/libsoftokn3.dylib PREPARE PATCH Contents/MacOS/libprldap60.dylib PREPARE PATCH Contents/MacOS/libplugin_child_interpose.dylib PREPARE PATCH Contents/MacOS/libnssdbm3.dylib PREPARE PATCH Contents/MacOS/libnssckbi.dylib PREPARE PATCH Contents/MacOS/libnss3.dylib PREPARE PATCH Contents/MacOS/libmozglue.dylib PREPARE PATCH Contents/MacOS/libmozalloc.dylib PREPARE PATCH Contents/MacOS/libldif60.dylib PREPARE PATCH Contents/MacOS/libldap60.dylib PREPARE PATCH Contents/MacOS/libfreebl3.dylib PREPARE PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE PATCH Contents/MacOS/XUL PREPARE PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE PATCH Contents/Info.plist EXECUTE PATCH Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE PATCH Contents/Resources/platform.ini EXECUTE PATCH Contents/Resources/omni.ja EXECUTE PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE PATCH Contents/Resources/blocklist.xml EXECUTE PATCH Contents/Resources/application.ini EXECUTE PATCH Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE PATCH Contents/MacOS/thunderbird-bin EXECUTE PATCH Contents/MacOS/thunderbird EXECUTE PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE PATCH Contents/MacOS/libsoftokn3.dylib EXECUTE PATCH Contents/MacOS/libprldap60.dylib EXECUTE PATCH Contents/MacOS/libplugin_child_interpose.dylib EXECUTE PATCH Contents/MacOS/libnssdbm3.dylib EXECUTE PATCH Contents/MacOS/libnssckbi.dylib EXECUTE PATCH Contents/MacOS/libnss3.dylib EXECUTE PATCH Contents/MacOS/libmozglue.dylib EXECUTE PATCH Contents/MacOS/libmozalloc.dylib EXECUTE PATCH Contents/MacOS/libldif60.dylib EXECUTE PATCH Contents/MacOS/libldap60.dylib EXECUTE PATCH Contents/MacOS/libfreebl3.dylib EXECUTE PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE PATCH Contents/MacOS/XUL EXECUTE PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE PATCH Contents/Info.plist FINISH PATCH Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH PATCH Contents/Resources/platform.ini FINISH PATCH Contents/Resources/omni.ja FINISH PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH PATCH Contents/Resources/blocklist.xml FINISH PATCH Contents/Resources/application.ini FINISH PATCH Contents/MacOS/updater.app/Contents/MacOS/updater FINISH PATCH Contents/MacOS/thunderbird-bin FINISH PATCH Contents/MacOS/thunderbird FINISH PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH PATCH Contents/MacOS/libsoftokn3.dylib FINISH PATCH Contents/MacOS/libprldap60.dylib FINISH PATCH Contents/MacOS/libplugin_child_interpose.dylib FINISH PATCH Contents/MacOS/libnssdbm3.dylib FINISH PATCH Contents/MacOS/libnssckbi.dylib FINISH PATCH Contents/MacOS/libnss3.dylib FINISH PATCH Contents/MacOS/libmozglue.dylib FINISH PATCH Contents/MacOS/libmozalloc.dylib FINISH PATCH Contents/MacOS/libldif60.dylib FINISH PATCH Contents/MacOS/libldap60.dylib FINISH PATCH Contents/MacOS/libfreebl3.dylib FINISH PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH PATCH Contents/MacOS/XUL FINISH PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH PATCH Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-CN/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 5,11d4 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 117d107 < rmdir "Contents/Resources/searchplugins/" 122d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < a6iDkgUYCJ8FsSjwqSG3Tm3h054= --- > 1nEI4nr8WV5eNXtmLShVfiT6o5s= 221c221 < AWb8gO1E0fbcifgBanEFNv5xk6o= --- > FNjGGz++jL2rfXjOZp0Po0Zsou4= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < FVCl1JDdqK+arq7tdkp6T6knd2w= --- > CS4DnkutUKH20LPBOujHPACaGo8= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 429c429 < PeDOyi4aOmHdswQE2UaOpPyPnXI= --- > BBywhDv0OqWO//4Vnn54lhvlgyg= 433c433 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 437c437 < 3mllitwvIo3ydTFd/9knbmqKlys= --- > VsK0HpeXq86ldtDOC/ygyVtJUyw= 441c441 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 591,618d590 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < uBaf5cTiA3EnMfiHK4snF/HiGPA= --- > kLzx8Jo/kiMQSWt3MuDgJzI3gus= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c978 < a6iDkgUYCJ8FsSjwqSG3Tm3h054= --- > 1nEI4nr8WV5eNXtmLShVfiT6o5s= 1010c982 < AWb8gO1E0fbcifgBanEFNv5xk6o= --- > FNjGGz++jL2rfXjOZp0Po0Zsou4= 1014c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1070 < FVCl1JDdqK+arq7tdkp6T6knd2w= --- > CS4DnkutUKH20LPBOujHPACaGo8= 1102c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1176c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1178c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1180c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1182c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1184c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1186c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1188c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1190c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1218c1190 < PeDOyi4aOmHdswQE2UaOpPyPnXI= --- > BBywhDv0OqWO//4Vnn54lhvlgyg= 1222c1194 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1226c1198 < 3mllitwvIo3ydTFd/9knbmqKlys= --- > VsK0HpeXq86ldtDOC/ygyVtJUyw= 1230c1202 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1380,1407d1351 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48015617 8 -rw-r--r-- 1 cltbld staff 1221 Apr 2 19:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48015618 8 -rw-r--r-- 1 cltbld staff 2284 Apr 2 19:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48015969 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:31 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48015663 8 -rw-r--r-- 1 cltbld staff 1531 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48015664 8 -rw-r--r-- 1 cltbld staff 1670 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48015665 8 -rw-r--r-- 1 cltbld staff 2453 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48015666 8 -rw-r--r-- 1 cltbld staff 2569 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48015667 8 -rw-r--r-- 1 cltbld staff 899 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48015668 8 -rw-r--r-- 1 cltbld staff 1338 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48015669 8 -rw-r--r-- 1 cltbld staff 1363 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 SUCCESS: partial updates are smaller than complete updates, all is well in the universe Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:32:01-- https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:32:01 GMT Keep-Alive: timeout=5, max=916 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 948 Length: 948 [text/xml] Saving to: 'update.xml' 0K 100% 129M=0s 2016-05-09 17:32:01 (129 MB/s) - 'update.xml' saved [948/948] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-TW/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-TW/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:32:01-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-TW/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68089765 Connection: keep-alive Date: Tue, 10 May 2016 00:32:03 GMT x-amz-replication-status: COMPLETED x-amz-version-id: KBHzlt7csVdu.Ma0BcTFJ8jfsm6PnAFX Last-Modified: Tue, 03 May 2016 16:09:50 GMT ETag: "26e61f7e22dbda4de227d319aebaf942" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 f4879b16ae11c9a08a3038de5ea0df75.cloudfront.net (CloudFront) X-Amz-Cf-Id: oHiENuvcpNnQ53clNfEo70TupIerGDUBgt6D6IvWOSidF3_imVXUzw== Length: 68089765 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 4.55M 14s 3072K ........ ........ ........ ........ ........ ........ 9% 8.11M 10s 6144K ........ ........ ........ ........ ........ ........ 13% 10.2M 8s 9216K ........ ........ ........ ........ ........ ........ 18% 10.6M 7s 12288K ........ ........ ........ ........ ........ ........ 23% 19.2M 6s 15360K ........ ........ ........ ........ ........ ........ 27% 19.8M 5s 18432K ........ ........ ........ ........ ........ ........ 32% 20.6M 4s 21504K ........ ........ ........ ........ ........ ........ 36% 21.2M 4s 24576K ........ ........ ........ ........ ........ ........ 41% 35.5M 3s 27648K ........ ........ ........ ........ ........ ........ 46% 22.7M 3s 30720K ........ ........ ........ ........ ........ ........ 50% 37.9M 2s 33792K ........ ........ ........ ........ ........ ........ 55% 38.4M 2s 36864K ........ ........ ........ ........ ........ ........ 60% 36.9M 2s 39936K ........ ........ ........ ........ ........ ........ 64% 32.1M 2s 43008K ........ ........ ........ ........ ........ ........ 69% 28.6M 1s 46080K ........ ........ ........ ........ ........ ........ 73% 32.7M 1s 49152K ........ ........ ........ ........ ........ ........ 78% 36.7M 1s 52224K ........ ........ ........ ........ ........ ........ 83% 37.1M 1s 55296K ........ ........ ........ ........ ........ ........ 87% 25.0M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 37.0M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 37.6M 0s 64512K ........ ........ ........ ...... 100% 99.1M=3.4s 2016-05-09 17:32:05 (19.0 MB/s) - 'update/complete.mar' saved [68089765/68089765] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/zh-TW/Thunderbird 38.7.2.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.7.2.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/zh-TW/Thunderbird 38.7.2.dmg'] --2016-05-09 17:32:06-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/zh-TW/Thunderbird%2038.7.2.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70105405 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:32:07 GMT ETag: "a16d4aea2e8e356c813fd62acc9b6685" Last-Modified: Mon, 04 Apr 2016 16:48:17 GMT x-amz-replication-status: COMPLETED x-amz-version-id: Gdrr3iBrXxUshLv9YjZigAT0AbxnDfjE X-Cache: Miss from cloudfront Via: 1.1 75d3bdff1b8eb2920f04077d77f16ca0.cloudfront.net (CloudFront) X-Amz-Cf-Id: 3KFnh2huO8Zkfj6pA_lZxyKPukM-kodUto51v9zezf1VAm7DgKmc_w== Length: 70105405 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.7.2.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.76M 36s 3072K ........ ........ ........ ........ ........ ........ 8% 6.69M 22s 6144K ........ ........ ........ ........ ........ ........ 13% 10.2M 16s 9216K ........ ........ ........ ........ ........ ........ 17% 12.5M 12s 12288K ........ ........ ........ ........ ........ ........ 22% 12.2M 10s 15360K ........ ........ ........ ........ ........ ........ 26% 14.9M 9s 18432K ........ ........ ........ ........ ........ ........ 31% 19.7M 7s 21504K ........ ........ ........ ........ ........ ........ 35% 18.2M 6s 24576K ........ ........ ........ ........ ........ ........ 40% 17.1M 5s 27648K ........ ........ ........ ........ ........ ........ 44% 16.7M 5s 30720K ........ ........ ........ ........ ........ ........ 49% 22.9M 4s 33792K ........ ........ ........ ........ ........ ........ 53% 16.1M 4s 36864K ........ ........ ........ ........ ........ ........ 58% 19.8M 3s 39936K ........ ........ ........ ........ ........ ........ 62% 22.8M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 20.2M 2s 46080K ........ ........ ........ ........ ........ ........ 71% 18.2M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 20.4M 2s 52224K ........ ........ ........ ........ ........ ........ 80% 20.5M 1s 55296K ........ ........ ........ ........ ........ ........ 85% 21.4M 1s 58368K ........ ........ ........ ........ ........ ........ 89% 21.2M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 22.4M 0s 64512K ........ ........ ........ ........ ........ ........ 98% 18.4M 0s 67584K ........ ..... 100% 22.5M=5.6s 2016-05-09 17:32:12 (11.9 MB/s) - 'Thunderbird 38.7.2.dmg' saved [70105405/70105405] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/zh-TW/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/zh-TW/Thunderbird 45.1.0.dmg'] --2016-05-09 17:32:13-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/zh-TW/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77465481 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:32:13 GMT ETag: "f8c83d938a3bcb848c0b3b3b1a0d20b1" Last-Modified: Mon, 09 May 2016 22:15:34 GMT x-amz-replication-status: COMPLETED x-amz-version-id: II48xJS_EjpfKU97fh6yivJ.wENiiabJ X-Cache: Miss from cloudfront Via: 1.1 978198446b6fdba8a499c04f84a3a7e6.cloudfront.net (CloudFront) X-Amz-Cf-Id: HYU_g4KvHwKaWxnnDAa7MT4zxPGoEtIVwlsIkKIvhb2hH1PcnOOyWQ== Length: 77465481 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.70M 42s 3072K ........ ........ ........ ........ ........ ........ 8% 7.13M 25s 6144K ........ ........ ........ ........ ........ ........ 12% 6.25M 19s 9216K ........ ........ ........ ........ ........ ........ 16% 7.12M 16s 12288K ........ ........ ........ ........ ........ ........ 20% 9.57M 13s 15360K ........ ........ ........ ........ ........ ........ 24% 9.76M 12s 18432K ........ ........ ........ ........ ........ ........ 28% 9.93M 10s 21504K ........ ........ ........ ........ ........ ........ 32% 11.6M 9s 24576K ........ ........ ........ ........ ........ ........ 36% 11.5M 8s 27648K ........ ........ ........ ........ ........ ........ 40% 10.5M 7s 30720K ........ ........ ........ ........ ........ ........ 44% 11.6M 6s 33792K ........ ........ ........ ........ ........ ........ 48% 9.28M 6s 36864K ........ ........ ........ ........ ........ ........ 52% 9.34M 5s 39936K ........ ........ ........ ........ ........ ........ 56% 9.33M 5s 43008K ........ ........ ........ ........ ........ ........ 60% 9.79M 4s 46080K ........ ........ ........ ........ ........ ........ 64% 9.47M 4s 49152K ........ ........ ........ ........ ........ ........ 69% 9.44M 3s 52224K ........ ........ ........ ........ ........ ........ 73% 11.3M 3s 55296K ........ ........ ........ ........ ........ ........ 77% 9.51M 2s 58368K ........ ........ ........ ........ ........ ........ 81% 9.65M 2s 61440K ........ ........ ........ ........ ........ ........ 85% 7.48M 1s 64512K ........ ........ ........ ........ ........ ........ 89% 11.7M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 7.58M 1s 70656K ........ ........ ........ ........ ........ ........ 97% 9.37M 0s 73728K ........ ........ ........ ...... 100% 8.21M=9.5s 2016-05-09 17:32:23 (7.79 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77465481/77465481] installing downloads/Thunderbird 38.7.2.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/zh.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-zh-TW.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-bid-zh-TW.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-zh-TW.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/ipeen-zh-TW.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google-maps-zh-TW.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/findbook-zh-TW.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/chunghwapost-zh-TW.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/en-US.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/en-US.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/zh.lproj/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/zh.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo-zh-TW.xml PREPARE ADD Contents/Resources/searchplugins/yahoo-bid-zh-TW.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-zh-TW.xml PREPARE ADD Contents/Resources/searchplugins/ipeen-zh-TW.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/google-maps-zh-TW.xml PREPARE ADD Contents/Resources/searchplugins/findbook-zh-TW.xml PREPARE ADD Contents/Resources/searchplugins/chunghwapost-zh-TW.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/en-US.dic PREPARE ADD Contents/Resources/dictionaries/en-US.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/zh.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-zh-TW.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-bid-zh-TW.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-zh-TW.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/ipeen-zh-TW.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google-maps-zh-TW.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/findbook-zh-TW.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/chunghwapost-zh-TW.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/en-US.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/en-US.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/zh.lproj/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/zh.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo-zh-TW.xml EXECUTE ADD Contents/Resources/searchplugins/yahoo-bid-zh-TW.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-zh-TW.xml EXECUTE ADD Contents/Resources/searchplugins/ipeen-zh-TW.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/google-maps-zh-TW.xml EXECUTE ADD Contents/Resources/searchplugins/findbook-zh-TW.xml EXECUTE ADD Contents/Resources/searchplugins/chunghwapost-zh-TW.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/en-US.dic EXECUTE ADD Contents/Resources/dictionaries/en-US.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/zh.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-zh-TW.xml FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-bid-zh-TW.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-zh-TW.xml FINISH REMOVEFILE Contents/Resources/searchplugins/ipeen-zh-TW.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google-maps-zh-TW.xml FINISH REMOVEFILE Contents/Resources/searchplugins/findbook-zh-TW.xml FINISH REMOVEFILE Contents/Resources/searchplugins/chunghwapost-zh-TW.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/en-US.dic FINISH REMOVEFILE Contents/Resources/dictionaries/en-US.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/zh.lproj/ non-fatal error removing directory: Contents/Resources/zh.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/zh.lproj/InfoPlist.strings FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo-zh-TW.xml FINISH ADD Contents/Resources/searchplugins/yahoo-bid-zh-TW.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-zh-TW.xml FINISH ADD Contents/Resources/searchplugins/ipeen-zh-TW.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/google-maps-zh-TW.xml FINISH ADD Contents/Resources/searchplugins/findbook-zh-TW.xml FINISH ADD Contents/Resources/searchplugins/chunghwapost-zh-TW.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/en-US.dic FINISH ADD Contents/Resources/dictionaries/en-US.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini 25c25 < CommentGrayText=加上附註 (附註是大家都看得到的) --- > CommentGrayText=加上附註(附註會是公開å¯è¦‹çš„) diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources 76c76 < IAZyA/Gp7GAy0F7z0mjeLFUOxD4= --- > 5F1H6eOUtMqTkH7RjI02S31Jv+Y= 150c150 < IAZyA/Gp7GAy0F7z0mjeLFUOxD4= --- > 5F1H6eOUtMqTkH7RjI02S31Jv+Y= Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 2c2 < remove "Contents/Resources/zh.lproj/InfoPlist.strings" --- > remove "Contents/Resources/zh_TW.lproj/InfoPlist.strings" 5,12d4 < remove "Contents/Resources/searchplugins/yahoo-zh-TW.xml" < remove "Contents/Resources/searchplugins/yahoo-bid-zh-TW.xml" < remove "Contents/Resources/searchplugins/wikipedia-zh-TW.xml" < remove "Contents/Resources/searchplugins/ipeen-zh-TW.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/google-maps-zh-TW.xml" < remove "Contents/Resources/searchplugins/findbook-zh-TW.xml" < remove "Contents/Resources/searchplugins/chunghwapost-zh-TW.xml" 60,62c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 93c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 119,120c109 < rmdir "Contents/Resources/zh.lproj/" < rmdir "Contents/Resources/searchplugins/" --- > rmdir "Contents/Resources/zh_TW.lproj/" 125d113 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins Only in source/Thunderbird.app/Contents/Resources: zh.lproj Only in target/Thunderbird.app/Contents/Resources: zh_TW.lproj diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < 1UjSHCvqt+YLfokjFC8qNLKDocs= --- > nvyMcUWAJHhB4MZuzr7YlJfo4JY= 229c229 < iKX7Cnc41nEhKAewwIsR2Z19tpw= --- > mNcUiNTIB+1WvyylEXZG/tkyQoQ= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < wI6MXg3uGEKpopBYI4pCck+wMjI= --- > 9l1/S+tzpvfkBGLB8bRjPygUbBY= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 395c395 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 397c397 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 401c401 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 403c403 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 405c405 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 409c409 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 437c437 < 6r3ToTNJ1KaeVz2lrxqcSwYF84Y= --- > dRrWy3NFrhUaaQL5BjlhaPNgqpc= 441c441 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 445c445 < NYPRiz1DZuEVONV+Wl/MsIXG/AI= --- > qrZ5EyMNmVlh3uQK3B3tkJ8zQx4= 449c449 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 599,630d598 < Resources/searchplugins/chunghwapost-zh-TW.xml < < tL9uZKSGjMDNsB/IFlfemBXmvjk= < < Resources/searchplugins/findbook-zh-TW.xml < < Z12whc4F1jsbL1K46yLz7NCTyZA= < < Resources/searchplugins/google-maps-zh-TW.xml < < GW6Qx35z/FMKTUBtzgGcB0TTs2Q= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/ipeen-zh-TW.xml < < aX2SzAGRzfTy4FTL8+O8BIGF2/k= < < Resources/searchplugins/wikipedia-zh-TW.xml < < wmv90/LCsE4Do/Vm+xVHz7/H820= < < Resources/searchplugins/yahoo-bid-zh-TW.xml < < sWju+qyIBdUXE6OZgqbRVzQ+jts= < < Resources/searchplugins/yahoo-zh-TW.xml < < tg4n4qKKmrdnjiE6oTplq4tfFZk= < 643c611 < Resources/zh.lproj/InfoPlist.strings --- > Resources/zh_TW.lproj/InfoPlist.strings 668c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 677c645 < hUFmxAowkil89GkSjb8XvX8vd0w= --- > 3yhMR/kQdkHMSS2n6xZ3teZY9ro= 686c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 695c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 704c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 709c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 713c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 722c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 731c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 740c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 749c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 758c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 767c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 776c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 785c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 794c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 803c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 810c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 814c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 826c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 838c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 842c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 846c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 850c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 854c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 858c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 862c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 866c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 870c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 874c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 878c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 882c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 886c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 890c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 894c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 898c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 902c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 906c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 910c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 914c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 918c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 922c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 926c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 930c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 934c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 938c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 942c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 946c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 950c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 954c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 958c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 962c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 966c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 970c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 974c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 978c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 982c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 986c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 990c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 994c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 998c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 1002c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 1006c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1010c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1018c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1022c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1026c994 < 1UjSHCvqt+YLfokjFC8qNLKDocs= --- > nvyMcUWAJHhB4MZuzr7YlJfo4JY= 1030c998 < iKX7Cnc41nEhKAewwIsR2Z19tpw= --- > mNcUiNTIB+1WvyylEXZG/tkyQoQ= 1034c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1038c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1042c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1046c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1050c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1054c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1058c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1062c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1066c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1070c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1074c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1078c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1082c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1086c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1090c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1102c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1106c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1114c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1118c1086 < wI6MXg3uGEKpopBYI4pCck+wMjI= --- > 9l1/S+tzpvfkBGLB8bRjPygUbBY= 1122c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1126c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1130c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1134c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1138c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1142c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1146c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1150c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1154c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1158c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1162c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1166c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1170c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1178c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1182c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1186c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1190c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1194c1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1196c1164 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1198c1166 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1200c1168 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1202c1170 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1204c1172 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1206c1174 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1208c1176 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1210c1178 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1238c1206 < 6r3ToTNJ1KaeVz2lrxqcSwYF84Y= --- > dRrWy3NFrhUaaQL5BjlhaPNgqpc= 1242c1210 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1246c1214 < NYPRiz1DZuEVONV+Wl/MsIXG/AI= --- > qrZ5EyMNmVlh3uQK3B3tkJ8zQx4= 1250c1218 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1400,1431d1367 < Resources/searchplugins/chunghwapost-zh-TW.xml < < tL9uZKSGjMDNsB/IFlfemBXmvjk= < < Resources/searchplugins/findbook-zh-TW.xml < < Z12whc4F1jsbL1K46yLz7NCTyZA= < < Resources/searchplugins/google-maps-zh-TW.xml < < GW6Qx35z/FMKTUBtzgGcB0TTs2Q= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/ipeen-zh-TW.xml < < aX2SzAGRzfTy4FTL8+O8BIGF2/k= < < Resources/searchplugins/wikipedia-zh-TW.xml < < wmv90/LCsE4Do/Vm+xVHz7/H820= < < Resources/searchplugins/yahoo-bid-zh-TW.xml < < sWju+qyIBdUXE6OZgqbRVzQ+jts= < < Resources/searchplugins/yahoo-zh-TW.xml < < tg4n4qKKmrdnjiE6oTplq4tfFZk= < 1444c1380 < Resources/zh.lproj/InfoPlist.strings --- > Resources/zh_TW.lproj/InfoPlist.strings Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48016608 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:33 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48016607 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:33 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48016606 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:33 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48016558 8 -rw-r--r-- 1 cltbld staff 2530 May 9 17:33 source/Thunderbird.app/Contents/Resources/searchplugins/chunghwapost-zh-TW.xml 48016557 8 -rw-r--r-- 1 cltbld staff 2217 May 9 17:33 source/Thunderbird.app/Contents/Resources/searchplugins/findbook-zh-TW.xml 48016556 8 -rw-r--r-- 1 cltbld staff 2311 May 9 17:33 source/Thunderbird.app/Contents/Resources/searchplugins/google-maps-zh-TW.xml 48016555 8 -rw-r--r-- 1 cltbld staff 2371 May 9 17:33 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48016554 8 -rw-r--r-- 1 cltbld staff 959 May 9 17:33 source/Thunderbird.app/Contents/Resources/searchplugins/ipeen-zh-TW.xml 48016553 8 -rw-r--r-- 1 cltbld staff 1172 May 9 17:33 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-zh-TW.xml 48016552 8 -rw-r--r-- 1 cltbld staff 870 May 9 17:33 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-bid-zh-TW.xml 48016551 8 -rw-r--r-- 1 cltbld staff 1105 May 9 17:33 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-zh-TW.xml Contents of source/Thunderbird.app/Contents/Resources/zh.lproj dir only in source or target 48016548 8 -rw-r--r-- 1 cltbld staff 474 May 9 17:33 source/Thunderbird.app/Contents/Resources/zh.lproj/InfoPlist.strings Contents of target/Thunderbird.app/Contents/Resources/zh_TW.lproj dir only in source or target 48016540 8 -rw-r--r-- 1 cltbld staff 474 May 9 11:51 target/Thunderbird.app/Contents/Resources/zh_TW.lproj/InfoPlist.strings FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.2/20160402193654/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-TW/thunderbird-38.7.2-38.8.0.partial.mar' and placing in cache... Executing: ['wget', '-O', 'update/partial.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-TW/thunderbird-38.7.2-38.8.0.partial.mar'] --2016-05-09 17:33:17-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-TW/thunderbird-38.7.2-38.8.0.partial.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 3992716 Connection: keep-alive Date: Tue, 10 May 2016 00:33:18 GMT x-amz-replication-status: COMPLETED x-amz-version-id: mDhOvXbeEDADYdp861R_cepV2Hbeqcw_ Last-Modified: Tue, 03 May 2016 16:09:55 GMT ETag: "1973315a2b0cdedcef8632939af79c17" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 aa89533ad2ec5e0edba466c9920bd000.cloudfront.net (CloudFront) X-Amz-Cf-Id: iQkGNBafxWpFFGb0GFostXSxO9m-4xaMGbjBnimluGaq04bIr59o1A== Length: 3992716 (3.8M) [application/octet-stream] Saving to: 'update/partial.mar' 0K ........ ........ ........ ........ ........ ........ 78% 2.06M 0s 3072K ........ .... 100% 5.52M=1.6s 2016-05-09 17:33:19 (2.38 MB/s) - 'update/partial.mar' saved [3992716/3992716] Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.2/mac/zh-TW/Thunderbird 38.7.2.dmg' from cache... Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/zh-TW/Thunderbird 45.1.0.dmg' from cache... installing downloads/Thunderbird 38.7.2.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE partial PREPARE PATCH Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE PATCH Contents/Resources/platform.ini PREPARE PATCH Contents/Resources/omni.ja PREPARE PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE PATCH Contents/Resources/blocklist.xml PREPARE PATCH Contents/Resources/application.ini PREPARE PATCH Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE PATCH Contents/MacOS/thunderbird-bin PREPARE PATCH Contents/MacOS/thunderbird PREPARE PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE PATCH Contents/MacOS/libsoftokn3.dylib PREPARE PATCH Contents/MacOS/libprldap60.dylib PREPARE PATCH Contents/MacOS/libplugin_child_interpose.dylib PREPARE PATCH Contents/MacOS/libnssdbm3.dylib PREPARE PATCH Contents/MacOS/libnssckbi.dylib PREPARE PATCH Contents/MacOS/libnss3.dylib PREPARE PATCH Contents/MacOS/libmozglue.dylib PREPARE PATCH Contents/MacOS/libmozalloc.dylib PREPARE PATCH Contents/MacOS/libldif60.dylib PREPARE PATCH Contents/MacOS/libldap60.dylib PREPARE PATCH Contents/MacOS/libfreebl3.dylib PREPARE PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE PATCH Contents/MacOS/XUL PREPARE PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE PATCH Contents/Info.plist EXECUTE PATCH Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE PATCH Contents/Resources/platform.ini EXECUTE PATCH Contents/Resources/omni.ja EXECUTE PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE PATCH Contents/Resources/blocklist.xml EXECUTE PATCH Contents/Resources/application.ini EXECUTE PATCH Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE PATCH Contents/MacOS/thunderbird-bin EXECUTE PATCH Contents/MacOS/thunderbird EXECUTE PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE PATCH Contents/MacOS/libsoftokn3.dylib EXECUTE PATCH Contents/MacOS/libprldap60.dylib EXECUTE PATCH Contents/MacOS/libplugin_child_interpose.dylib EXECUTE PATCH Contents/MacOS/libnssdbm3.dylib EXECUTE PATCH Contents/MacOS/libnssckbi.dylib EXECUTE PATCH Contents/MacOS/libnss3.dylib EXECUTE PATCH Contents/MacOS/libmozglue.dylib EXECUTE PATCH Contents/MacOS/libmozalloc.dylib EXECUTE PATCH Contents/MacOS/libldif60.dylib EXECUTE PATCH Contents/MacOS/libldap60.dylib EXECUTE PATCH Contents/MacOS/libfreebl3.dylib EXECUTE PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE PATCH Contents/MacOS/XUL EXECUTE PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE PATCH Contents/Info.plist FINISH PATCH Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH PATCH Contents/Resources/platform.ini FINISH PATCH Contents/Resources/omni.ja FINISH PATCH Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH PATCH Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH PATCH Contents/Resources/blocklist.xml FINISH PATCH Contents/Resources/application.ini FINISH PATCH Contents/MacOS/updater.app/Contents/MacOS/updater FINISH PATCH Contents/MacOS/thunderbird-bin FINISH PATCH Contents/MacOS/thunderbird FINISH PATCH Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH PATCH Contents/MacOS/libsoftokn3.dylib FINISH PATCH Contents/MacOS/libprldap60.dylib FINISH PATCH Contents/MacOS/libplugin_child_interpose.dylib FINISH PATCH Contents/MacOS/libnssdbm3.dylib FINISH PATCH Contents/MacOS/libnssckbi.dylib FINISH PATCH Contents/MacOS/libnss3.dylib FINISH PATCH Contents/MacOS/libmozglue.dylib FINISH PATCH Contents/MacOS/libmozalloc.dylib FINISH PATCH Contents/MacOS/libldif60.dylib FINISH PATCH Contents/MacOS/libldap60.dylib FINISH PATCH Contents/MacOS/libfreebl3.dylib FINISH PATCH Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH PATCH Contents/MacOS/XUL FINISH PATCH Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH PATCH Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini 25c25 < CommentGrayText=加上附註 (附註是大家都看得到的) --- > CommentGrayText=加上附註(附註會是公開å¯è¦‹çš„) diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources 76c76 < IAZyA/Gp7GAy0F7z0mjeLFUOxD4= --- > 5F1H6eOUtMqTkH7RjI02S31Jv+Y= 150c150 < IAZyA/Gp7GAy0F7z0mjeLFUOxD4= --- > 5F1H6eOUtMqTkH7RjI02S31Jv+Y= Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_10-0000/l10n/zh-TW/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 2c2 < remove "Contents/Resources/zh.lproj/InfoPlist.strings" --- > remove "Contents/Resources/zh_TW.lproj/InfoPlist.strings" 5,12d4 < remove "Contents/Resources/searchplugins/yahoo-zh-TW.xml" < remove "Contents/Resources/searchplugins/yahoo-bid-zh-TW.xml" < remove "Contents/Resources/searchplugins/wikipedia-zh-TW.xml" < remove "Contents/Resources/searchplugins/ipeen-zh-TW.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/google-maps-zh-TW.xml" < remove "Contents/Resources/searchplugins/findbook-zh-TW.xml" < remove "Contents/Resources/searchplugins/chunghwapost-zh-TW.xml" 60,62c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 93c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 119,120c109 < rmdir "Contents/Resources/zh.lproj/" < rmdir "Contents/Resources/searchplugins/" --- > rmdir "Contents/Resources/zh_TW.lproj/" 125d113 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins Only in source/Thunderbird.app/Contents/Resources: zh.lproj Only in target/Thunderbird.app/Contents/Resources: zh_TW.lproj diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < 1UjSHCvqt+YLfokjFC8qNLKDocs= --- > nvyMcUWAJHhB4MZuzr7YlJfo4JY= 229c229 < iKX7Cnc41nEhKAewwIsR2Z19tpw= --- > mNcUiNTIB+1WvyylEXZG/tkyQoQ= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < wI6MXg3uGEKpopBYI4pCck+wMjI= --- > 9l1/S+tzpvfkBGLB8bRjPygUbBY= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 395c395 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 397c397 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 401c401 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 403c403 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 405c405 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 409c409 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 437c437 < 6r3ToTNJ1KaeVz2lrxqcSwYF84Y= --- > dRrWy3NFrhUaaQL5BjlhaPNgqpc= 441c441 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 445c445 < NYPRiz1DZuEVONV+Wl/MsIXG/AI= --- > qrZ5EyMNmVlh3uQK3B3tkJ8zQx4= 449c449 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 599,630d598 < Resources/searchplugins/chunghwapost-zh-TW.xml < < tL9uZKSGjMDNsB/IFlfemBXmvjk= < < Resources/searchplugins/findbook-zh-TW.xml < < Z12whc4F1jsbL1K46yLz7NCTyZA= < < Resources/searchplugins/google-maps-zh-TW.xml < < GW6Qx35z/FMKTUBtzgGcB0TTs2Q= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/ipeen-zh-TW.xml < < aX2SzAGRzfTy4FTL8+O8BIGF2/k= < < Resources/searchplugins/wikipedia-zh-TW.xml < < wmv90/LCsE4Do/Vm+xVHz7/H820= < < Resources/searchplugins/yahoo-bid-zh-TW.xml < < sWju+qyIBdUXE6OZgqbRVzQ+jts= < < Resources/searchplugins/yahoo-zh-TW.xml < < tg4n4qKKmrdnjiE6oTplq4tfFZk= < 643c611 < Resources/zh.lproj/InfoPlist.strings --- > Resources/zh_TW.lproj/InfoPlist.strings 668c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 677c645 < hUFmxAowkil89GkSjb8XvX8vd0w= --- > 3yhMR/kQdkHMSS2n6xZ3teZY9ro= 686c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 695c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 704c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 709c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 713c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 722c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 731c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 740c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 749c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 758c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 767c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 776c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 785c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 794c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 803c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 810c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 814c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 826c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 838c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 842c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 846c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 850c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 854c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 858c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 862c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 866c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 870c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 874c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 878c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 882c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 886c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 890c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 894c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 898c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 902c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 906c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 910c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 914c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 918c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 922c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 926c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 930c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 934c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 938c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 942c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 946c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 950c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 954c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 958c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 962c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 966c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 970c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 974c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 978c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 982c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 986c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 990c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 994c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 998c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 1002c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 1006c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1010c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1018c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1022c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1026c994 < 1UjSHCvqt+YLfokjFC8qNLKDocs= --- > nvyMcUWAJHhB4MZuzr7YlJfo4JY= 1030c998 < iKX7Cnc41nEhKAewwIsR2Z19tpw= --- > mNcUiNTIB+1WvyylEXZG/tkyQoQ= 1034c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1038c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1042c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1046c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1050c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1054c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1058c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1062c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1066c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1070c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1074c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1078c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1082c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1086c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1090c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1102c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1106c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1114c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1118c1086 < wI6MXg3uGEKpopBYI4pCck+wMjI= --- > 9l1/S+tzpvfkBGLB8bRjPygUbBY= 1122c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1126c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1130c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1134c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1138c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1142c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1146c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1150c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1154c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1158c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1162c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1166c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1170c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1178c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1182c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1186c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1190c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1194c1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1196c1164 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1198c1166 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1200c1168 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1202c1170 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1204c1172 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1206c1174 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1208c1176 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1210c1178 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1238c1206 < 6r3ToTNJ1KaeVz2lrxqcSwYF84Y= --- > dRrWy3NFrhUaaQL5BjlhaPNgqpc= 1242c1210 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1246c1214 < NYPRiz1DZuEVONV+Wl/MsIXG/AI= --- > qrZ5EyMNmVlh3uQK3B3tkJ8zQx4= 1250c1218 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1400,1431d1367 < Resources/searchplugins/chunghwapost-zh-TW.xml < < tL9uZKSGjMDNsB/IFlfemBXmvjk= < < Resources/searchplugins/findbook-zh-TW.xml < < Z12whc4F1jsbL1K46yLz7NCTyZA= < < Resources/searchplugins/google-maps-zh-TW.xml < < GW6Qx35z/FMKTUBtzgGcB0TTs2Q= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/ipeen-zh-TW.xml < < aX2SzAGRzfTy4FTL8+O8BIGF2/k= < < Resources/searchplugins/wikipedia-zh-TW.xml < < wmv90/LCsE4Do/Vm+xVHz7/H820= < < Resources/searchplugins/yahoo-bid-zh-TW.xml < < sWju+qyIBdUXE6OZgqbRVzQ+jts= < < Resources/searchplugins/yahoo-zh-TW.xml < < tg4n4qKKmrdnjiE6oTplq4tfFZk= < 1444c1380 < Resources/zh.lproj/InfoPlist.strings --- > Resources/zh_TW.lproj/InfoPlist.strings Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48016975 8 -rw-r--r-- 1 cltbld staff 1221 Apr 2 19:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48016976 8 -rw-r--r-- 1 cltbld staff 2284 Apr 2 19:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48017333 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:34 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48017021 8 -rw-r--r-- 1 cltbld staff 2530 Apr 2 22:27 source/Thunderbird.app/Contents/Resources/searchplugins/chunghwapost-zh-TW.xml 48017022 8 -rw-r--r-- 1 cltbld staff 2217 Apr 2 22:27 source/Thunderbird.app/Contents/Resources/searchplugins/findbook-zh-TW.xml 48017023 8 -rw-r--r-- 1 cltbld staff 2311 Apr 2 22:27 source/Thunderbird.app/Contents/Resources/searchplugins/google-maps-zh-TW.xml 48017024 8 -rw-r--r-- 1 cltbld staff 2371 Apr 2 21:29 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48017025 8 -rw-r--r-- 1 cltbld staff 959 Apr 2 22:27 source/Thunderbird.app/Contents/Resources/searchplugins/ipeen-zh-TW.xml 48017026 8 -rw-r--r-- 1 cltbld staff 1172 Apr 2 22:27 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-zh-TW.xml 48017027 8 -rw-r--r-- 1 cltbld staff 870 Apr 2 22:27 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-bid-zh-TW.xml 48017028 8 -rw-r--r-- 1 cltbld staff 1105 Apr 2 22:27 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-zh-TW.xml Contents of source/Thunderbird.app/Contents/Resources/zh.lproj dir only in source or target 48017029 8 -rw-r--r-- 1 cltbld staff 474 Apr 2 20:28 source/Thunderbird.app/Contents/Resources/zh.lproj/InfoPlist.strings Contents of target/Thunderbird.app/Contents/Resources/zh_TW.lproj dir only in source or target 48017292 8 -rw-r--r-- 1 cltbld staff 474 May 9 11:51 target/Thunderbird.app/Contents/Resources/zh_TW.lproj/InfoPlist.strings FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 SUCCESS: partial updates are smaller than complete updates, all is well in the universe Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.1/20160323055719/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.1/20160323055719/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.1/20160323055719/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:34:10-- https://aus4.mozilla.org/update/3/Thunderbird/38.7.1/20160323055719/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:34:10 GMT Keep-Alive: timeout=5, max=943 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 939 Length: 939 [text/xml] Saving to: 'update.xml' 0K 100% 112M=0s 2016-05-09 17:34:10 (112 MB/s) - 'update.xml' saved [939/939] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/de/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/de/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:34:10-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/de/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67823848 Connection: keep-alive Date: Tue, 10 May 2016 00:20:05 GMT x-amz-replication-status: COMPLETED x-amz-version-id: aGvAJx6S6Jm_F6IBP0XNy5ScBGKBRKjJ Last-Modified: Tue, 03 May 2016 16:19:02 GMT ETag: "3807a85eeaa17ac09261d7bb0fbd928f" Accept-Ranges: bytes Server: AmazonS3 Age: 847 X-Cache: Hit from cloudfront Via: 1.1 373880a309382d9266a9313233b86d25.cloudfront.net (CloudFront) X-Amz-Cf-Id: QxHk5H7Vb4j9LRR0lzwWs2tk2blH98b52QFdFqq1VoWxnv5mzRLDkA== Length: 67823848 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 21.3M 3s 3072K ........ ........ ........ ........ ........ ........ 9% 26.6M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 40.1M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 39.5M 2s 12288K ........ ........ ........ ........ ........ ........ 23% 39.3M 2s 15360K ........ ........ ........ ........ ........ ........ 27% 40.0M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 40.6M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 39.2M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 40.3M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 38.9M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 39.7M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 40.3M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 34.5M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 38.1M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 34.4M 1s 46080K ........ ........ ........ ........ ........ ........ 74% 42.5M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 38.9M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 40.0M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 37.2M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 40.1M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 41.2M 0s 64512K ........ ........ ........ .. 100% 40.8M=1.8s 2016-05-09 17:34:12 (36.9 MB/s) - 'update/complete.mar' saved [67823848/67823848] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.1/mac/de/Thunderbird 38.7.1.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.7.1.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.1/mac/de/Thunderbird 38.7.1.dmg'] --2016-05-09 17:34:14-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.1/mac/de/Thunderbird%2038.7.1.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69848714 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:34:14 GMT ETag: "fac6702247c95ca6e43991ae376825ce" Last-Modified: Thu, 24 Mar 2016 20:49:26 GMT x-amz-replication-status: COMPLETED x-amz-version-id: mkL4QcXqiEH3QltFffp_rCMDiT_WMdnc X-Cache: Miss from cloudfront Via: 1.1 aa96a51fedae85199c643eb5c8eca4e4.cloudfront.net (CloudFront) X-Amz-Cf-Id: usMyx8akMYefuej92UGtbx3kIOlNaPu_3x1ypMErlpHTpKBXeaMbwg== Length: 69848714 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.7.1.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.36M 47s 3072K ........ ........ ........ ........ ........ ........ 9% 4.98M 28s 6144K ........ ........ ........ ........ ........ ........ 13% 8.82M 20s 9216K ........ ........ ........ ........ ........ ........ 18% 789K 32s 12288K ........ ........ ........ ........ ........ ........ 22% 1.99M 29s 15360K ........ ........ ........ ........ ........ ........ 27% 5.00M 25s 18432K ........ ........ ........ ........ ........ ........ 31% 7.48M 21s 21504K ........ ........ ........ ........ ........ ........ 36% 9.41M 18s 24576K ........ ........ ........ ........ ........ ........ 40% 10.3M 15s 27648K ........ ........ ........ ........ ........ ........ 45% 11.2M 13s 30720K ........ ........ ........ ........ ........ ........ 49% 12.9M 11s 33792K ........ ........ ........ ........ ........ ........ 54% 13.7M 9s 36864K ........ ........ ........ ........ ........ ........ 58% 13.0M 8s 39936K ........ ........ ........ ........ ........ ........ 63% 17.8M 7s 43008K ........ ........ ........ ........ ........ ........ 67% 13.6M 6s 46080K ........ ........ ........ ........ ........ ........ 72% 6.37M 5s 49152K ........ ........ ........ ........ ........ ........ 76% 9.86M 4s 52224K ........ ........ ........ ........ ........ ........ 81% 13.7M 3s 55296K ........ ........ ........ ........ ........ ........ 85% 14.9M 2s 58368K ........ ........ ........ ........ ........ ........ 90% 14.6M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 9.85M 1s 64512K ........ ........ ........ ........ ........ ........ 99% 5.27M 0s 67584K ........ . 100% 5.75M=14s 2016-05-09 17:34:28 (4.80 MB/s) - 'Thunderbird 38.7.1.dmg' saved [69848714/69848714] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/de/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/de/Thunderbird 45.1.0.dmg'] --2016-05-09 17:34:28-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/de/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77201592 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:20:17 GMT ETag: "435140348037dc55a0b7ad9a99a3c3c9" Last-Modified: Mon, 09 May 2016 22:15:56 GMT x-amz-replication-status: COMPLETED x-amz-version-id: oOT8e8Sk1pXZM_vbmZERXVFPA4XGm_rF Age: 851 X-Cache: Hit from cloudfront Via: 1.1 ca024aca72de992a25bcd7fdcfe84b67.cloudfront.net (CloudFront) X-Amz-Cf-Id: dH1SQUQZfWOAmAC1ESFPqPsvvbf_GykYmejT0qfTc2RWpCmzMpCxUw== Length: 77201592 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 20.2M 3s 3072K ........ ........ ........ ........ ........ ........ 8% 57.2M 2s 6144K ........ ........ ........ ........ ........ ........ 12% 44.5M 2s 9216K ........ ........ ........ ........ ........ ........ 16% 51.7M 2s 12288K ........ ........ ........ ........ ........ ........ 20% 55.7M 1s 15360K ........ ........ ........ ........ ........ ........ 24% 58.1M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 44.8M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 47.1M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 52.0M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 45.1M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 39.2M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 39.3M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 39.6M 1s 39936K ........ ........ ........ ........ ........ ........ 57% 43.5M 1s 43008K ........ ........ ........ ........ ........ ........ 61% 57.9M 1s 46080K ........ ........ ........ ........ ........ ........ 65% 53.7M 1s 49152K ........ ........ ........ ........ ........ ........ 69% 55.3M 1s 52224K ........ ........ ........ ........ ........ ........ 73% 41.7M 0s 55296K ........ ........ ........ ........ ........ ........ 77% 27.7M 0s 58368K ........ ........ ........ ........ ........ ........ 81% 19.7M 0s 61440K ........ ........ ........ ........ ........ ........ 85% 25.7M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 28.7M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 28.6M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 33.9M 0s 73728K ........ ........ ........ .. 100% 38.2M=1.9s 2016-05-09 17:34:30 (38.0 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77201592/77201592] installing downloads/Thunderbird 38.7.1.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-de.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-de.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter-de.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay-de.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom-de.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/de.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/de.lproj/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo-de.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-de.xml PREPARE ADD Contents/Resources/searchplugins/twitter-de.xml PREPARE ADD Contents/Resources/searchplugins/eBay-de.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom-de.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/de.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-de.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-de.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter-de.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay-de.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom-de.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/de.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/de.lproj/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo-de.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-de.xml EXECUTE ADD Contents/Resources/searchplugins/twitter-de.xml EXECUTE ADD Contents/Resources/searchplugins/eBay-de.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom-de.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/de.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-de.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-de.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter-de.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay-de.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom-de.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/de.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/de.lproj/ non-fatal error removing directory: Contents/Resources/de.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo-de.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-de.xml FINISH ADD Contents/Resources/searchplugins/twitter-de.xml FINISH ADD Contents/Resources/searchplugins/eBay-de.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom-de.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/de.lproj/InfoPlist.strings FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,9d3 < remove "Contents/Resources/searchplugins/yahoo-de.xml" < remove "Contents/Resources/searchplugins/wikipedia-de.xml" < remove "Contents/Resources/searchplugins/twitter-de.xml" < remove "Contents/Resources/searchplugins/eBay-de.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/amazondotcom-de.xml" 57,59c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 89c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 115d106 < rmdir "Contents/Resources/searchplugins/" 120d110 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 34c34 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 38c38 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 42c42 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 46c46 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 50c50 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 54c54 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 58c58 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 62c62 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 66c66 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 70c70 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 74c74 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 78c78 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 82c82 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 86c86 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 90c90 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 94c94 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 98c98 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 102c102 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 106c106 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 110c110 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 114c114 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 118c118 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 122c122 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 126c126 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 130c130 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 134c134 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 138c138 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 142c142 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 146c146 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 150c150 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 154c154 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 158c158 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 162c162 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 166c166 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 170c170 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 174c174 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 178c178 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 182c182 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 186c186 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 190c190 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 194c194 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 198c198 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 202c202 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 206c206 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 210c210 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 218c218 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 222c222 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 226c226 < RnyHJ/RR6vPG3ztKb7IYV9XnWNw= --- > AxB1lgFdUjxd787pZU1uDnun6kw= 230c230 < 06K7RM+B6YYr19N0npI09hJwsYA= --- > 1UVkACQqTdXbSwIczKoEw7j9+jk= 234c234 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 238c238 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 242c242 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 246c246 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 250c250 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 254c254 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 258c258 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 262c262 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 266c266 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 270c270 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 274c274 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 278c278 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 282c282 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 286c286 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 290c290 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 302c302 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 306c306 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 314c314 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 318c318 < fImjwMhmZAnvSZ8y3sfHBLrAsp8= --- > 0giR105dPTDya/zJ71RFAuqUAX8= 322c322 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 326c326 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 330c330 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 334c334 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 338c338 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 342c342 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 346c346 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 350c350 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 354c354 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 358c358 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 362c362 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 366c366 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 370c370 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 378c378 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 382c382 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 386c386 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 390c390 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 394c394 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 396c396 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 398c398 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 400c400 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 402c402 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 404c404 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 406c406 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 408c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 410c410 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < K+JYnQgsC3UO6xPnSuonu6AcAro= --- > bwXqtvrQirE8S0nt9M/i4LfOe30= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < 8tOK5zGFTQ1AeqBNROlz0erOTqg= --- > 19TqbLGdtCvnAUH20rheEucP3Ck= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,623d599 < Resources/searchplugins/amazondotcom-de.xml < < ukLbNJ4zXBSobkwp8N3Xgy4+HNQ= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay-de.xml < < H+aNvr8b2PjQ4OR4osIHYLyI0x0= < < Resources/searchplugins/twitter-de.xml < < Bb5Gh4oWJInLJSXBD2D8oSf11TQ= < < Resources/searchplugins/wikipedia-de.xml < < 2j1icJe4JYwCF6VOrtG5TfHO7cE= < < Resources/searchplugins/yahoo-de.xml < < I/kLrxke3gGjPzpvZI4wsyTf2X8= < 652c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 661c637 < VRC1V26jvlyKJFqNdshuLSc1qtU= --- > poY/SX7VlJKV86Qnv87Z7ScyiUs= 670c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 679c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 688c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 693c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 697c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 706c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 715c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 724c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 733c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 742c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 751c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 760c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 769c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 778c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 787c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 794c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 798c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 819c795 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 823c799 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 827c803 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 831c807 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 835c811 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 839c815 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 843c819 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 847c823 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 851c827 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 855c831 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 859c835 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 863c839 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 867c843 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 871c847 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 875c851 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 879c855 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 883c859 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 887c863 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 891c867 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 895c871 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 899c875 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 903c879 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 907c883 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 911c887 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 915c891 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 919c895 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 923c899 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 927c903 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 931c907 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 935c911 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 939c915 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 943c919 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 947c923 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 951c927 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 955c931 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 959c935 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 963c939 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 967c943 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 971c947 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 975c951 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 979c955 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 983c959 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 987c963 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 991c967 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 995c971 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1003c979 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1007c983 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1011c987 < RnyHJ/RR6vPG3ztKb7IYV9XnWNw= --- > AxB1lgFdUjxd787pZU1uDnun6kw= 1015c991 < 06K7RM+B6YYr19N0npI09hJwsYA= --- > 1UVkACQqTdXbSwIczKoEw7j9+jk= 1019c995 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1023c999 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1027c1003 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1031c1007 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1035c1011 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1039c1015 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1043c1019 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1047c1023 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1051c1027 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1055c1031 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1059c1035 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1063c1039 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1067c1043 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1071c1047 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1075c1051 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1087c1063 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1091c1067 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1099c1075 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1103c1079 < fImjwMhmZAnvSZ8y3sfHBLrAsp8= --- > 0giR105dPTDya/zJ71RFAuqUAX8= 1107c1083 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1111c1087 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1115c1091 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1119c1095 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1123c1099 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1127c1103 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1131c1107 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1135c1111 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1139c1115 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1143c1119 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1147c1123 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1151c1127 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1155c1131 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1163c1139 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1167c1143 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1171c1147 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1175c1151 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1179c1155 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1181c1157 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1183c1159 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1185c1161 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1187c1163 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1189c1165 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1191c1167 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1193c1169 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1195c1171 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1223c1199 < K+JYnQgsC3UO6xPnSuonu6AcAro= --- > bwXqtvrQirE8S0nt9M/i4LfOe30= 1227c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1231c1207 < 8tOK5zGFTQ1AeqBNROlz0erOTqg= --- > 19TqbLGdtCvnAUH20rheEucP3Ck= 1235c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1385,1408d1360 < Resources/searchplugins/amazondotcom-de.xml < < ukLbNJ4zXBSobkwp8N3Xgy4+HNQ= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay-de.xml < < H+aNvr8b2PjQ4OR4osIHYLyI0x0= < < Resources/searchplugins/twitter-de.xml < < Bb5Gh4oWJInLJSXBD2D8oSf11TQ= < < Resources/searchplugins/wikipedia-de.xml < < 2j1icJe4JYwCF6VOrtG5TfHO7cE= < < Resources/searchplugins/yahoo-de.xml < < I/kLrxke3gGjPzpvZI4wsyTf2X8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48017961 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:35 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48017960 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:35 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48017959 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:35 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48017911 8 -rw-r--r-- 1 cltbld staff 1298 May 9 17:35 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom-de.xml 48017910 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:35 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48017909 8 -rw-r--r-- 1 cltbld staff 1153 May 9 17:35 source/Thunderbird.app/Contents/Resources/searchplugins/eBay-de.xml 48017908 8 -rw-r--r-- 1 cltbld staff 890 May 9 17:35 source/Thunderbird.app/Contents/Resources/searchplugins/twitter-de.xml 48017907 8 -rw-r--r-- 1 cltbld staff 1128 May 9 17:35 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-de.xml 48017906 8 -rw-r--r-- 1 cltbld staff 1046 May 9 17:35 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-de.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.1.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.1/20160323055719/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.1/20160323055719/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.1/20160323055719/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:35:25-- https://aus4.mozilla.org/update/3/Thunderbird/38.7.1/20160323055719/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:35:25 GMT Keep-Alive: timeout=5, max=679 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 948 Length: 948 [text/xml] Saving to: 'update.xml' 0K 100% 129M=0s 2016-05-09 17:35:25 (129 MB/s) - 'update.xml' saved [948/948] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-US/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-US/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:35:25-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-US/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68040242 Connection: keep-alive Date: Tue, 10 May 2016 00:21:12 GMT x-amz-replication-status: COMPLETED x-amz-version-id: SoGdOKtTjxEseWB7LTKtL96CmEKwfVEm Last-Modified: Tue, 03 May 2016 14:51:23 GMT ETag: "2c25d7f4d7628277e9a04bddcf4964d1" Accept-Ranges: bytes Server: AmazonS3 Age: 854 X-Cache: Hit from cloudfront Via: 1.1 fc7da6323a08a2c16d48dd4939ce0898.cloudfront.net (CloudFront) X-Amz-Cf-Id: bv_ln8GZ2qpU60Au7zZ1k0UESyucbhrjFB2gFS9mAiJU_VweYsQt_g== Length: 68040242 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 56.7M 1s 3072K ........ ........ ........ ........ ........ ........ 9% 108M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 112M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 104M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 112M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 112M 0s 18432K ........ ........ ........ ........ ........ ........ 32% 112M 0s 21504K ........ ........ ........ ........ ........ ........ 36% 106M 0s 24576K ........ ........ ........ ........ ........ ........ 41% 112M 0s 27648K ........ ........ ........ ........ ........ ........ 46% 112M 0s 30720K ........ ........ ........ ........ ........ ........ 50% 112M 0s 33792K ........ ........ ........ ........ ........ ........ 55% 112M 0s 36864K ........ ........ ........ ........ ........ ........ 60% 112M 0s 39936K ........ ........ ........ ........ ........ ........ 64% 111M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 111M 0s 46080K ........ ........ ........ ........ ........ ........ 73% 106M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 111M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 112M 0s 55296K ........ ........ ........ ........ ........ ........ 87% 112M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 107M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 112M 0s 64512K ........ ........ ........ ...... 100% 112M=0.6s 2016-05-09 17:35:26 (106 MB/s) - 'update/complete.mar' saved [68040242/68040242] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.1/mac/en-US/Thunderbird 38.7.1.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.7.1.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.1/mac/en-US/Thunderbird 38.7.1.dmg'] --2016-05-09 17:35:27-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.1/mac/en-US/Thunderbird%2038.7.1.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70073981 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:35:28 GMT ETag: "3715f721af626677858ddae14265ce72" Last-Modified: Thu, 24 Mar 2016 20:49:38 GMT x-amz-replication-status: COMPLETED x-amz-version-id: FV3DRmchsxEfqiRRPBkTl61aDaA3yNve X-Cache: Miss from cloudfront Via: 1.1 0ffb9964022445351e635c66ad0176ff.cloudfront.net (CloudFront) X-Amz-Cf-Id: 9VJtyLPQ-B0kN2ewpmfXoaP_dwtTb9pZwEZN_-0Xg4z5OmeECxnLzg== Length: 70073981 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.7.1.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.57M 41s 3072K ........ ........ ........ ........ ........ ........ 8% 6.32M 24s 6144K ........ ........ ........ ........ ........ ........ 13% 8.69M 18s 9216K ........ ........ ........ ........ ........ ........ 17% 10.8M 14s 12288K ........ ........ ........ ........ ........ ........ 22% 13.8M 11s 15360K ........ ........ ........ ........ ........ ........ 26% 11.9M 9s 18432K ........ ........ ........ ........ ........ ........ 31% 16.5M 8s 21504K ........ ........ ........ ........ ........ ........ 35% 7.86M 7s 24576K ........ ........ ........ ........ ........ ........ 40% 9.09M 6s 27648K ........ ........ ........ ........ ........ ........ 44% 3.29M 6s 30720K ........ ........ ........ ........ ........ ........ 49% 8.35M 6s 33792K ........ ........ ........ ........ ........ ........ 53% 8.99M 5s 36864K ........ ........ ........ ........ ........ ........ 58% 7.63M 5s 39936K ........ ........ ........ ........ ........ ........ 62% 8.11M 4s 43008K ........ ........ ........ ........ ........ ........ 67% 9.28M 3s 46080K ........ ........ ........ ........ ........ ........ 71% 9.79M 3s 49152K ........ ........ ........ ........ ........ ........ 76% 10.9M 2s 52224K ........ ........ ........ ........ ........ ........ 80% 9.69M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 10.9M 1s 58368K ........ ........ ........ ........ ........ ........ 89% 6.66M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 6.56M 1s 64512K ........ ........ ........ ........ ........ ........ 98% 6.86M 0s 67584K ........ ..... 100% 4.23M=9.8s 2016-05-09 17:35:38 (6.84 MB/s) - 'Thunderbird 38.7.1.dmg' saved [70073981/70073981] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/en-US/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/en-US/Thunderbird 45.1.0.dmg'] --2016-05-09 17:35:38-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/en-US/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77388183 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:21:23 GMT ETag: "197798ed151e90f9e4083d352a2f90fd" Last-Modified: Mon, 09 May 2016 20:02:37 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 16SBOwNdyqXT1VKEVLHF.cAONqzxpveX Age: 855 X-Cache: Hit from cloudfront Via: 1.1 30bb04916f91d64c600e15c15000042d.cloudfront.net (CloudFront) X-Amz-Cf-Id: kge1vUd5uRrDDhIXWMcY2hxRSSkDZf2G-HDteoPo_Fpsx9aY9WwBLQ== Length: 77388183 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 52.0M 1s 3072K ........ ........ ........ ........ ........ ........ 8% 70.3M 1s 6144K ........ ........ ........ ........ ........ ........ 12% 33.2M 1s 9216K ........ ........ ........ ........ ........ ........ 16% 76.4M 1s 12288K ........ ........ ........ ........ ........ ........ 20% 76.1M 1s 15360K ........ ........ ........ ........ ........ ........ 24% 78.5M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 72.8M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 77.6M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 77.5M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 79.3M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 81.7M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 76.9M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 79.2M 1s 39936K ........ ........ ........ ........ ........ ........ 56% 64.6M 0s 43008K ........ ........ ........ ........ ........ ........ 60% 56.0M 0s 46080K ........ ........ ........ ........ ........ ........ 65% 39.9M 0s 49152K ........ ........ ........ ........ ........ ........ 69% 39.8M 0s 52224K ........ ........ ........ ........ ........ ........ 73% 39.8M 0s 55296K ........ ........ ........ ........ ........ ........ 77% 40.6M 0s 58368K ........ ........ ........ ........ ........ ........ 81% 41.1M 0s 61440K ........ ........ ........ ........ ........ ........ 85% 38.9M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 33.5M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 29.0M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 30.4M 0s 73728K ........ ........ ........ .... 100% 31.1M=1.5s 2016-05-09 17:35:40 (50.0 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77388183/77388183] installing downloads/Thunderbird 38.7.1.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/en.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/dictionaries/en-US.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/en-US.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/en.lproj/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/en.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/en-US.dic PREPARE ADD Contents/Resources/dictionaries/en-US.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/en.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/dictionaries/en-US.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/en-US.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/en.lproj/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/en.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/en-US.dic EXECUTE ADD Contents/Resources/dictionaries/en-US.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/en.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/dictionaries/en-US.dic FINISH REMOVEFILE Contents/Resources/dictionaries/en-US.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/en.lproj/ non-fatal error removing directory: Contents/Resources/en.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/en.lproj/InfoPlist.strings FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/en-US.dic FINISH ADD Contents/Resources/dictionaries/en-US.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/dictionaries/en-US.aff target/Thunderbird.app/Contents/Resources/dictionaries/en-US.aff 1,4d0 < # This Source Code Form is subject to the terms of the Mozilla Public < # License, v. 2.0. If a copy of the MPL was not distributed with this < # file, You can obtain one at http://mozilla.org/MPL/2.0/. < diff -r source/Thunderbird.app/Contents/Resources/dictionaries/en-US.dic target/Thunderbird.app/Contents/Resources/dictionaries/en-US.dic 1c1 < 57246 --- > 52283 34c34 < ACLU --- > ACLU/M 42c42 < AFAIK/S --- > AFAIK 44c44 < AFC --- > AFC/M 50d49 < AIDSes 54a54 > AMD/M 56c56 < ANZUS --- > ANZUS/M 58c58 < AP --- > AP/M 60c60,61 < API/MS --- > APC > API/SM 74c75,76 < AWACS --- > AVI > AWACS/M 78c80 < Aachen --- > Aachen/M 80,85c82,83 < Aaren/M < Aarika/M < Aaron < Ab/M < Abagael/M < Abagail/M --- > Aaron/M > Ab's 88,91c86 < Abbasid < Abbe/M < Abbey/M < Abbi/M --- > Abbasid/M 93d87 < Abbot/M 96d89 < Abbye/M 102c95 < Abelard --- > Abelard/M 106,107d98 < Abeu/M < Abey/M 110,113c101,102 < Abigael/M < Abigail < Abigale/M < Abilene --- > Abigail/M > Abilene/M 118d106 < Abrahan/M 121,123c109,111 < Abran/M < Absalom < Abuja --- > Abrams/M > Absalom/M > Abuja/M 134c122 < Achernar --- > Achernar/M 141c129 < Actaeon --- > Actaeon/M 143,144c131,132 < Acton < Acts --- > Acton/M > Acts/M 146,147c134 < Acura/MS < Ad/MN --- > Acura/M 153a141 > Adams/M 155c143 < Adana --- > Adana/M 157d144 < Adara/M 160c147 < Addams --- > Addams/M 163d149 < Addia/M 165c151 < Addison --- > Addison/M 175d160 < Adelice/M 177d161 < Adelind/M 179d162 < Adella/M 183c166 < Adenauer --- > Adenauer/M 188d170 < Adiana/M 191c173 < Adirondack/MS --- > Adirondack/SM 195c177 < Adler --- > Adler/M 198d179 < Ado/M 203d183 < Adolpho/M 206,210c186 < Adora/M < Adore/M < Adoree/M < Adorne/M < Adrea/M --- > Adore's 212,213c188,189 < Adria/MX < Adrian --- > Adria/M > Adrian/M 221d196 < Adriena/M 231,233d205 < Aeriel/M < Aeriela/M < Aeriell/M 238a211 > Afghani/M 247c220 < Afrocentrism --- > Afrocentrism/M 250d222 < Agace/M 258,260c230 < Aggi/M < Aggie < Aggy/M --- > Aggie/M 262,265c232,233 < Aglaia < Agna/M < Agnella/M < Agnes --- > Aglaia/M > Agnes/M 267,268d234 < Agnesse/M < Agneta/M 271d236 < Agnola/M 273,275c238,239 < Agra < Agretha/M < Agricola --- > Agra/M > Agricola/M 279d242 < Aguie/M 283,284d245 < Aguistin/M < Aguste/M 289c250 < Ahmadabad --- > Ahmadabad/M 295,296c256 < Aigneis/M < Aiken --- > Aiken/M 298,300d257 < Ailbert/M < Aile/M < Ailee/M 302d258 < Ailene/M 304,307d259 < Aili/SM < Ailina/M < Ailsun/M < Ailyn/M 310,312d261 < Aimil/M < Aindrea/M < Ainslee/M 315c264 < Ainu --- > Ainu/M 317c266,267 < Aisha --- > Aires/M > Aisha/M 320c270 < Akbar --- > Akbar/M 322c272 < Akihito --- > Akihito/M 324c274 < Akita --- > Akita/M 326c276 < Akkad --- > Akkad/M 328d277 < Aksel/M 336,337d284 < Alaine/M < Alair/M 343d289 < Alanah/M 345d290 < Alane/M 347d291 < Alano/M 350,351c294 < Alard/M < Alaric --- > Alaric/M 356,359c299 < Alasteir/M < Alaster/M < Alayne/M < Alba --- > Alba/M 363,364c303 < Albee < Alberik/M --- > Albee/M 366c305 < Albert --- > Albert/M 373c312 < Albigensian --- > Albigensian/M 375c314 < Albion --- > Albion/M 379,381c318,320 < Alcatraz < Alcestis < Alcibiades --- > Alcatraz/M > Alcestis/M > Alcibiades/M 385,388c324,327 < Alcott < Alcuin < Alcyone < Aldan --- > Alcott/M > Alcuin/M > Alcyone/M > Aldan/M 390c329 < Alden --- > Alden/M 397d335 < Aldric/M 402d339 < Aldwin/M 404,407d340 < Alecia/M < Aleda/M < Aleece/M < Aleen/M 410d342 < Alejandrina/M 412d343 < Alejoa/M 420d350 < Aleta/M 428c358 < Alexandra --- > Alexandra/M 433c363 < Alexandro/MS --- > Alexandros 438,439c368 < Alexine/M < Alexio/M --- > Alexis/M 441d369 < Alfi/M 448c376 < Alfred --- > Alfred/M 450,451c378 < Alfredo < Alfy/M --- > Alfredo/M 453c380 < Alger --- > Alger/M 462c389 < Alhambra --- > Alhambra/M 464c391 < Ali/S --- > Ali/SM 466,468d392 < Alibaba < Alic/M < Alica/M 470d393 < Alicea/M 474,475d396 < Alidia/M < Alie/M 477,478d397 < Alika/M < Alikee/M 483d401 < Alisander/M 489d406 < Alisun/M 491d407 < Aliza/M 495c411 < Allahabad --- > Allahabad/M 498,499d413 < Allayne/M < Alleen/M 501c415 < Allegheny/S --- > Allegheny/SM 503c417 < Allen --- > Allen/M 506,507c420 < Allentown < Alley/M --- > Allentown/M 512d424 < Allissa/M 514,515d425 < Allistir/M < Allix/M 517,520d426 < Allsun/M < Allx/M < Ally/SM < Allyce/M 526d431 < Almeda/M 528d432 < Almeta/M 531d434 < Almire/M 536,538d438 < Aloin/M < Aloise/M < Aloisia/M 542d441 < Aloysia/M 550c449 < Alpine --- > Alpine/M 558c457 < Alta --- > Alta/M 561,562c460,461 < Altair < Altamira --- > Altair/M > Altamira/M 569,571c468 < Aluin/M < Aluino/M < Alva --- > Alva/M 576,578d472 < Alvera/M < Alverta/M < Alvie/M 581,582d474 < Alvinia/M < Alvira/M 588d479 < Alyda/M 591,593d481 < Alysa/M < Alyse/M < Alysia/M 600d487 < Amabelle/M 603,605d489 < Amalea/M < Amalee/M < Amaleta/M 608,609d491 < Amalita/M < Amalle/M 611,613d492 < Amandi/M < Amandie/M < Amandy/M 615,616c494 < Amargo/M < Amarillo --- > Amarillo/M 620c498 < Amati --- > Amati/M 623,625c501 < Amber/MY < Amberly/M < Amble/M --- > Amber/M 628d503 < Ambrosi/M 631,632d505 < Ambur/M < Amby/M 636,638d508 < Amelina/M < Ameline/M < Amelita/M 641c511 < Amerasian --- > Amerasian/M 645,647c515,517 < Americanism/SM < Americanization/SM < Americanize/DSG --- > Americanism/MS > Americanization/MS > Americanize/GDS 650c520 < Amerindian/SM --- > Amerindian/MS 654c524 < Amherst --- > Amherst/M 658d527 < Amii/M 661,663d529 < Amitie/M < Amity/M < Ammamaria/M 667c533 < Amos --- > Amos/M 670c536 < Amritsar --- > Amritsar/M 672,673c538,539 < Amtrak < Amundsen --- > Amtrak/M > Amundsen/M 677d542 < Amye/M 679d543 < Anabal/M 682,683d545 < Anabella/M < Anabelle/M 685,686c547,548 < Anacreon < Anaheim --- > Anacreon/M > Anaheim/M 688d549 < Analiese/M 690,691d550 < Anallese/M < Anallise/M 693,696c552,553 < Anasazi < Anastasia < Anastasie/M < Anastassia/M --- > Anasazi/M > Anastasia/M 698d554 < Anatola/M 702,704c558 < Anatollo/M < Anaxagoras < Ancell/M --- > Anaxagoras/M 707,712c561,563 < Andalusian < Andaman < Andean < Andee/M < Andeee/M < Anderea/M --- > Andalusian/M > Andaman/M > Andean/M 715c566 < Anderson --- > Anderson/M 719d569 < Andonis/M 725d574 < Andreana/M 728a578 > Andres/M 730a581 > Andrews/M 733d583 < Andriana/M 735,737c585,586 < Andriette/M < Andris < Andromache --- > Android/M > Andromache/M 739c588 < Andropov --- > Andropov/M 743d591 < Anestassia/M 745,748c593 < Anett/M < Anetta/M < Anette/M < Angara --- > Angara/M 752c597,598 < Angele/M --- > Angele/SM > Angeles/M 755,756c601,602 < Angelica < Angelico --- > Angelica/M > Angelico/M 762d607 < Angelle/M 764c609 < Angelou --- > Angelou/M 767,768c612 < Angil/M < Angkor --- > Angkor/M 770c614 < Anglia --- > Anglia/M 775,778c619,621 < Anglicize/DSG < Anglo < Anglophil < Anglophile --- > Anglicize > Anglo/M > Anglophile/M 783c626 < Angstrom --- > Angstrom/M 786d628 < Angy/M 790,791d631 < Anica/M < Anissa/M 793,795d632 < Anitra/M < Anjanette/M < Anjela/M 798,799c635 < Anna < Annabal/M --- > Anna/M 801,802d636 < Annabela/M < Annabell/M 805,808d638 < Annadiana/M < Annadiane/M < Annalee/M < Annaliese/M 811,812d640 < Annamaria/M < Annamarie/M 815,816c643 < Anne < Annecorinne/M --- > Anne/M 820d646 < Annetta/M 823d648 < Annice/M 825,826d649 < Annissa/M < Annmaria/M 828,830c651 < Annnora/M < Annora/M < Annunciation/MS --- > Annunciation/SM 832c653 < Anouilh --- > Anouilh/M 835,836c656 < Anselm < Anselma/M --- > Anselm/M 842c662 < Antaeus --- > Antaeus/M 847d666 < Anthe/M 849,853c668,671 < Anthia/M < Anthiathia/M < Anthony < Antichrist/MS < Antietam --- > Anthony/M > Anthropocene > Antichrist/SM > Antietam/M 859c677 < Antioch --- > Antioch/M 864,865c682,683 < Antoinette < Anton/MS --- > Antoinette/M > Anton/M 868d685 < Antonetta/M 876c693 < Antoninus --- > Antoninus/M 878c695 < Antonius --- > Antonius/M 883c700 < Any/M --- > Any's 885c702 < Anzac --- > Anzac/M 888c705,706 < Apennines --- > Apatosaurus > Apennines/M 890c708 < Apia --- > Apia/M 893c711 < Apollinaire --- > Apollinaire/M 895c713 < Apollonian --- > Apollonian/M 897c715,716 < Appalachian/S --- > Appalachian/SM > Appalachians/M 900,903c719,721 < Appleseed < Appleton < Appolonia/M < Appomattox --- > Appleseed/M > Appleton/M > Appomattox/M 906,907c724 < Aprilette/M < Apuleius --- > Apuleius/M 908a726 > Aquarian 910c728 < Aquila --- > Aquila/M 917,919d734 < Arabel/M < Arabela/M < Arabele/M 921d735 < Arabelle/M 927c741 < Araby --- > Araby/M 929a744 > Aragon 932d746 < Araldo/M 936c750 < Arapahoe/SM --- > Arapahoes 938c752 < Araucanian --- > Araucanian/M 944,945d757 < Arch/R < Archaimbaud/M 947c759 < Archean --- > Archean/M 949,950d760 < Archibaldo/M < Archibold/M 952c762 < Archimedes --- > Archimedes/M 956c766 < Arda/MH --- > Arda/M 958,968c768 < Ardath/M < Ardebil < Ardeen/M < Ardelia/M < Ardelis/M < Ardella/M < Ardelle/M < Arden < Ardene/M < Ardenia/M < Ardine/M --- > Arden/M 970,978c770,771 < Ardisj/M < Ardith/M < Ardra/M < Ardyce/M < Ardys < Ardyth/M < Arel/M < Arequipa < Ares --- > Arequipa/M > Ares/M 981c774 < Argentine --- > Argentine/M 984c777 < Argo/S --- > Argo/SM 986a780 > Argos/M 993d786 < Aridatha/M 995,997c788 < Ariel < Ariela/M < Ariella/M --- > Ariel/M 1001,1002c792 < Ario/M < Ariosto --- > Ariosto/M 1004c794 < Aristides --- > Aristides/M 1013,1014c803,804 < Arjuna < Ark --- > Arjuna/M > Ark/M 1017,1022c807,808 < Arkhangelsk < Arkwright < Arlan/M < Arlana/M < Arlee/M < Arleen/M --- > Arkhangelsk/M > Arkwright/M 1024d809 < Arlena/M 1026d810 < Arleta/M 1029d812 < Arleyne/M 1031d813 < Arliene/M 1033,1034d814 < Arlina/M < Arlinda/M 1036,1037c816 < Arlington < Arluene/M --- > Arlington/M 1039,1040d817 < Arlyn/M < Arlyne/M 1057,1058c834 < Arney/M < Arnhem --- > Arnhem/M 1062c838 < Arnold --- > Arnold/M 1064d839 < Arnuad/M 1066d840 < Arny/M 1068,1069c842 < Arrhenius < Arri/M --- > Arrhenius/M 1072d844 < Artair/M 1078d849 < Arther/M 1080c851 < Arthurian --- > Arthurian/M 1085c856 < Arty/M --- > Arty's 1088d858 < Arvie/M 1090d859 < Arvy/M 1092c861 < Aryn/M --- > As/M 1098,1101c867,868 < Asgard < Ash/MRY < Ashanti < Ashbey/M --- > Asgard/M > Ashanti/M 1103,1105c870,871 < Ashcroft < Ashe/Y < Ashely/M --- > Ashcroft/M > Ashe/RM 1107,1108d872 < Ashia/M < Ashien/M 1110,1111c874 < Ashil/M < Ashkenazim --- > Ashkenazim/M 1113,1114d875 < Ashla/M < Ashlan/M 1117d877 < Ashlen/M 1119,1122d878 < Ashli/M < Ashlie/M < Ashlin/M < Ashly/M 1125c881 < Ashurbanipal --- > Ashurbanipal/M 1126a883 > Asiago 1129,1131c886,888 < Asimov < Asmara < Asoka --- > Asimov/M > Asmara/M > Asoka/M 1133a891 > Asperger/M 1135c893 < Asquith --- > Asquith/M 1140c898 < Assisi --- > Assisi/M 1143c901 < Astaire --- > Astaire/M 1146,1148c904,906 < Aston < Astor < Astoria --- > Aston/M > Astor/M > Astoria/M 1150c908 < Astrakhan --- > Astrakhan/M 1152,1154c910,911 < Astrix/M < AstroTurf < Asturias --- > AstroTurf/M > Asturias/M 1155a913 > Asunción/M 1159,1160c917,918 < Atahualpa < Atalanta --- > Atahualpa/M > Atalanta/M 1162a921 > Atatürk/M 1164d922 < Athabascan/MS 1166c924,925 < Athabaskan/MS --- > Athabaskan/SM > Athanasius 1171c930 < Athlon/MS --- > Athlon/M 1173c932 < Atkinson --- > Atkinson/M 1175c934 < Atlante/SM --- > Atlantes 1179,1180c938,939 < Atman < Atreus --- > Atman/M > Atreus/M 1186c945 < Attlee --- > Attlee/M 1188c947 < Attucks --- > Attucks/M 1192d950 < Auberon/M 1194,1199c952 < Auberta/M < Aubine/M < Aubree/M < Aubrette/M < Aubrey < Aubrie/M --- > Aubrey/M 1201c954 < Auckland --- > Auckland/M 1209,1213c962 < Audrie/M < Audry/M < Audrye/M < Audubon < Audy/M --- > Audubon/M 1215c964 < Augean --- > Augean/M 1217c966 < Augsburg --- > Augsburg/M 1220c969 < Augustan --- > Augustan/M 1223d971 < Augustina/M 1228,1231c976 < Augy/M < Aundrea/M < Aura/M < Aurangzeb --- > Aurangzeb/M 1234d978 < Aurelea/M 1238c982 < Aurelius --- > Aurelius/M 1240,1241d983 < Auria/M < Aurie/M 1243,1245d984 < Aurilia/M < Aurlie/M < Auroora/M 1248,1249c987 < Aurthur/M < Auschwitz --- > Auschwitz/M 1251c989 < Austen --- > Austen/M 1254,1255d991 < Austina/M < Austine/M 1259,1260c995,996 < Australian/MS < Australoid --- > Australian/SM > Australoid/M 1268,1269c1004,1005 < Avalon < Ave --- > Avalon/M > Ave/M 1271c1007 < Aventine --- > Aventine/M 1275,1276c1011,1012 < Avernus < Averroes --- > Avernus/M > Averroes/M 1278d1013 < Averyl/M 1280,1282c1015 < Avicenna < Avictor/M < Avie/M --- > Avicenna/M 1284c1017 < Avignon --- > Avignon/M 1287c1020 < Avis --- > Avis/M 1289,1291c1022,1023 < Avivah/M < Avogadro < Avon --- > Avogadro/M > Avon/M 1294,1296d1025 < Avrit/M < Avrom/M < Ax/M 1300c1029 < Axum --- > Axum/M 1302,1303c1031 < Ayers < Aylmar/M --- > Ayers/M 1305c1033 < Aymara --- > Aymara/M 1309c1037 < Ayurveda --- > Ayurveda/M 1313c1041 < Azazel --- > Azazel/M 1317c1045 < Azov --- > Azov/M 1321c1049 < B/MNT --- > B/MNRT 1325,1326c1053,1054 < BBB < BBC --- > BBB/M > BBC/M 1330a1059 > BFF 1333c1062 < BITNET/S --- > BITNET 1338c1067 < BP --- > BP/M 1343c1072 < BSD/S --- > BSD/SM 1350c1079 < Baathist --- > Baathist/M 1352,1353d1080 < Babar/M < Babara/M 1355,1356c1082 < Babbage < Babbette/M --- > Babbage/M 1358c1084 < Babbitt --- > Babbitt/M 1361,1362d1086 < Babita/M < Babur 1367c1091 < Bacardi --- > Bacardi/M 1374,1375c1098,1099 < Bactria < Baden --- > Bactria/M > Baden/M 1378c1102 < Baez --- > Baez/M 1380c1104 < Baggies --- > Baggies/M 1382,1384c1106,1108 < Baguio < Baha'i < Baha'ullah --- > Baguio/M > Baha'i/M > Baha'ullah/M 1389c1113 < Bahia --- > Bahia/M 1391,1392c1115 < Baikal < Bail/M --- > Baikal/M 1397c1120 < Baird --- > Baird/M 1399,1400c1122,1123 < Baker < Bakersfield --- > Baker/M > Bakersfield/M 1402,1406c1125,1129 < Bakunin < Balanchine < Balaton < Balboa < Bald/MR --- > Bakunin/M > Balanchine/M > Balaton/M > Balboa/M > Bald's 1408d1130 < Balduin/M 1410d1131 < Bale/M 1412c1133 < Balfour --- > Balfour/M 1415,1417c1136,1139 < Balkan/S < Balkhash < Ball --- > Balkan/MS > Balkans/M > Balkhash/M > Ball/M 1419c1141 < Balthazar --- > Balthazar/M 1422c1144 < Baluchistan --- > Baluchistan/M 1426,1428d1147 < Bambie/M < Bamby/M < Ban/M 1433c1152 < Bangalore --- > Bangalore/M 1436,1437c1155,1156 < Bangladeshi/MS < Bangor --- > Bangladeshi/SM > Bangor/M 1440,1442c1159,1160 < Banjul < Bank/SM < Banky/M --- > Banjul/M > Banks/M 1444,1445c1162,1163 < Bannister < Banting --- > Bannister/M > Banting/M 1450,1451c1168 < Bar/H < Barabbas --- > Barabbas/M 1453,1455d1169 < Barb/MR < Barbabas/M < Barbabra/M 1459d1172 < Barbaraanne/M 1463c1176 < Barbe/M --- > Barbe/MR 1465c1178 < Barber --- > Barber/M 1468,1469c1181 < Barbi/M < Barbie --- > Barbie/M 1473d1184 < Barby/M 1475,1476c1186,1187 < Barclay/M < Bard/M --- > Barclay/SM > Barclays/M 1484,1486c1195 < Barn/M < Barnabas < Barnabe/M --- > Barnabas/M 1488,1491c1197,1199 < Barnard < Barnaul < Barnebas/M < Barnes --- > Barnard/M > Barnaul/M > Barnes/M 1494,1500c1202,1204 < Barnie/M < Barnum < Barny/M < Baroda < Baron/M < Baroque < Barquisimeto --- > Barnum/M > Baroda/M > Barquisimeto/M 1502c1206 < Barranquilla --- > Barranquilla/M 1509,1511c1213,1215 < Barry < Barrymore < Bart --- > Barry/M > Barrymore/M > Bart/M 1513c1217 < Barth/S --- > Barth/MS 1516,1520c1220 < Bartholemy/M < Bartholomeo/M < Bartholomeus/M < Bartholomew < Bartie/M --- > Bartholomew/M 1522,1524c1222,1223 < Bartlett < Bartok < Bartolemo/M --- > Bartlett/M > Bartok/M 1526c1225 < Barton --- > Barton/M 1529c1228,1229 < Baruch --- > Bartók/M > Baruch/M 1531,1533c1231 < Baryram/M < Baryshnikov < Base/M --- > Baryshnikov/M 1538,1539c1236,1237 < Basie < Basil --- > Basie/M > Basil/M 1544c1242 < Basra --- > Basra/M 1551d1248 < Bat/M 1553,1556c1250,1252 < Bates < Batholomew/M < Bathsheba < Batista --- > Bates/M > Bathsheba/M > Batista/M 1558d1253 < Batsheva/M 1564c1259,1260 < Bauer --- > Baudrillard/M > Bauer/M 1566c1262 < Baum --- > Baum/M 1568c1264 < Bavarian --- > Bavarian/M 1570d1265 < Baxie/M 1572,1573d1266 < Baxy/M < Bay/MR 1577,1578c1270,1271 < Bayes < Bayesian --- > Bayes/M > Bayesian/M 1582c1275 < Bayreuth --- > Bayreuth/M 1587c1280 < Beadle --- > Beadle/M 1589d1281 < Bealle/M 1591d1282 < Bear/M 1594c1285 < Beardsley --- > Beardsley/M 1596d1286 < Bearnard/M 1601d1290 < Beatrisa/M 1603a1293 > Beatty/M 1605c1295 < Beaufort --- > Beaufort/M 1607,1608c1297,1298 < Beaumarchais < Beaumont --- > Beaumarchais/M > Beaumont/M 1610c1300 < Beauvoir --- > Beauvoir/M 1620d1309 < Becki/M 1623,1624c1312,1313 < Becquerel < Bede --- > Becquerel/M > Bede/M 1626d1314 < Bee/M 1628c1316 < Beecher --- > Beecher/M 1631c1319 < Beerbohm --- > Beerbohm/M 1634,1637c1322,1325 < Begin < Behan < Behring < Beiderbecke --- > Begin/M > Behan/M > Behring/M > Beiderbecke/M 1639d1326 < Beilul/M 1641d1327 < Beitris/M 1643d1328 < Bekki/M 1654,1655d1338 < Belia/M < Belicia/M 1657d1339 < Belita/M 1663d1344 < Bellanca/M 1665,1666c1346 < Belle/M < Belleek --- > Belleek/M 1668,1670c1348,1349 < Bellina/M < Bellini < Bellow --- > Bellini/M > Bellow/M 1672,1673c1351 < Belmopan < Belorussia/M --- > Belmopan/M 1676c1354 < Beltane --- > Beltane/M 1680d1357 < Belvia/M 1683c1360 < Benares --- > Benares/M 1686,1688d1362 < Bendick/M < Bendicty/M < Bendite/M 1695c1369 < Benedictine/SM --- > Benedictine/MS 1698d1371 < Benedikta/M 1700,1701c1373 < Benet < Benetta/M --- > Benet/M 1707d1378 < Beniamino/M 1712,1713c1383 < Benjamen/M < Benjamin --- > Benjamin/M 1718,1719c1388 < Bennett < Benni/M --- > Bennett/M 1723d1391 < Benoite/M 1725,1731c1393,1396 < Bent/M < Bentham < Bentlee/M < Bentley < Benton < Benyamin/M < Benz --- > Bentham/M > Bentley/M > Benton/M > Benz/M 1733c1398 < Beowulf --- > Beowulf/M 1737d1401 < Beret 1739c1403 < Berg/NR --- > Berg/MNR 1742,1748c1406,1411 < Bergerac < Berget/M < Bergman < Bergson < Beria < Bering < Berk/MY --- > Bergerac/M > Bergman/M > Bergson/M > Beria/M > Bering/M > Berk/M 1751d1413 < Berkie/M 1753d1414 < Berkly/M 1755c1416 < Berky/M --- > Berkshires/M 1759c1420 < Berlioz --- > Berlioz/M 1765,1768c1426 < Berna/M < Bernadene/M < Bernadette < Bernadina/M --- > Bernadette/M 1771,1772c1429 < Bernard < Bernardina/M --- > Bernard/M 1775d1431 < Bernarr/M 1778d1433 < Bernelle/M 1780,1782d1434 < Bernete/M < Bernetta/M < Bernette/M 1784c1436 < Bernhardt --- > Bernhardt/M 1788,1792c1440,1442 < Bernini < Bernita/M < Bernoulli < Bernstein < Berny/M --- > Bernini/M > Bernoulli/M > Bernstein/M 1795,1796c1445 < Berrie/M < Berry --- > Berry/M 1799d1447 < Berte/M 1806,1807d1453 < Bertina/M < Bertine/M 1811,1812d1456 < Bertrando/M < Berty/M 1814,1815c1458 < Beryle/M < Berzelius --- > Berzelius/M 1817,1818c1460,1461 < Bess < Bessel --- > Bess/M > Bessel/M 1820c1463 < Bessie --- > Bessie/M 1825,1832c1468,1472 < Bethanne/M < Bethany < Bethe < Bethena/M < Bethesda < Bethina/M < Bethlehem < Bethune --- > Bethany/M > Bethe/M > Bethesda/M > Bethlehem/M > Bethune/M 1837,1838d1476 < Betteann/M < Betteanne/M 1842d1479 < Bettine/M 1845c1482 < Beulah --- > Beulah/M 1847,1848c1484 < Beverie/M < Beverlee/M --- > Beveridge 1850d1485 < Beverlie/M 1853,1856c1488,1491 < Bevon/M < Bevvy/M < Beyer < Bhopal --- > Bevvy's > Beyer/M > Bharat/M > Bhopal/M 1861c1496 < Bialystok --- > Bialystok/M 1863d1497 < Bianka/M 1867d1500 < Bibbie/M 1869d1501 < Bibbye/M 1872c1504 < Biblical --- > Biblical/M 1874,1876c1506 < Biddie/M < Biddle < Biddy/M --- > Biddle/M 1878,1879c1508 < Bidget/M < Bierce --- > Bierce/M 1884c1513 < Bilbao --- > Bilbao/M 1888d1516 < Billi/M 1892d1519 < Billye/M 1896d1522 < Binni/M 1898d1523 < Binny/M 1900,1902c1525 < Birch/M < Bird < Birdie/M --- > Bird/M 1907c1530 < Birkenstock --- > Birkenstock/M 1911c1534 < Biscay --- > Biscay/M 1913c1536 < Bishkek --- > Bishkek/M 1918a1542 > BitTorrent/M 1920c1544 < Bizet --- > Bizet/M 1929c1553 < Blackfeet --- > Blackfeet/M 1933,1934c1557,1558 < Blackstone < Blackwell --- > Blackstone/M > Blackwell/M 1937,1939c1561 < Blaire/M < Blake < Blakelee/M --- > Blake/M 1942,1943c1564 < Blanch/M < Blancha/M --- > Blanch's 1950,1951c1571 < Blavatsky < Blayne/M --- > Blavatsky/M 1956,1962c1576,1577 < Blinni/M < Blinnie/M < Blinny/M < Bliss < Blisse/M < Blithe/M < Bloch --- > Blithe's > Bloch/M 1965d1579 < Bloglines/M 1967,1968d1580 < Blondell/M < Blondelle/M 1970d1581 < Blondy/M 1973c1584,1585 < Bloomfield --- > Bloomer/M > Bloomfield/M 1975c1587,1588 < Bloomsbury --- > Bloomsbury/M > Blu 1985,1987d1597 < Bobbe/M < Bobbee/M < Bobbette/M 1992,1997c1602 < Bobbye/M < Bobette/M < Bobina/M < Bobine/M < Bobinette/M < Boccaccio --- > Boccaccio/M 1999a1605 > Bodleian 2002,2004c1608,1610 < Boeotian < Boer/SM < Boethius --- > Boeotian/M > Boer/M > Boethius/M 2006d1611 < Bogey/M 2008c1613,1614 < Bohemia --- > Bogotá/M > Bohemia/M 2010,2011c1616 < Bohr < Boigie/M --- > Bohr/M 2021,2022c1626,1627 < Bolshevism < Bolshevist --- > Bolshevism/M > Bolshevist/M 2024,2025c1629,1630 < Bolton < Boltzmann --- > Bolton/M > Boltzmann/M 2027,2028c1632,1633 < Bonaparte < Bonaventure --- > Bonaparte/M > Bonaventure/M 2030,2031d1634 < Bondie/M < Bondon/M 2033d1635 < Bone/M 2035c1637 < Boniface --- > Boniface/M 2038d1639 < Bonnee/M 2041,2042d1641 < Bonni/M < Bonnibelle/M 2044d1642 < Bonny 2049c1647 < Boolean --- > Boolean/M 2051,2054d1648 < Boonie/M < Boony/M < Boot/M < Boote/MS 2056c1650 < Booth --- > Booth/M 2061d1654 < Bordie/M 2063d1655 < Bordy/M 2066,2069c1658,1661 < Borges < Borgia < Borglum < Boris --- > Borges/M > Borgia/M > Borglum/M > Boris/M 2072c1664 < Born --- > Born/M 2075c1667 < Borodin --- > Borodin/M 2077,2078c1669,1670 < Bosch < Bose --- > Bosch/M > Bose/M 2083,2084c1675,1677 < Bostonian < Boswell --- > Bostonian/M > Boswell/M > Botox 2086,2088c1679,1680 < Botticelli < Boudicca < Boulder --- > Botticelli/M > Boulder/M 2093c1685 < Bournemouth --- > Bournemouth/M 2098c1690 < Bowers --- > Bowers/M 2100c1692 < Bowie --- > Bowie/M 2102d1693 < Boy/MR 2104,2106c1695 < Boycey/M < Boycie/M < Boyd --- > Boyd/M 2108c1697,1698 < Boyle --- > Boyle/M > Boötes/M 2110,2112c1700,1701 < Brad/MY < Bradan/M < Bradbury --- > Brad/MNY > Bradbury/M 2114d1702 < Brade/M 2116,2117c1704,1705 < Bradford < Bradley --- > Bradford/M > Bradley/M 2119d1706 < Bradney/M 2122c1709 < Brady --- > Brady/M 2124c1711 < Brahe --- > Brahe/M 2128d1714 < Brahmanee 2132d1717 < Brahmin/MS 2139d1723 < Brana/M 2141,2145c1725,1726 < Brand/MNR < Brandais/M < Brande/M < Brandea/M < Brandeis --- > Brande/MR > Brandeis/M 2147c1728 < Brandenburg --- > Brandenburg/M 2150d1730 < Brandice/M 2152,2153c1732 < Brandise/M < Brando --- > Brando/M 2155,2156c1734 < Brandt < Brandtr/M --- > Brandt/M 2158d1735 < Brandyn/M 2162c1739 < Braque --- > Braque/M 2164c1741 < Bratislava --- > Bratislava/M 2172,2173d1748 < Breanne/M < Brear/M 2175c1750 < Brecht --- > Brecht/M 2178,2179c1753 < Breena/M < Bremen --- > Bremen/M 2181d1754 < Brena/M 2185,2186d1757 < Brendin/M < Brendis/M 2188d1758 < Brenn/MNR 2191d1760 < Brennen/M 2194a1764 > Brest/M 2198,2199d1767 < Breughel < Brew/MR 2201,2203c1769,1770 < Brewster < Brezhnev < Bria/M --- > Brewster/M > Brezhnev/M 2208d1774 < Briano/M 2212d1777 < Bride/M 2215c1780 < Bridges --- > Bridges/M 2217c1782 < Bridgetown --- > Bridgetown/M 2220c1785 < Bridgman --- > Bridgman/M 2222c1787 < Brie/RSM --- > Brie/SM 2224,2227c1789 < Brier/M < Brietta/M < Brig < Brigadoon --- > Brigadoon/M 2228a1791 > Briggs/M 2230c1793 < Bright --- > Bright/M 2237,2239c1800 < Brillo < Brina/M < Briney/M --- > Brillo/M 2241,2243c1802 < Brinn/M < Brinna/M < Briny/M --- > Briny's 2250,2251c1809,1810 < Britannia < Britannic --- > Britannia/M > Britannic/M 2257d1815 < Britni/M 2262,2263d1819 < Brittaney/M < Brittani/M 2265,2267c1821 < Britte/M < Britteny/M < Brittne/M --- > Britten/M 2269,2272c1823 < Brittni/M < Brnaba/M < Brnaby/M < Brno --- > Brno/M 2275c1826 < Brobdingnagian --- > Brobdingnagian/M 2277,2278d1827 < Brockie/M < Brocky/M 2280,2282d1828 < Broddie/M < Broddy/M < Broderic/M 2286d1831 < Brok/M 2289,2290d1833 < Bronnie/M < Bronny/M 2292c1835,1836 < Bronte --- > Bronte/M > Brontosaurus 2294,2295c1838 < Brook/MS < Brooke --- > Brooke/MS 2296a1840 > Brooks/M 2299,2300c1843,1844 < Brown/G < Browne --- > Brown/MG > Browne/M 2303,2305c1847,1850 < Brownshirt < Brownsville < Brubeck --- > Browning/M > Brownshirt/M > Brownsville/M > Brubeck/M 2307,2308c1852 < Brucie/M < Bruckner --- > Bruckner/M 2310,2311d1853 < Brueghel < Bruis/M 2315,2316c1857 < Brunelleschi < Brunhilda/M --- > Brunelleschi/M 2318c1859 < Bruno --- > Bruno/M 2323,2326c1864,1865 < Bryan < Bryana/M < Bryant < Bryanty/M --- > Bryan/M > Bryant/M 2329d1867 < Bryna/M 2331,2332d1868 < Brynna/M < Brynne/M 2337c1873 < Buber --- > Buber/M 2340c1876 < Buchenwald --- > Buchenwald/M 2342,2344c1878,1879 < Buck < Buckie/M < Buckingham --- > Buck/M > Buckingham/M 2354d1888 < Buddie/M 2363d1896 < Buiron/M 2365,2370c1898,1903 < Bukhara < Bukharin < Bulawayo < Bulfinch < Bulganin < Bulgar --- > Bukhara/M > Bukharin/M > Bulawayo/M > Bulfinch/M > Bulganin/M > Bulgar/M 2378c1911 < Bunche --- > Bunche/M 2380,2381c1913,1914 < Bundestag < Bunin --- > Bundestag/M > Bunin/M 2383,2386c1916 < Bunni/M < Bunnie/M < Bunny/M < Bunsen --- > Bunsen/M 2389c1919 < Burbank --- > Burbank/M 2392d1921 < Burg/MR 2394c1923 < Burgess --- > Burgess/M 2396c1925 < Burgundian --- > Burgundian/M 2399c1928 < Burke --- > Burke/M 2400a1930 > Burks/M 2402d1931 < Burlie/M 2408,2411c1937,1940 < Burnett < Burns < Burnside < Burr --- > Burnett/M > Burns/M > Burnside/M > Burr/M 2413,2414c1942,1943 < Burroughs < Bursa --- > Burroughs/M > Bursa/M 2416d1944 < Burtie/M 2418d1945 < Burty/M 2423c1950 < Bushido --- > Bushido/M 2425,2426c1952 < Butch/M < Butler --- > Butler/M 2428c1954,1955 < Buxtehude --- > Buxtehude/M > Buñuel/M 2430d1956 < Byelorussia/M 2433,2436c1959 < Byran/M < Byrann/M < Byrd < Byrle/M --- > Byrd/M 2438,2439c1961,1962 < Byron < Byronic --- > Byron/M > Byronic/M 2442c1965 < C/SMDY --- > C/SMD 2452c1975 < CBS --- > CBS/M 2458c1981 < CEO/MS --- > CEO/SM 2460c1983 < CFC/MS --- > CFC/SM 2461a1985 > CGI 2464c1988 < CNN --- > CNN/M 2479a2004 > CVS/M 2483,2485c2008,2009 < Cabinet < Cabot < Cabral --- > Cabot/M > Cabral/M 2487,2489c2011 < Cabrini < Cacilia/M < Cacilie/M --- > Cabrini/M 2491d2012 < Caddric/M 2493c2014 < Cadillac --- > Cadillac/M 2496c2017 < Caerphilly --- > Caerphilly/M 2498,2499c2019 < Caesarean < Cage --- > Cage/M 2502,2503c2022 < Cahra/M < Caiaphas --- > Caiaphas/M 2506d2024 < Cairistiona/M 2509,2510d2026 < Caitrin/M < Cajan 2512,2513c2028,2029 < Cal/Y < Calais --- > Cal/MY > Calais/M 2515c2031 < Calder --- > Calder/M 2517c2033 < Caldwell --- > Caldwell/M 2520c2036 < Caledonia --- > Caledonia/M 2522,2525c2038,2040 < Calhoun < Cali < Caliban < Calida/M --- > Calhoun/M > Cali/M > Caliban/M 2528,2531c2043,2045 < Californian/MS < Caligula < Calla/MS < Callaghan --- > Californian/SM > Caligula/M > Callaghan/M 2533,2534c2047,2048 < Callao < Callean/M --- > Callao/M > Callas/M 2537d2050 < Callida/M 2543d2055 < Calv/M 2545c2057 < Calvert --- > Calvert/M 2550,2551d2061 < Calypso < Cam 2553d2062 < Camala/M 2561,2563c2070 < Camella/M < Camellia/M < Camelopardalis --- > Camelopardalis/M 2568,2569c2075 < Cameroonian/SM < Camey/M --- > Cameroonian/MS 2572d2077 < Camile/M 2576d2080 < Cammi/M 2581,2583c2085,2087 < Campbell < Campinas < Campos --- > Campbell/M > Campinas/M > Campos/M 2585,2586c2089,2090 < Camus < Can --- > Camus/M > Can/M 2593c2097 < Canaletto --- > Canaletto/M 2595c2099 < Canaveral --- > Canaveral/M 2600c2104 < Candi/MS --- > Candi/M 2604d2107 < Candie/M 2610c2113 < Canopus --- > Canopus/M 2612c2115 < Canterbury --- > Canterbury/M 2618,2619c2121,2122 < Canute < Capablanca --- > Canute/M > Capablanca/M 2622,2623c2125,2126 < Capet < Capetian --- > Capet/M > Capetian/M 2628,2630c2131,2133 < Capitoline < Capone < Capote --- > Capitoline/M > Capone/M > Capote/M 2633d2135 < Caprice/M 2636c2138 < Capuchin --- > Capuchin/M 2638d2139 < Car/MNY 2640c2141 < Caracalla --- > Caracalla/M 2642,2643c2143 < Caralie/M < Caravaggio --- > Caravaggio/M 2646,2647c2146 < Carborundum < Carce/M --- > Carborundum/M 2652d2150 < Care/M 2655,2659c2153 < Carena/M < Caresa/M < Caressa/M < Caresse/M < Carey --- > Carey/M 2664,2666d2157 < Carie/M < Caril/M < Carilyn/M 2668c2159 < Carina --- > Carina/M 2670d2160 < Cariotta/M 2673d2162 < Caritta/M 2676,2677d2164 < Carlee/M < Carleen/M 2684,2685d2170 < Carlina/M < Carline/M 2688d2172 < Carlita/M 2689a2174 > Carlos/M 2692c2177 < Carlsbad --- > Carlsbad/M 2694c2179 < Carlton --- > Carlton/M 2696,2701c2181 < Carlye/M < Carlyle < Carlyn/M < Carlynn/M < Carlynne/M < Carma/M --- > Carlyle/M 2704,2705d2183 < Carmelia/M < Carmelina/M 2708d2185 < Carmelle/M 2711d2187 < Carmencita/M 2715,2717c2191 < Carmita/M < Carmon/M < Carnap --- > Carnap/M 2721,2722c2195 < Carnot < Carny/M --- > Carnot/M 2727d2199 < Carolann/M 2729,2733c2201,2203 < Carolee/M < Carolin/M < Carolina < Caroline < Carolingian --- > Carolina/M > Caroline/M > Carolingian/M 2735d2204 < Caroljean/M 2739d2207 < Carolynn/M 2741,2742c2209,2211 < Carpathian/MS < Carpenter --- > Carpathian/SM > Carpathians/M > Carpenter/M 2745,2747c2214 < Carree/M < Carri/MR < Carrie/M --- > Carrie/RM 2750d2216 < Carrissa/M 2753,2755c2219 < Carry/M < Carson < Cart/MR --- > Carson/M 2757c2221 < Cartesian --- > Cartesian/M 2760,2764c2224,2228 < Cartier < Cartwright < Caruso < Carver < Cary --- > Cartier/M > Cartwright/M > Caruso/M > Carver/M > Cary/M 2768c2232 < Casals --- > Casals/M 2775c2239 < Cash --- > Cash/M 2777d2240 < Casie/M 2779c2242 < Caspar --- > Caspar/M 2781c2244 < Caspian --- > Caspian/M 2784,2788c2247 < Cassandre/M < Cassandry/M < Cassatt < Cassaundra/M < Cassey/M --- > Cassatt/M 2789a2249 > Cassidy/M 2794d2253 < Cassondra/M 2797a2257 > Castilian 2799c2259 < Castlereagh --- > Castlereagh/M 2802c2262 < Castro --- > Castro/M 2811d2270 < Catha/M 2815,2818c2274 < Cathe/MR < Cathee/M < Catherin/M < Catherina/M --- > Cather/M 2820d2275 < Cathi/M 2823d2277 < Cathlene/M 2825,2827c2279 < Catholicism/SM < Cathrin/M < Cathrine/M --- > Catholicism/MS 2830d2281 < Cathyleen/M 2833,2836c2284 < Catiline < Catina/M < Catlaina/M < Catlee/M --- > Catiline/M 2838c2286 < Cato --- > Cato/M 2843,2845c2291,2292 < Catt < Catullus < Caty/M --- > Catt/M > Catullus/M 2849,2852c2296,2299 < Cauchy < Cavendish < Cavour < Caxton --- > Cauchy/M > Cavendish/M > Cavour/M > Caxton/M 2854,2855c2301 < Cayenne < Cayla/M --- > Cayenne/M 2860d2305 < Cazzie/M 2862d2306 < Cchaddie/M 2870c2314 < Cecil --- > Cecil/M 2872,2873c2316 < Ceciley/M < Cecilia --- > Cecilia/M 2875,2876d2317 < Cecilius/M < Cecilla/M 2883,2884d2323 < Celene/M < Celesta/M 2889,2890d2327 < Celestyn/M < Celestyna/M 2894d2330 < Celinda/M 2896,2898d2331 < Celinka/M < Celisse/M < Celka/M 2900,2902c2333,2334 < Cellini < Cello/M < Celsius --- > Cellini/M > Celsius/M 2910c2342 < Cepheid --- > Cepheid/M 2913c2345 < Cerenkov --- > Cerenkov/M 2919,2921c2351 < Cesarean < Cesarian < Cesaro/M --- > Cesarean/M 2923,2924c2353 < Cesya/M < Cetus --- > Cetus/M 2927c2356 < Cezanne --- > Cezanne/M 2929c2358 < Ch'in --- > Ch'in/M 2933,2935d2361 < Chadd/M < Chaddie/M < Chaddy/M 2937,2938c2363,2364 < Chadwick < Chagall --- > Chadwick/M > Chagall/M 2943c2369 < Chaldean --- > Chaldean/M 2946,2949c2372,2375 < Chamberlain < Chambers < Champlain < Champollion --- > Chamberlain/M > Chambers/M > Champlain/M > Champollion/M 2955,2957c2381,2382 < Chandal/M < Chandigarh < Chandler --- > Chandigarh/M > Chandler/M 2960c2385 < Chandragupta --- > Chandragupta/M 2963c2388 < Chanel --- > Chanel/M 2966,2967c2391,2392 < Changchun < Changsha --- > Changchun/M > Changsha/M 2970,2975c2395,2398 < Chantalle/M < Chantilly < Chanukah/M < Chanukahs < Chaplin < Chapman --- > Chantilly/M > Chaplin/M > Chaplinesque > Chapman/M 2981,2983d2403 < Charil/M < Charin/M < Chariot/M 2985d2404 < Charissa/M 2987d2405 < Charita/M 2989,2991d2406 < Charla/M < Charlean/M < Charleen/M 2993d2407 < Charlena/M 2997,2999c2411,2412 < Charley < Charlie < Charline/M --- > Charley/M > Charlie/M 3005d2417 < Charmain/M 3007d2418 < Charmane/M 3010,3012d2420 < Charmine/M < Charmion/M < Charo/M 3016c2424 < Chartres --- > Chartres/M 3018d2425 < Charyl/M 3020c2427 < Chase --- > Chase/M 3022d2428 < Chastity/M 3029c2435 < Chatterton --- > Chatterton/M 3031d2436 < Chaunce/M 3033c2438 < Chautauqua --- > Chautauqua/M 3037c2442 < Chechen --- > Chechen/M 3039c2444 < Cheddar --- > Cheddar/M 3043c2448 < Cheever --- > Cheever/M 3046,3050c2451 < Chelsae/M < Chelsea < Chelsey/M < Chelsie/M < Chelsy/M --- > Chelsea/M 3054c2455 < Chengdu --- > Chengdu/M 3056c2457 < Cheops --- > Cheops/M 3058d2458 < Cherey/M 3060,3062d2459 < Cherianne/M < Cherice/M < Cherida/M 3064,3066d2460 < Cherilyn/M < Cherilynn/M < Cherin/M 3068,3069c2462 < Cherish/M < Cherlyn/M --- > Cherish's 3074,3075d2466 < Cherri/M < Cherrita/M 3077,3078d2467 < Chery/M < Cherye/M 3080,3082c2469,2470 < Chesapeake < Cheshire < Cheslie/M --- > Chesapeake/M > Cheshire/M 3084,3086c2472,2473 < Chesterfield < Chesterton < Cheston/M --- > Chesterfield/M > Chesterton/M 3089c2476 < Chevalier --- > Chevalier/M 3097,3100c2484,2485 < Chiarra/M < Chiba < Chibcha < Chic/M --- > Chiba/M > Chibcha/M 3102,3105c2487,2489 < Chicagoan < Chicana < Chicano < Chick/M --- > Chicagoan/M > Chicana/M > Chicano/M 3107,3108d2490 < Chickie/M < Chicky/M 3120c2502 < Chinatown --- > Chinatown/M 3123d2504 < Chip/M 3127d2507 < Chiquia/M 3129c2509 < Chirico --- > Chirico/M 3132c2512 < Chittagong --- > Chittagong/M 3134,3136c2514 < Chlo/M < Chloe < Chloette/M --- > Chloe/M 3140,3141c2518,2519 < Chomsky < Chongqing --- > Chomsky/M > Chongqing/M 3144c2522 < Chou --- > Chou/M 3147d2524 < Chrisse/M 3150c2527 < Christ/MNS --- > Christ/MS 3153,3158c2530 < Christabella/M < Christal/M < Christalle/M < Christan/M < Christchurch < Christean/M --- > Christchurch/M 3160,3161c2532,2533 < Christen/M < Christendom/SM --- > Christen's > Christendom/MS 3168,3172c2540,2542 < Christianize/DSG < Christiano/M < Christie < Christin/M < Christina --- > Christianize/DG > Christie/M > Christina/M 3178,3179d2547 < Christoffer/M < Christoforo/M 3184d2551 < Christophorus/M 3186,3188d2552 < Christye/M < Christyna/M < Chrisy/M 3190,3191d2553 < Chrotoem/M < Chrysa/M 3193c2555 < Chrysostom --- > Chrysostom/M 3195,3197d2556 < Chryste/M < Chrystel/M < Chucho/M 3199,3200c2558,2559 < Chukchi < Chumash --- > Chukchi/M > Chumash/M 3202,3203c2561 < Chungking/M < Church --- > Church/M 3207c2565 < Ci --- > Ci/M 3210,3211c2568 < Cicily/M < Cid --- > Cid/M 3213d2569 < Cilka/M 3215,3218c2571 < Cincinnati < Cinda/M < Cindee/M < Cindelyn/M --- > Cincinnati/M 3221,3222d2573 < Cindie/M < Cindra/M 3225c2576 < Cinerama --- > Cinerama/M 3227d2577 < Cinnamon/M 3231d2580 < Cirilo/M 3234d2582 < Cissiee/M 3239d2586 < Citysearch/M 3241d2587 < Claiborn/M 3250,3252c2596 < Clarabelle/M < Clarance/M < Clare --- > Clare/M 3254,3259c2598 < Clarendon < Claresta/M < Clareta/M < Claretta/M < Clarette/M < Clarey/M --- > Clarendon/M 3263d2601 < Clarie/M 3265d2602 < Clarine/M 3269c2606 < Clark --- > Clark/M 3274,3276d2610 < Claudell/M < Claudelle/M < Claudetta/M 3280,3282d2613 < Claudianus/M < Claudie/M < Claudina/M 3287,3290c2618,2620 < Clausewitz < Clausius < Clay < Clayborn/M --- > Clausewitz/M > Clausius/M > Clay/M 3292,3293d2621 < Claybourne/M < Clayson/M 3297d2624 < Cleavland/M 3300c2627,2628 < Clemenceau --- > Clemenceau/M > Clemens/M 3303d2630 < Clementia/M 3306c2633 < Clementius/M --- > Clements/M 3308,3309c2635 < Clemmy/M < Clemons --- > Clemons/M 3315,3316d2640 < Clerissa/M < Cletis 3320,3321d2643 < Clevey/M < Clevie/M 3324c2646 < Clifford --- > Clifford/M 3326d2647 < Clim/M 3330a2652 > Clive/M 3332d2653 < Cloe/M 3334d2654 < Cloris/M 3335a2656 > Closure/M 3340,3341c2661 < Cly/M < Clyde --- > Clyde/M 3343,3345c2663 < Clytemnestra < Clyve/M < Clywd/M --- > Clytemnestra/M 3348,3349c2666 < Co/SM < Cob/M --- > Co/M 3351,3356c2668,2671 < Cobb < Cobbie/M < Cobby/M < Cochabamba < Cochin < Cochise --- > Cobb/M > Cochabamba/M > Cochin/M > Cochise/M 3359c2674 < Cocteau --- > Cocteau/M 3361,3364c2676 < Codee/M < Codi/M < Codie/M < Cody --- > Cody/M 3367,3371c2679,2682 < Cohan < Cohen < Coimbatore < Cointon/M < Cointreau --- > Cohan/M > Cohen/M > Coimbatore/M > Cointreau/M 3373,3375c2684 < Col < Colan/M < Colas --- > Col/M 3377c2686 < Colby --- > Colby/M 3379c2688 < Cole --- > Cole/M 3382d2690 < Colene/M 3386c2694 < Colette --- > Colette/M 3392d2699 < Collete/M 3394d2700 < Collie/M 3398c2704 < Colly/RM --- > Collins/M 3406d2711 < Colonial 3410c2715 < Colosseum --- > Colosseum/M 3412c2717 < Coltrane --- > Coltrane/M 3414c2719 < Columbine --- > Columbine/M 3416d2720 < Colver/M 3422,3423c2726,2727 < Comintern < Commons --- > Comintern/M > Commons/M 3428c2732 < Como --- > Como/M 3433c2737 < Compton --- > Compton/M 3436,3437c2740 < Comte < Con --- > Comte/M 3441c2744,2745 < Concepcion --- > Concepcion/M > Concepción/M 3443d2746 < Concettina/M 3446c2749 < Concorde --- > Concorde/M 3448,3449c2751,2752 < Condillac < Condorcet --- > Condillac/M > Condorcet/M 3456c2759 < Cong --- > Cong/M 3463c2766 < Congreve --- > Congreve/M 3465c2768 < Conn/R --- > Conn/MR 3467c2770 < Connemara --- > Connemara/M 3470,3471d2772 < Conney/M < Conni/M 3475c2776 < Connotea/M --- > Connors/M 3477,3478c2778 < Conrad < Conrade/M --- > Conrad/M 3482d2781 < Consalve/M 3484,3486c2783,2784 < Consolata/M < Constable < Constance --- > Constable/M > Constance/M 3488d2785 < Constancy/M 3492,3493c2789 < Constantina/M < Constantine --- > Constantine/M 3500c2796 < Continental --- > Continental/M 3502,3503c2798,2799 < Conway < Cook --- > Conway/M > Cook/M 3505d2800 < Cookie/M 3508c2803 < Coop/MR --- > Cooper/M 3514c2809 < Copernican --- > Copernican/M 3516,3517c2811,2812 < Copland < Copley --- > Copland/M > Copley/M 3523,3526d2817 < Corabel/M < Corabella/M < Corabelle/M < Coral/M 3528,3529d2818 < Coraline/M < Coralyn/M 3535d2823 < Cord/M 3537d2824 < Cordelie/M 3539,3542c2826 < Cordey/M < Cordi/M < Cordie/M < Cordilleras --- > Cordilleras/M 3544d2827 < Cordula/M 3546,3549d2828 < Coreen/M < Corella/M < Corenda/M < Corene/M 3551d2829 < Corette/M 3553c2831 < Corfu --- > Corfu/M 3555,3556d2832 < Corie/M < Corilla/M 3562,3563c2838,2840 < Corinthian/SM < Coriolanus --- > Corinthian/MS > Corinthians/M > Coriolanus/M 3565,3566d2841 < Coriss/M < Corissa/M 3570d2844 < Corly/M 3572,3574c2846 < Cornall/M < Corneille < Cornela/M --- > Corneille/M 3578d2849 < Cornelle/M 3580d2850 < Cornie/M 3584,3587c2854,2857 < Cornwallis < Corny/M < Coronado < Corot --- > Cornwallis/M > Corny's > Coronado/M > Corot/M 3589,3593c2859 < Correggio < Correna/M < Correy/M < Corri/M < Corrianne/M --- > Correggio/M 3595d2860 < Corrina/M 3597d2861 < Corrinne/M 3600c2864 < Corsican --- > Corsican/M 3603,3604d2866 < Cortez/M < Cortie/M 3606,3607d2867 < Cortney/M < Corty/M 3613d2872 < Cosetta/M 3618c2877 < Cossack --- > Cossack/M 3625c2884 < Cotonou --- > Cotonou/M 3629c2888 < Coulomb --- > Coulomb/M 3632,3634c2891,2892 < Couperin < Courbet < Court/M --- > Couperin/M > Courbet/M 3636d2893 < Courtnay/M 3638c2895 < Cousteau --- > Cousteau/M 3640,3643c2897,2901 < Coward < Cowley < Cowper < Cox --- > Coward/M > Cowell/M > Cowley/M > Cowper/M > Cox/M 3645d2902 < Cozmo/M 3649c2906 < Crabbe --- > Crabbe/M 3651,3653c2908,2909 < Craggie/M < Craggy/M < Craig --- > Craggy's > Craig/M 3655,3657c2911,2913 < Cranach < Crane < Cranmer --- > Cranach/M > Crane/M > Cranmer/M 3667,3668d2922 < Creigh/M < Creight/M 3671c2925,2926 < Creon --- > Creon/M > Cressida/M 3676,3677c2931,2932 < Crichton < Crick --- > Crichton/M > Crick/M 3679,3681c2934,2935 < Crimean < Crin/M < Criollo --- > Crimean/M > Criollo/M 3684d2937 < Crissie/M 3687d2939 < Cristabel/M 3689,3690d2940 < Cristen/M < Cristi/M 3693,3694d2942 < Cristie/M < Cristin/M 3696,3697d2943 < Cristine/M < Cristionna/M 3699d2944 < Cristy/M 3703,3705c2948,2950 < Croce < Crockett < Croesus --- > Croce/M > Crockett/M > Croesus/M 3707c2952 < Cromwellian --- > Cromwellian/M 3711,3713c2956,2958 < Crookes < Crosby < Cross --- > Crookes/M > Crosby/M > Cross/M 3717c2962 < Cruikshank --- > Cruikshank/M 3719c2964 < Crusades --- > Crusades's 3724d2968 < Crysta/M 3726d2969 < Crystie/M 3729,3730c2972 < Ctesiphon < Cthrine/M --- > Ctesiphon/M 3736,3739c2978,2979 < Cuisinart < Culbertson < Cull/MN < Cullan/M --- > Cuisinart/M > Culbertson/M 3742,3743d2981 < Cullie/M < Cullin/M 3748c2986 < Cummings --- > Cummings/M 3754,3755c2992,2993 < Curie < Curitiba --- > Curie/M > Curitiba/M 3759c2997 < Currie/MR --- > Currie/M 3761c2999 < Curry --- > Curry/RM 3765c3003 < Custer --- > Custer/M 3767c3005 < Cuzco --- > Cuzco/M 3769d3006 < Cyb/M 3772d3008 < Cybill/M 3778,3779d3013 < Cymbre/M < Cynde/M 3781,3784d3014 < Cyndia/M < Cyndie/M < Cyndy/M < Cynthea/M 3786d3015 < Cynthie/M 3792,3793c3021 < Cyril < Cyrill/M --- > Cyril/M 3796,3797c3024 < Cyrillus/M < Cyrus --- > Cyrus/M 3801c3028 < Czechoslovakian/MS --- > Czechoslovakian/SM 3803c3030 < Czerny --- > Czerny/M 3805c3032 < D/MN --- > D/M 3816c3043 < DEC/SDG --- > DEC/SD 3817a3045 > DHS 3819a3048 > DMCA 3835,3837c3064,3065 < DVD < DVDs < DVR/S --- > DVD/S > DVR/SM 3839d3066 < Dacca/M 3843d3069 < Dacie/M 3845d3070 < Dacy/M 3849,3853c3074,3075 < Dael/M < Daffi/M < Daffie/M < Daffy/M < Dag/M --- > Daffy's > Dag's 3856,3858c3078,3079 < Daguerre < Dagwood < Dahlia/M --- > Daguerre/M > Dagwood/M 3860d3080 < Daile/M 3862,3865c3082 < Daisey/M < Daisi/M < Daisie/M < Daisy --- > Daisy/M 3868c3085 < Dakotan --- > Dakotan/M 3870,3871c3087,3088 < Dale < Dalenna/M --- > Dalai > Dale/M 3873c3090 < Dali/S --- > Dali/M 3879,3880d3095 < Dalli/MS < Dallon/M 3883,3885d3097 < Daloris/M < Dalston/M < Dalt/M 3890c3102 < Dame/N --- > Dame/MN 3893c3105 < Damien --- > Damien/M 3895,3896c3107 < Damita/M < Damocles --- > Damocles/M 3898c3109 < Dan --- > Dan/M 3900c3111,3112 < Danae --- > Danae/M > Danaë/M 3902,3904c3114 < Danelaw < Danell/M < Danella/M --- > Danelaw/M 3911,3912d3120 < Danice/M < Danie/M 3918,3919c3126 < Danika/M < Danila/M --- > Daniels/M 3921,3922d3127 < Danit/M < Danita/M 3924d3128 < Dannel/M 3928d3131 < Dannye/M 3931c3134 < Danton --- > Danton/M 3933,3938c3136 < Danubian < Danya/M < Danyelle/M < Danyette/M < Daphene/M < Daphna/M --- > Danubian/M 3942,3944d3139 < Darb/M < Darbee/M < Darbie/M 3946d3140 < Darcee/M 3951d3144 < Darda/M 3953,3956c3146 < Dare < Dareen/M < Darell/M < Darelle/M --- > Dare/M 3958c3148 < Darfur --- > Darfur/M 3961,3962d3150 < Darice/M < Darill/M 3965,3966c3153,3154 < Darius < Darjeeling --- > Darius/M > Darjeeling/M 3968d3155 < Darleen/M 3970d3156 < Darline/M 3972,3974d3157 < Darlleen/M < Darn/M < Darnall/M 3979d3161 < Darrelle/M 3981d3162 < Darrick/M 3983c3164 < Darrow --- > Darrow/M 3985d3165 < Darsey/M 3988,3989c3168,3169 < Dartmoor < Dartmouth --- > Dartmoor/M > Dartmouth/M 3992c3172 < Darwinian --- > Darwinian/M 3997,3998d3176 < Daryle/M < Daryn/M 4000,4004c3178 < Dasi/M < Dasie/M < Dasya/M < Datamation/S < Datha/M --- > Datamation 4006,4009c3180,3182 < Daumier < Daune/M < Dav/MN < Davao --- > Daumier/M > Dav/M > Davao/M 4011,4014c3184 < Daveen/M < Daven/M < Davenport < Daveta/M --- > Davenport/M 4018d3187 < Davidde/M 4021c3190,3191 < Davie/MS --- > Davie/M > Davies/M 4024,4027c3194,3197 < Davine/M < Davis < Davy/S < Dawes --- > Davis/M > Davy/SM > Dawes/M > Dawkins 4029,4031c3199,3200 < Dawna/M < Dawson < Day --- > Dawson/M > Day/M 4033d3201 < Dayle/M 4035c3203 < Dayton --- > Dayton/M 4037d3204 < Ddene/M 4043c3210 < Dean --- > Dean/M 4054,4055d3220 < Debee/M < Debera/M 4058d3222 < Debor/M 4060c3224 < Deborah --- > Deborah/M 4063,4064c3227,3228 < Debs < Debussy --- > Debs/M > Debussy/M 4066d3229 < Decalog 4068c3231 < Decatur --- > Decatur/M 4070c3233 < Deccan --- > Deccan/M 4072c3235 < Deck/MR --- > Decker/M 4075,4079c3238 < Dedie/M < Dedra/M < Dee < Deeann/M < Deeanne/M --- > Dee/M 4082d3240 < Deerdre/M 4084,4087c3242,3243 < Deeyn/M < Defoe < Degas < Dehlia/M --- > Defoe/M > Degas/M 4089,4091c3245,3246 < Deimos < Deina/M < Deirdre --- > Deimos/M > Deirdre/M 4094c3249 < Del/Y --- > Del/M 4096c3251 < Delacroix --- > Delacroix/M 4098d3252 < Delainey/M 4102c3256 < Delawarean/MS --- > Delawarean/SM 4104,4105d3257 < Delcina/M < Delcine/M 4107c3259 < Delgado --- > Delgado/M 4110c3262 < Delibes --- > Delibes/M 4112d3263 < Delila/M 4115,4116c3266 < Delinda/M < Delius --- > Delius/M 4119d3268 < Delly/M 4123,4124c3272 < Delmonico < Delmor/M --- > Delmonico/M 4127d3274 < Delora/M 4132c3279 < Delphic --- > Delphic/M 4134d3280 < Delphinia/M 4136c3282 < Delta --- > Delta/M 4141,4143c3287 < Demetra/M < Demetre/M < Demetri/SM --- > Demetri/M 4149c3293 < Democritus --- > Democritus/M 4152c3296 < Dempsey --- > Dempsey/M 4156c3300 < Deneb --- > Deneb/M 4160c3304 < Denice/M --- > Denis/M 4163,4164d3306 < Denna/M < Dennet/M 4166d3307 < Denni/MS 4167a3309 > Dennis/M 4172c3314 < Deny/M --- > Deny's 4174d3315 < Denyse/M 4176d3316 < Deonne/M 4179c3319 < Derby --- > Derby/M 4184d3323 < Derrek/M 4187,4189d3325 < Derrik/M < Derril/M < Derron/M 4191,4192d3326 < Derward/M < Derwin/M 4197d3330 < Desirae/M 4199d3331 < Desiri/M 4201d3332 < Desmund/M 4204c3335 < Deutschmark/MS --- > Deutschmark/SM 4212,4215d3342 < Devina/M < Devinne/M < Devland/M < Devlen/M 4218d3344 < Devondra/M 4220,4225d3345 < Devonna/M < Devonne/M < Devora/M < Devy/M < Dew/M < Dewain/M 4229d3348 < Dewie/M 4233c3352 < Dexter --- > Dexter/M 4237c3356 < Di/S --- > Di/SM 4239,4241c3358,3359 < DiMaggio < Diaghilev < Diahann/M --- > DiMaggio/M > Diaghilev/M 4245d3362 < Diandra/M 4247d3363 < Dianemarie/M 4251,4252d3366 < Diannne/M < Diarmid/M 4255,4256c3369,3370 < Diaz < Dick/X --- > Dick/XM > Dickens/M 4260c3374 < Dickinson --- > Dickinson/M 4264c3378 < Diderot --- > Diderot/M 4268c3382 < Diefenbaker --- > Diefenbaker/M 4271d3384 < Diena/M 4273d3385 < Diesel/M 4275,4276c3387,3388 < Dietrich < Digg/MS --- > Dietrich/M > Digg/SM 4278,4279c3390 < Dijon < Dilan/M --- > Dijon/M 4281d3391 < Dill/M 4283d3392 < Dillie/M 4286d3394 < Dilly/M 4288d3395 < Dimitry/M 4290,4291c3397 < Dinah < Dinnie/M --- > Dinah/M 4294,4295c3400,3401 < Diocletian < Diogenes --- > Diocletian/M > Diogenes/M 4298d3403 < Dionis/M 4301c3406 < Dionysian --- > Dionysian/M 4304c3409 < Dior --- > Dior/M 4307,4308c3412,3413 < Dirac < Dirichlet --- > Dirac/M > Dirichlet/M 4311,4313c3416,3418 < Disney < Disneyland < Disraeli --- > Disney/M > Disneyland/M > Disraeli/M 4318c3423 < Dix --- > Dix/M 4320c3425 < Dixiecrat --- > Dixiecrat/M 4323d3427 < Djakarta/M 4327,4330c3431,3433 < Dnepropetrovsk < Dnieper < Dniester < Dniren/M --- > Dnepropetrovsk/M > Dnieper/M > Dniester/M 4333c3436 < Dobro --- > Dobro/M 4336d3438 < Dode/M 4343,4344c3445 < Dody/M < Doe --- > Doe/M 4346c3447 < Dolby --- > Dolby/M 4349d3449 < Doll/M 4351d3450 < Dolli/M 4355d3453 < Dolorita/SM 4360d3457 < Domeniga/M 4362d3458 < Dominga/M 4366c3462 < Dominic --- > Dominic/M 4373,4374c3469 < Domitian < Don't --- > Domitian/M 4376c3471 < Dona --- > Dona/M 4381,4387c3476 < Donall/M < Donalt/M < Donatello < Donaugh/M < Donavon/M < Donella/M < Donelle/M --- > Donatello/M 4389,4392d3477 < Donetta/M < Donia/M < Donica/M < Donielle/M 4395,4396c3480 < Donna < Donnamarie/M --- > Donna/M 4400d3483 < Donni/M 4405c3488 < Doolittle --- > Doolittle/M 4407c3490 < Doppler --- > Doppler/M 4409,4414c3492 < Doralia/M < Doralin/M < Doralyn/M < Doralynn/M < Doralynne/M < Dorcas --- > Dorcas/M 4417,4423d3494 < Dorelia/M < Dorella/M < Dorelle/M < Dorena/M < Dorene/M < Doretta/M < Dorette/M 4429d3499 < Dorice/M 4431d3500 < Dorine/M 4433d3501 < Dorisa/M 4435d3502 < Dorita/M 4438,4439d3504 < Dorolice/M < Dorolisa/M 4441d3505 < Doroteya/M 4445,4446d3508 < Dorree/M < Dorri/SM 4448,4449c3510,3511 < Dorry/M < Dorset --- > Dorris > Dorset/M 4451d3512 < Dorthea/M 4453,4454c3514 < Dortmund < Dory/M --- > Dortmund/M 4457d3516 < Dostoyevsky/M 4459d3517 < Doti/M 4461d3518 < Dotti/M 4463c3520 < Dotty/M --- > Dotty's 4469,4472c3526,3528 < Douglas < Douglass < Dougy/M < Douro --- > Douglas/M > Douglass/M > Douro/M 4475,4476c3531,3532 < Dow < Downs --- > Dow/M > Downs/M 4479c3535 < Doyle --- > Doyle/M 4482c3538 < Draconian --- > Draconian/M 4484c3540 < Drake --- > Drake/M 4486c3542 < Drambuie --- > Drambuie/M 4491,4493c3547 < Dreddy/M < Dredi/M < Dreiser --- > Dreiser/M 4498a3553 > Dropbox/M 4500,4504d3554 < Druci/M < Drucie/M < Drucill/M < Drucy/M < Drud/M 4506,4509c3556 < Drugi/M < Druid < Drusi/M < Drusie/M --- > Druid/M 4511,4512c3558 < Drusy/M < Dryden --- > Dryden/M 4515c3561 < DuPont --- > DuPont/M 4517c3563 < Dubai --- > Dubai/M 4522,4524c3568,3569 < Duchamp < Dud/M < Dudley --- > Duchamp/M > Dudley/M 4529c3574 < Duisburg --- > Duisburg/M 4531,4533d3575 < Dukey/M < Dukie/M < Duky/M 4535,4538d3576 < Dulcea/M < Dulci/M < Dulcia/M < Dulciana/M 4540d3577 < Dulcine/M 4542,4546c3579,3581 < Dulcy/M < Dulles < Dulsea/M < Duluth < Dumas --- > Dulles/M > Duluth/M > Dumas/M 4549,4554c3584,3587 < Dumpster < Dun/M < Dunant < Dunbar < Dunc/M < Duncan --- > Dumpster/M > Dunant/M > Dunbar/M > Duncan/M 4556c3589 < Dunedin --- > Dunedin/M 4566c3599 < Durant --- > Durant/M 4568,4569c3601,3602 < Durban < Durer --- > Durban/M > Durer/M 4572,4573c3605,3606 < Durkheim < Duroc --- > Durkheim/M > Duroc/M 4584c3617 < Dutchmen --- > Dutchmen/M 4586,4589c3619,3622 < Duvalier < Dvina < Dvorak < Dwain/M --- > Duvalier/M > Dvina/M > Dvorak/M > Dvorák/M 4594,4598d3626 < Dyana/M < Dyane/M < Dyann/M < Dyanna/M < Dyanne/M 4602d3629 < Dynah/M 4605c3632,3634 < Dzungaria --- > Dzungaria/M > Dürer/M > Düsseldorf/M 4630c3659,3660 < ESPN --- > ESPN/M > ESR 4636,4637c3666 < Eachelle/M < Eada/M --- > EULA/S 4639,4641c3668 < Eadith/M < Eadmund/M < Eakins --- > Eakins/M 4643d3669 < Ealasaid/M 4645c3671 < Earhart --- > Earhart/M 4649d3674 < Earlie/M 4651c3676 < Early/M --- > Early's 4656,4658d3680 < Earth/M < Eartha/M < Earvin/M 4662c3684 < Eastman --- > Eastman/M 4671d3692 < Ebeneser/M 4674,4677c3695,3696 < Ebert < Eberto/M < Ebola < Ebonee/M --- > Ebert/M > Ebola/M 4681c3700 < Ecclesiastes --- > Ecclesiastes/M 4688c3707 < Ecuadorian/MS --- > Ecuadorian/SM 4692d3710 < Edan/M 4694,4695c3712 < Edda < Eddi/M --- > Edda/M 4700,4701d3716 < Edee/M < Edeline/M 4703c3718 < Edgar --- > Edgar/M 4708d3722 < Edik/M 4712d3725 < Edita/M 4715,4716d3727 < Edithe/M < Ediva/M 4718d3728 < Edmon/M 4724c3734 < Edsel --- > Edsel/M 4727d3736 < Eduino/M 4732c3741,3742 < Edwin --- > Edwards/M > Edwin/M 4735d3744 < Edyth/M 4751,4753c3760,3762 < Ehrlich < Eichmann < Eiffel --- > Ehrlich/M > Eichmann/M > Eiffel/M 4755,4756d3763 < Eilis/M < Eimile/M 4759d3765 < Eirena/M 4761c3767 < Eisenstein --- > Eisenstein/M 4766,4767c3772,3773 < Elaine < Elam --- > Elaine/M > Elam/M 4769d3774 < Elane/M 4773c3778 < Elba --- > Elba/M 4775,4779c3780,3781 < Elbert < Elberta/M < Elbertina/M < Elbertine/M < Elbrus --- > Elbert/M > Elbrus/M 4783d3784 < Eldorado 4791d3791 < Eleen/M 4795d3794 < Elenore/M 4798d3796 < Elfie/M 4801,4804c3799,3800 < Elfrieda/M < Elga/M < Elgar < Eli --- > Elgar/M > Eli/M 4806,4808c3802 < Elianora/M < Elianore/M < Elicia/M --- > Elias/M 4813,4814c3807 < Elinore/M < Eliot --- > Eliot/M 4817c3810 < Elisabeth --- > Elisabeth/M 4821c3814 < Elisha --- > Elisha/M 4823d3815 < Elita/M 4825d3816 < Elizabet/M 4827,4828c3818 < Elizabethan/MS < Elka/M --- > Elizabethan/SM 4831,4832d3820 < Elladine/M < Ellary/M 4835,4836d3822 < Ellene/M < Ellerey/M 4839d3824 < Ellette/M 4842c3827 < Ellington --- > Ellington/M 4845c3830 < Ellis --- > Ellis/M 4847,4848d3831 < Ellissa/M < Ellswerth/M 4853d3835 < Ellynn/M 4859,4860d3840 < Elna/MH < Elnar/M 4863,4864c3843 < Elnore/M < Elohim --- > Elohim/M 4867,4868d3845 < Elonore/M < Elora/M 4873,4874c3850 < Else/M < Elset/M --- > Else's 4877d3852 < Elsi/M 4879c3854 < Elsinore --- > Elsinore/M 4882,4883d3856 < Elsworth/M < Elsy/M 4888d3860 < Elvera/M 4891d3862 < Elvina/M 4894d3864 < Elvyn/M 4897d3866 < Elwira/M 4900d3868 < Elyn/M 4903,4905c3871 < Elysha/M < Elysia < Elysian --- > Elysian/M 4908c3874 < Em/M --- > Elysée/M 4911,4912d3876 < Emalee/M < Emalia/M 4915,4918d3878 < Emelda/M < Emelen/M < Emelia/M < Emelina/M 4920,4923c3880 < Emelita/M < Emelyne/M < Emera/M < Emerson --- > Emerson/M 4927,4928d3883 < Emilee/M < Emili/M 4931d3885 < Emiline/M 4938,4939d3891 < Emlynn/M < Emlynne/M 4941d3892 < Emmalee/M 4943,4946c3894 < Emmalyn/M < Emmalynn/M < Emmalynne/M < Emmanuel --- > Emmanuel/M 4949d3896 < Emmery/M 4952,4953d3898 < Emmey/M < Emmi/M 4955,4959c3900 < Emmit/M < Emmott/M < Emmy < Emmye/M < Emogene/M --- > Emmy/M 4961,4962d3901 < Emyle/M < Emylee/M 4965,4967c3904,3905 < Endymion < Eng < Engadget/M --- > Endymion/M > Eng/M 4971d3908 < Englebert/M 4974c3911 < Englishmen --- > Englishmen/M 4976,4978c3913,3914 < Englishwomen < Engracia/M < Enid --- > Englishwomen/M > Enid/M 4983,4984c3919,3920 < Enoch < Enos --- > Enoch/M > Enos/M 4986d3921 < Enrichetta/M 4988d3922 < Enrika/M 4990d3923 < Enriqueta/M 4994,4995d3926 < Eolanda/M < Eolande/M 4997,5000c3928,3930 < Ephesian/S < Ephesus < Ephraim < Ephrayim/M --- > Ephesian/MS > Ephesus/M > Ephraim/M 5002,5003c3932,3933 < Epictetus < Epicurean --- > Epictetus/M > Epicurean/M 5006d3935 < Epinions/M 5011c3940 < Epsom --- > Epsom/M 5013,5014c3942,3943 < Epstein < Equuleus --- > Epstein/M > Equuleus/M 5023,5025c3952 < Erector < Erek/M < Erena/M --- > Erector/M 5027,5028c3954 < Erhard < Erhart/M --- > Erhard/M 5032d3957 < Ericha/M 5036,5039c3961,3964 < Ericson < Ericsson < Eridanus < Erie --- > Ericson/M > Ericsson/M > Eridanus/M > Erie/M 5042,5046c3967 < Eriksson < Erin < Erina/M < Erinn/M < Erinna/M --- > Erin/M 5053,5059d3973 < Ermanno/M < Ermengarde/M < Ermentrude/M < Ermin/M < Ermina/M < Erminia/M < Erminie/M 5061d3974 < Ernaline/M 5063d3975 < Ernesta/M 5066d3977 < Ernestus/M 5068,5069c3979 < Ernst < Erny/M --- > Ernst/M 5071d3980 < Errick/M 5076d3984 < Ertha/M 5080d3987 < Eryn/M 5087,5088d3993 < Esma/M < Esmaria/M 5096d4000 < Esra/M 5099,5101c4003,4005 < Essene < Essequibo < Essex --- > Essene/M > Essequibo/M > Essex/M 5103d4006 < Essy/M 5107d4009 < Estel/M 5109,5110d4010 < Estele/M < Estell/M 5115c4015,4016 < Estes --- > Esterházy/M > Estes/M 5122,5123d4022 < Estrellita/M < Etan/M 5125d4023 < Ethe/M 5128,5131d4025 < Ethelda/M < Ethelin/M < Ethelind/M < Etheline/M 5134c4028 < Ethernet --- > Ethernet/M 5137d4030 < Ethyl/M 5140,5142c4033,4035 < Eton < Etruria < Etruscan --- > Eton/M > Etruria/M > Etruscan/M 5144d4036 < Etti/M 5152c4044 < Euclidean --- > Euclidean/M 5154d4045 < Euell/M 5156c4047 < Eugene --- > Eugene/M 5161,5162d4051 < Eugine/M < Eukaryota/MS 5165c4054 < Euler --- > Euler/M 5173,5174c4062,4063 < Euripides < Eurodollar/MS --- > Euripides/M > Eurodollar/SM 5183c4072 < Ev/MN --- > Ev/M 5185d4073 < Evaleen/M 5187d4074 < Evangelia/M 5189d4075 < Evangelin/M 5192,5195c4078,4080 < Evangelist < Evania/M < Evanne/M < Evansville --- > Evangelist/M > Evans/M > Evansville/M 5197,5198d4081 < Eveleen/M < Evelin/M 5201,5202c4084 < Evelyn < Even/M --- > Evelyn/M 5206d4087 < Evered/M 5217,5219d4097 < Evonne/M < Evvie/M < Evvy/M 5221d4098 < Evyn/M 5223d4099 < Eward/M 5232c4108 < Exercycle --- > Exercycle/M 5238,5240c4114 < Eyde/M < Eydie/M < Eyre --- > Eyre/M 5242,5243c4116 < Ezechiel/M < Ezekiel --- > Ezekiel/M 5245,5248c4118 < Eziechiele/M < Ezmeralda/M < Ezra < Ezri/M --- > Ezra/M 5266a4137 > FSF/M 5270a4142 > FWIW 5273d4144 < Fabe/RM 5275c4146,4147 < Faberge --- > Faberge/M > Fabergé/M 5277d4148 < Fabiano/M 5283c4154 < Fafnir --- > Fafnir/M 5286,5289c4157,4158 < Fahrenheit < Faina/M < Fair/M < Fairbanks --- > Fahrenheit/M > Fairbanks/M 5294,5297c4163,4165 < Faisalabad < Faith < Falasha < Falito/M --- > Faisalabad/M > Faith/M > Falasha/M 5298a4167 > Falklands/M 5304,5309d4172 < Fan < Fanchette/M < Fanchon/M < Fancie/M < Fancy/M < Fanechka/M 5311d4173 < Fanni/M 5314,5315c4176 < Fanya/M < Far/MY --- > Far's 5319d4179 < Farand/M 5321,5324d4180 < Farica/M < Farlay/M < Farlee/M < Farleigh/M 5326,5328c4182 < Farlie/M < Farly/M < Farmer --- > Farmer/M 5330,5331c4184 < Farra/M < Farragut --- > Farragut/M 5340d4192 < Fascism 5345c4197 < Fates --- > Fates/M 5347,5348c4199,4200 < Fatima < Fatimid --- > Fatima/M > Fatimid/M 5350,5352c4202 < Faulknerian < Faun/M < Faunie/M --- > Faulknerian/M 5355c4205 < Faustian --- > Faustian/M 5357d4206 < Faustine/M 5360,5365c4209 < Favorited < Fawkes < Fawn/M < Fawne/M < Fawnia/M < Fax/M --- > Fawkes/M 5367d4210 < Faydra/M 5370d4212 < Fayina/M 5372,5373d4213 < Fayth/M < Faythe/M 5378c4218 < FedEx --- > FedEx/M 5381d4220 < Federica/M 5383,5384c4222 < Fedora/M < Fee/M --- > Feds/M 5386,5387d4223 < Felic/M < Felicdad/M 5390d4225 < Felicio/M 5392,5393d4226 < Felicle/M < Felike/M 5395d4227 < Felipa/M 5397,5398d4228 < Felisha/M < Felita/M 5400,5403c4230 < Feliza/M < Felizio/M < Fellini < Fenelia/M --- > Fellini/M 5405c4232 < Fenian --- > Fenian/M 5408d4234 < Feodora/M 5412,5414c4238 < Ferdinand < Ferdinanda/M < Ferdinande/M --- > Ferdinand/M 5416c4240 < Fergus --- > Fergus/M 5420c4244 < Fermi --- > Fermi/M 5432,5433c4256,4257 < Ferris < Fey/M --- > Ferris/M > Fey's 5435,5436c4259 < Fez < Fiann/M --- > Fez/M 5439c4262 < Fiberglas --- > Fiberglas/M 5441c4264 < Fichte --- > Fichte/M 5443d4265 < Fidela/M 5446d4267 < Fidelity/M 5448,5449c4269,4270 < Fidole/M < Field/GS --- > Fielding/M > Fields/M 5451d4271 < Fifine/M 5456,5460d4275 < Filbert/M < Filberte/M < Filberto/M < Filia/M < Filide/M 5463d4277 < Filippa/M 5468,5470c4282 < Filmore/M < Filofax < Fin --- > Filofax/M 5485,5487d4296 < Fionna/M < Fionnula/M < Fiorenze/M 5490,5491c4299,4300 < Fischer < Fisher --- > Fischer/M > Fisher/M 5495c4304 < Fitzgerald --- > Fitzgerald/M 5504c4313 < Flaubert --- > Flaubert/M 5506a4316 > Fleming/M 5509a4320 > Fletcher/M 5511d4321 < Fleurette/M 5515,5516c4325,4326 < Flint < Flintstones --- > Flint/M > Flintstones/M 5520,5521c4330 < Flora < Florance/M --- > Flora/M 5523d4331 < Florella/M 5526,5529c4334,4335 < Florentia/M < Florentine < Florenza/M < Flores --- > Florentine/M > Flores/M 5531,5532d4336 < Flori/SM < Floria/M 5535c4339 < Floridan --- > Floridan/M 5537,5538d4340 < Florie/M < Florina/M 5541c4343 < Florri/M --- > Floris 5543d4344 < Florry/M 5546d4346 < Flossi/M 5548,5551c4348,4350 < Flossy/M < Flowers < Floyd < Flss/M --- > Flossy's > Flowers/M > Floyd/M 5554,5560c4353,4359 < Foch < Fokker < Foley < Folgers < Folsom < Fomalhaut < Fonda --- > Foch/M > Fokker/M > Foley/M > Folgers/M > Folsom/M > Fomalhaut/M > Fonda/M 5562,5564d4360 < Fonsie/M < Fonz/M < Fonzie/M 5566c4362 < Forbes --- > Forbes/M 5569a4366 > Forester/M 5574c4371 < Forrest/R --- > Forrest/MR 5576,5577c4373,4374 < Forster < Fortaleza --- > Forster/M > Fortaleza/M 5580c4377 < Foster --- > Foster/M 5582,5583c4379,4380 < Foucault < Fourier --- > Foucault/M > Fourier/M 5586c4383 < Fowler --- > Fowler/M 5589c4386 < Fragonard --- > Fragonard/M 5592,5593c4389,4390 < Francene/M < Francesca --- > Frances/M > Francesca/M 5595d4391 < Franchot/M 5597c4393 < Francis --- > Francis/M 5599c4395 < Franciscan/SM --- > Franciscan/MS 5601,5606c4397,4398 < Franciska/M < Franciskus/M < Franck < Francklin/M < Francklyn/M < Franco --- > Franck/M > Franco/M 5609,5610c4401,4402 < Francyne/M < Franglais --- > Francophile > Franglais/M 5613c4405 < Frankenstein --- > Frankenstein/M 5615a4408 > Frankfurter/M 5618c4411 < Franklin --- > Franklin/M 5619a4413 > Franks/M 5621d4414 < Franni/M 5625d4417 < Frants/M 5628,5629c4420 < Frasco/M < Fraser --- > Fraser/M 5631d4421 < Frasquito/M 5634,5635c4424 < Frayda/M < Fraze/RM --- > Frazer 5639d4427 < Freddi/M 5642,5643d4429 < Fredek/M < Fredelia/M 5647,5648c4433 < Frederick < Fredericka/M --- > Frederick/M 5651d4435 < Frederigo/M 5654,5656d4437 < Fredi/M < Fredia/M < Fredra/M 5660c4441 < Free/M --- > Free's 5662d4442 < Freedman/M 5667d4446 < Freemon/M 5670c4449 < Fremont --- > Fremont/M 5673c4452 < Frenchmen --- > Frenchmen/M 5675,5676c4454,4455 < Frenchwomen < Freon --- > Frenchwomen/M > Freon/M 5680c4459 < Freudian --- > Freudian/M 5686c4465 < Friedan --- > Friedan/M 5688c4467 < Friedman --- > Friedman/M 5690d4468 < Friedrick/M 5693,5695c4471,4473 < Frigidaire < Frisbee < Frisco --- > Frigidaire/M > Frisbee/M > Frisco/M 5699,5702c4477,4481 < Frobisher < Froissart < Fromm < Fronde --- > Frobisher/M > Frodo/M > Froissart/M > Fromm/M > Fronde/M 5706c4485 < Frostbelt --- > Frostbelt/M 5708c4487 < Fry --- > Fry/M 5711,5712c4490,4491 < Fuentes < Fugger --- > Fuentes/M > Fugger/M 5717a4497,4498 > Fukushima/M > Fukuyama/M 5719,5721c4500,4502 < Fulbright < Fuller < Fullerton --- > Fulbright/M > Fuller/M > Fullerton/M 5724,5725c4505,4506 < Funafuti < Fundy --- > Funafuti/M > Fundy/M 5728c4509,4510 < Fushun --- > Furtwängler/M > Fushun/M 5730c4512 < Fuzzbuster --- > Fuzzbuster/M 5735a4518 > GCC/M 5741a4525 > GIF 5743c4527 < GM --- > GM/M 5746a4531 > GNU/M 5750a4536,4537 > GPS > GPU 5757,5759d4543 < Gabbey/M < Gabbi/M < Gabbie/M 5762d4545 < Gabey/M 5764c4547 < Gabie/M --- > Gable/M 5768c4551 < Gabriel --- > Gabriel/M 5771d4553 < Gabriell/M 5774,5776d4555 < Gabriellia/M < Gabriello/M < Gabrila/M 5779d4557 < Gaddafi 5784d4561 < Gaelan/M 5786,5787c4563,4565 < Gagarin < Gage --- > Gagarin/M > Gage/M > Gaia/M 5789d4566 < Gaile/M 5793d4569 < Gal/N 5796,5798c4572,4574 < Galatea < Galatia < Galatians --- > Galatea/M > Galatia/M > Galatians/M 5800c4576 < Galbraith --- > Galbraith/M 5802,5803c4578,4579 < Galen < Galibi --- > Galen/M > Galibi/M 5805c4581 < Galilee --- > Galilee/M 5810d4585 < Gallard/M 5812c4587 < Gallic --- > Gallic/M 5816c4591 < Gallup --- > Gallup/M 5818c4593 < Galsworthy --- > Galsworthy/M 5820,5821c4595 < Galvani < Galven/M --- > Galvani/M 5826c4600 < Gamay --- > Gamay/M 5834a4609 > Gandalf/M 5836c4611 < Gandhian --- > Gandhian/M 5840d4614 < Gannie/M 5842d4615 < Ganny/M 5846,5848c4619 < Gar/MH < Garald/M < Garbo --- > Garbo/M 5851,5852d4621 < Gardener/M < Gardie/M 5855d4623 < Gardy/M 5857d4624 < Garek/M 5862c4629 < Gargantua --- > Gargantua/M 5864,5870c4631,4632 < Garik/M < Garland < Garmin/M < Garner < Garnet/M < Garnette/M < Garold/M --- > Garland/M > Garner/M 5872,5874d4633 < Garrek/M < Garret/M < Garreth/M 5876,5880c4635,4636 < Garrick < Garrik/M < Garrison < Garrot/M < Garrott/M --- > Garrick/M > Garrison/M 5883,5884c4639 < Garv/M < Garvey --- > Garvey/M 5886,5887d4640 < Garvy/M < Garwin/M 5889c4642 < Gary --- > Gary/M 5896c4649 < Gasser --- > Gasser/M 5898c4651,4652 < Gates --- > Gastroenterology > Gates/M 5906d4659 < Gaultiero/M 5908c4661 < Gaussian --- > Gaussian/M 5911c4664 < Gautier --- > Gautier/M 5916,5917d4668 < Gavra/M < Gavrielle/M 5919,5920c4670 < Gawen/M < Gay --- > Gay/M 5922,5929c4672 < Gayel/M < Gayelord/M < Gayla/M < Gayle/RM < Gayleen/M < Gaylene/M < Gayler/M < Gaylor/M --- > Gayle/M 5932,5933c4675,4676 < Gaza < Gaziantep --- > Gaza/M > Gaziantep/M 5938,5939d4680 < Gearalt/M < Gearard/M 5941d4681 < Geer/M 5944c4684 < Gehrig --- > Gehrig/M 5948d4687 < Gelya/M 5949a4689 > Gen/M 5962,5964d4701 < Genni/M < Gennie/M < Gennifer/M 5968,5970c4705 < Genovera/M < Gentile/MS < Gentoo --- > Gentoo/M 5972d4706 < Genvieve/M 5976,5977d4709 < Geoffry/M < Georas/M 5981,5984d4712 < Georgeanna/M < Georgeanne/M < Georgena/M < Georgeta/M 5986,5987c4714 < Georgetta/M < Georgette --- > Georgette/M 5993d4719 < Georgianne/M 5996d4721 < Georgine/M 5997a4723 > Ger/M 5999d4724 < Geralda/M 6005c4730 < Gerek/M --- > Gere/M 6007d4731 < Gerhardine/M 6010,6013d4733 < Gerianna/M < Gerianne/M < Gerick/M < Gerik/M 6015d4734 < Gerladina/M 6019d4737 < Germana/M 6022d4739 < Germayne/M 6024c4741 < Geronimo --- > Geronimo/M 6027,6028d4743 < Gerrie/M < Gerrilee/M 6030c4745 < Gershwin --- > Gershwin/M 6032,6033d4746 < Gerta/M < Gerti/M 6036d4748 < Gertruda/M 6042,6043c4754,4755 < Gethsemane < Getty --- > Gethsemane/M > Getty/M 6045c4757,4758 < Gewurztraminer --- > Gewurztraminer/M > Gewürztraminer/M 6048,6049c4761 < Ghanian/MS < Ghats --- > Ghats/M 6051,6056c4763,4765 < Ghent < Gherardo/M < Ghibelline < Giacinta/M < Giacobo/M < Giacometti --- > Ghent/M > Ghibelline/M > Giacometti/M 6058d4766 < Giacopo/M 6060,6061d4767 < Giana/M < Gianina/M 6066d4771 < Giavani/M 6069,6072c4774,4775 < Gibbie/M < Gibbon < Gibbs < Gibby/M --- > Gibbon/M > Gibbs/M 6074,6077c4777,4780 < Gibson < Gide < Gideon < Gielgud --- > Gibson/M > Gide/M > Gideon/M > Gielgud/M 6079c4782 < Giff/MR --- > Giff/M 6081,6082d4783 < Giffer/M < Giffie/M 6084d4784 < Giffy/M 6089d4788 < Gilberta/M 6091,6092d4789 < Gilbertina/M < Gilbertine 6094d4790 < Gilburt/M 6097,6101c4793,4796 < Gilead < Gilemette/M < Giles < Gilgamesh < Gill --- > Gilead/M > Giles/M > Gilgamesh/M > Gill/M 6104c4799 < Gillespie --- > Gillespie/M 6106d4800 < Gilli/M 6109c4803 < Gillie/M --- > Gillie's 6111a4806 > Gilman 6114d4808 < Ginelle/M 6118d4811 < Ginni/M 6120d4812 < Ginnifer/M 6123c4815 < Ginsberg --- > Ginsberg/M 6128d4819 < Giorgia/M 6130,6131c4821,4822 < Giorgione < Giotto --- > Giorgione/M > Giotto/M 6134,6136d4824 < Gipsy/SM < Giralda/M < Giraldo/M 6138c4826 < Giraudoux --- > Giraudoux/M 6140d4827 < Giselbert/M 6142d4828 < Gisella/M 6144,6145c4830,4831 < Gish < Giuditta/M --- > Gish/M > GitHub/M 6151,6152d4836 < Giustina/M < Giustino/M 6155d4838 < Gizela/M 6157,6158d4839 < Glad/M < Gladi/M 6160,6161c4841,4842 < Gladys < Glaser --- > Gladys/M > Glaser/M 6168d4848 < Gleda/M 6172d4851 < Glenden/M 6174d4852 < Glenine/M 6179,6181c4857 < Glennis/M < Glori/M < Gloria --- > Gloria/M 6183,6185c4859 < Gloriane/M < Glory/M < Gloucester --- > Gloucester/M 6189d4862 < Glynda/M 6192d4864 < Glynnis/M 6194,6195c4866 < Gnni/M < Gnostic --- > Gnostic/M 6197c4868,4869 < Goa --- > GnuPG > Goa/M 6200,6203c4872,4873 < Godard < Godart/M < Goddard < Goddart/M --- > Godard/M > Goddard/M 6205d4874 < Godfree/M 6207d4875 < Godfry/M 6212,6213c4880,4881 < Godthaab < Godunov --- > Godthaab/M > Godunov/M 6216,6217c4884,4885 < Goebbels < Goering --- > Goebbels/M > Goering/M 6221,6222c4889,4890 < Gog < Gogol --- > Gog/M > Gogol/M 6225c4893 < Golconda --- > Golconda/M 6227d4894 < Goldarina/M 6230,6231d4896 < Goldi/M < Goldia/M 6234,6235c4899 < Goldina/M < Golding --- > Golding/M 6237c4901 < Goldsmith --- > Goldsmith/M 6239c4903 < Goldwyn --- > Goldwyn/M 6241c4905 < Golgi --- > Golgi/M 6243c4907 < Goliath --- > Goliath/M 6246,6247c4910,4911 < Gompers < Gomulka --- > Gompers/M > Gomulka/M 6249c4913 < Gonzales --- > Gonzales/M 6252d4915 < Goober/M 6255c4918 < Goodman --- > Goodman/M 6259c4922 < Goodyear --- > Goodyear/M 6264,6265c4927 < Goraud/M < Gorbachev --- > Gorbachev/M 6270,6271c4932,4933 < Gordimer < Gordon --- > Gordimer/M > Gordon/M 6273c4935 < Gore --- > Gore/M 6276c4938 < Gorgas --- > Gorgas/M 6278c4940 < Gorgonzola --- > Gorgonzola/M 6283,6284c4945 < Gotham < Gothart/M --- > Gotham/M 6289,6290c4950,4951 < Gould < Gounod --- > Gould/M > Gounod/M 6292c4953 < Goya --- > Goya/M 6295,6296c4956,4957 < Gracchus < Grace --- > Gracchus/M > Grace/M 6301,6302d4961 < Gradeigh/M < Gradey/M 6304d4962 < Graehme/M 6308,6315c4966,4971 < Graham < Grahame < Graig/M < Grail < Gram/M < Grammy < Grampians < Gran/M --- > Graham/M > Grahame/M > Grail/M > Grammy/M > Grampians/M > Gran's 6319d4974 < Granny/M 6322d4976 < Granthem/M 6325c4979 < Grass --- > Grass/M 6328,6331c4982,4983 < Gratiana/M < Graves < Gray < Grayce/M --- > Graves/M > Gray/M 6333c4985 < Grecian --- > Grecian/M 6336c4988 < Greeley --- > Greeley/M 6338c4990 < Greene --- > Greene/M 6349d5000 < Greggory/M 6351d5001 < Gregoor/M 6353c5003 < Gregorian --- > Gregorian/M 6359,6361c5009,5011 < Grenadines < Grendel < Grenoble --- > Grenadines/M > Grendel/M > Grenoble/M 6363c5013 < Gresham --- > Gresham/M 6365d5014 < Gretal/M 6369d5017 < Grethel/M 6373,6374c5021,5022 < Grey < Grieg --- > Grey/M > Grieg/M 6377d5024 < Griffie/M 6379c5026 < Griffith --- > Griffith/M 6381,6382c5028 < Griffy/M < Grimes --- > Grimes/M 6385c5031 < Gris --- > Gris/M 6387d5032 < Grissel/M 6389,6390c5034 < Griz/M < Gromyko --- > Gromyko/M 6392,6395c5036,5038 < Gross < Grosz < Grotius < Grove/RM --- > Gross/M > Grosz/M > Grotius/M 6399c5042 < Grundy --- > Grundy/M 6402a5046,5047 > Gruyère/M > Grünewald/M 6405c5050 < Guadalquivir --- > Guadalquivir/M 6409d5053 < Gualterio/M 6417c5061 < Guatemalan/SM --- > Guatemalan/MS 6420,6421c5064 < Guelph < Guendolen/M --- > Guelph/M 6423d5065 < Guenna/M 6426,6429c5068,5070 < Guerrero < Guevara < Guggenheim < Guglielma/M --- > Guerrero/M > Guevara/M > Guggenheim/M 6437,6438d5077 < Guillema/M < Guillemette/M 6443d5081 < Guinna/M 6445,6446c5083,5084 < Guiyang < Guizot --- > Guiyang/M > Guizot/M 6449,6450c5087,5088 < Gujranwala < Gullah --- > Gujranwala/M > Gullah/M 6453,6454d5090 < Gun/M < Gunar/M 6456,6457d5091 < Gunner/M < Guntar/M 6459c5093 < Gunther --- > Gunther/M 6464,6466d5097 < Gusella/M < Guss < Gussi/M 6468c5099 < Gussy/M --- > Gussy's 6476,6481c5107,5109 < Gustie/M < Gusty/M < Gutenberg < Guthrey/M < Guthrie < Guthry/M --- > Gusty's > Gutenberg/M > Guthrie/M 6487c5115 < Gwalior --- > Gwalior/M 6490d5117 < Gwendolin/M 6493,6500d5119 < Gweneth/M < Gwenette/M < Gwenneth/M < Gwenni/M < Gwennie/M < Gwenny/M < Gwenora/M < Gwenore/M 6504a5124,5125 > Gödel/M > Göteborg/M 6506c5127,5129 < HBO --- > HBO/M > HDD > HDMI 6516a5140 > HPV 6528c5152 < Ha --- > Ha/M 6530c5154 < Habakkuk --- > Habakkuk/M 6532c5156 < Had/M --- > Had's 6535d5158 < Hadlee/M 6539c5162 < Hadrian --- > Hadrian/M 6542c5165 < Hagar --- > Hagar/M 6544c5167 < Haggai --- > Haggai/M 6546,6547c5169,5170 < Hague < Hahn --- > Hague/M > Hahn/M 6550d5172 < Hailee/M 6552,6553c5174 < Haily/M < Haiphong --- > Haiphong/M 6559c5180 < Hakluyt --- > Hakluyt/M 6561,6565c5182,5184 < Haldane < Hale < Haleakala < Haleigh/M < Halette/M --- > Haldane/M > Hale/M > Haleakala/M 6568d5186 < Halie/M 6570,6573c5188,5189 < Halimeda/M < Hall < Halley < Halli/M --- > Hall/M > Halley/M 6578,6579c5194 < Hallstatt < Hallsy/M --- > Hallstatt/M 6582,6583c5197,5198 < Halsey < Halsy/M --- > Hals/M > Halsey/M 6589c5204 < Hamhung --- > Hamhung/M 6595c5210 < Hamiltonian --- > Hamiltonian/M 6598,6599c5213 < Hamlen/M < Hamlet --- > Hamlet/M 6602,6603c5216,5217 < Hammarskjold < Hammerstein --- > Hammarskjold/M > Hammerstein/M 6605,6607c5219,5220 < Hammond < Hammurabi < Hamnet/M --- > Hammond/M > Hammurabi/M 6609,6611c5222,5224 < Hampton < Hamsun < Han/S --- > Hampton/M > Hamsun/M > Han/SM 6614c5227 < Hancock --- > Hancock/M 6616c5229 < Handy --- > Handy/M 6623c5236 < Hanni/SM --- > Hanni/M 6625,6626d5237 < Hannie/M < Hanny/M 6629a5241 > Hans/MN 6632d5243 < Hansiain/M 6634a5246 > Hanukah/M 6637c5249 < Happy/M --- > Happy's 6642c5254 < Harbin --- > Harbin/M 6646,6647c5258,5259 < Hardy < Hargreaves --- > Hardy/M > Hargreaves/M 6651,6656c5263,5264 < Harlen/M < Harlene/M < Harlequin < Harley < Harli/M < Harlie/M --- > Harlequin/M > Harley/M 6658c5266 < Harlow --- > Harlow/M 6663d5270 < Harmony/M 6666d5272 < Harp/MR 6671d5276 < Harrie/M 6674d5278 < Harrietta/M 6678a5283 > Harris/M 6681c5286 < Harrods --- > Harrods/M 6683,6684c5288,5289 < Hart < Harte --- > Hart/M > Harte/M 6692c5297 < Harvey --- > Harvey/M 6694d5298 < Harwilll/M 6696d5299 < Hasheem/M 6698,6699c5301 < Hasidim < Haskel/M --- > Hasidim/M 6705,6707c5307,5309 < Hasty/M < Hatfield < Hathaway --- > Hasty's > Hatfield/M > Hathaway/M 6709c5311 < Hatteras --- > Hatteras/M 6713c5315 < Hauptmann --- > Hauptmann/M 6717,6719c5319,5320 < Havarti < Havel < Haven/M --- > Havarti/M > Havel/M 6724,6725c5325,5326 < Hawking < Hawkins --- > Hawking/M > Hawkins/M 6727c5328 < Hawthorne --- > Hawthorne/M 6731a5333 > Hayek/M 6734,6735c5336,5338 < Haynes < Hayward --- > Haynes/M > Hays/M > Hayward/M 6739d5341 < Haze/M 6742c5344 < Hazlitt --- > Hazlitt/M 6745,6747c5347,5348 < Heall/M < Hearst < Heath/R --- > Hearst/M > Heath/MR 6749,6750c5350 < Heaven/MS < Heaviside --- > Heaviside/M 6752c5352 < Hebe --- > Hebe/M 6754c5354 < Hebraic --- > Hebraic/M 6756a5357 > Hebrews/M 6758c5359 < Hecate --- > Hecate/M 6760,6761c5361 < Hecuba < Heda/M --- > Hecuba/M 6763,6764d5362 < Heddi/M < Heddie/M 6766,6767d5363 < Hedvig/M < Hedvige/M 6769d5364 < Hedwiga/M 6774,6778c5369,5372 < Hegelian < Hegira < Heida/M < Heidegger < Heidelberg --- > Hegelian/M > Hegira/M > Heidegger/M > Heidelberg/M 6780,6781c5374 < Heidie/M < Heifetz --- > Heifetz/M 6783,6784c5376 < Heindrick/M < Heine --- > Heine/M 6788,6791c5380,5381 < Heinrick/M < Heinrik/M < Heinz < Heisenberg --- > Heinz/M > Heisenberg/M 6793c5383 < Hejira/MS --- > Hejira's 6795d5384 < Helaine/M 6799d5387 < Helenka/M 6802,6803c5390,5391 < Helicon < Heliopolis --- > Helicon/M > Heliopolis/M 6805d5392 < Hell/SMR 6810,6813c5397,5400 < Hellenistic < Hellenization < Hellenize/DSG < Heller --- > Hellenistic/M > Hellenization/M > Hellenize/MD > Heller/M 6815,6816c5402 < Helli/M < Hellman --- > Hellman/M 6819d5404 < Helsa/M 6824d5408 < Helyn/M 6828a5413 > Hendricks/M 6830,6833c5415,5416 < Hendrika/M < Hendrix < Henka/M < Henley --- > Hendrix/M > Henley/M 6836,6837d5418 < Henrie/M < Henrieta/M 6842d5422 < Henryetta/M 6845c5425 < Hepburn --- > Hepburn/M 6848c5428 < Hepplewhite --- > Hepplewhite/M 6851c5431 < Heraclitus --- > Heraclitus/M 6853,6855c5433,5434 < Herb/M < Herbart < Herbert --- > Herbart/M > Herbert/M 6863,6864c5442 < Herculie/M < Herder --- > Herder/M 6866c5444 < Herero --- > Herero/M 6870c5448 < Hermaphroditus --- > Hermaphroditus/M 6873,6874d5450 < Hermie/M < Hermina/M 6878c5454 < Hermitage --- > Hermitage/M 6882d5457 < Hermy/M 6890c5465 < Herrick --- > Herrick/M 6893c5468 < Herschel --- > Herschel/M 6905,6906c5480,5481 < Herzegovina < Herzl --- > Herzegovina/M > Herzl/M 6908,6912c5483,5487 < Hesiod < Hesperus < Hess < Hesse < Hessian --- > Hesiod/M > Hesperus/M > Hess/M > Hesse/M > Hessian/M 6914d5488 < Hesther/M 6917d5490 < Hetti/M 6920,6922c5493 < Hew/M < Hewe/M < Hewet/M --- > Hew's 6924d5494 < Hewie/M 6927,6928c5497,5498 < Heyerdahl < Heywood --- > Heyerdahl/M > Heywood/M 6930c5500 < Hezekiah --- > Hezekiah/M 6933,6934c5503,5504 < Hi/M < Hialeah --- > Hi's > Hialeah/M 6939c5509 < Hickok --- > Hickok/M 6941c5511 < Hieronymus --- > Hieronymus/M 6944c5514 < Highlander/MS --- > Highlander/SM 6948d5517 < Hilarius/M 6950c5519 < Hilbert --- > Hilbert/M 6952,6953d5520 < Hildagard/M < Hildagarde/M 6955,6956c5522 < Hildebrand < Hildegaard/M --- > Hildebrand/M 6960c5526 < Hill --- > Hill/M 6962,6963c5528,5529 < Hillary < Hillel --- > Hillary/M > Hillel/M 6966,6967d5531 < Hilliary/M < Hillie/M 6970c5534 < Hilly/RM --- > Hilly's 6972c5536 < Hilton --- > Hilton/M 6975c5539,5540 < Himmler --- > Himalayas/M > Himmler/M 6977,6980c5542,5544 < Hinda/M < Hindemith < Hindenburg < Hindi --- > Hindemith/M > Hindenburg/M > Hindi/M 6985c5549 < Hines --- > Hines/M 6988c5552 < Hipparchus --- > Hipparchus/M 6990,6991c5554,5555 < Hippocratic < Hiram --- > Hippocratic/M > Hiram/M 6993c5557 < Hirohito --- > Hirohito/M 7000c5564 < Hitchcock --- > Hitchcock/M 7003c5567 < Hmong --- > Hmong/M 7005d5568 < Hobard/M 7007,7009c5570,5571 < Hobbes < Hobbs < Hobey/M --- > Hobbes/M > Hobbs/M 7013,7014c5575,5576 < Hodgkin < Hoebart/M --- > Hodges/M > Hodgkin/M 7020c5582 < Hogarth --- > Hogarth/M 7022,7023c5584,5585 < Hohenlohe < Hohenstaufen --- > Hohenlohe/M > Hohenstaufen/M 7026c5588 < Hohokam --- > Hohokam/M 7028,7029c5590,5591 < Hokusai < Holbein --- > Hokusai/M > Holbein/M 7033c5595 < Holiday --- > Holiday/M 7039d5600 < Holli/SM 7040a5602 > Hollis/M 7042,7043c5604 < Holly < Hollyanne/M --- > Holly/M 7047c5608 < Holocaust --- > Holocaust/M 7049c5610 < Holst --- > Holst/M 7051c5612 < Holt --- > Holt/M 7053,7055c5614 < Homere/M < Homeric < Homerus/M --- > Homeric/M 7061d5619 < Honey/M 7063c5621,5622 < Honiara --- > Hong > Honiara/M 7065c5624 < Honor/B --- > Honorable 7068,7069c5627,5629 < Hood < Hooke/R --- > Hood/M > Hooke/RM > Hooker/M 7074c5634 < Hope --- > Hope/M 7077,7079c5637,5639 < Hopkins < Hopper < Horace --- > Hopkins/M > Hopper/M > Horace/M 7085,7086c5645,5646 < Hormuz < Horn --- > Hormuz/M > Horn/M 7089c5649 < Horowitz --- > Horowitz/M 7091,7092c5651 < Hort/MN < Horten/M --- > Hort/M 7095c5654 < Horthy --- > Horthy/M 7103c5662 < Houdini --- > Houdini/M 7105,7106c5664,5665 < House < Housman --- > House/M > Housman/M 7110,7111c5669,5670 < Howard < Howe --- > Howard/M > Howe/M 7112a5672 > Howells/M 7116c5676 < Hoyle --- > Hoyle/M 7120,7121c5680,5681 < Huang < Hubbard --- > Huang/M > Hubbard/M 7123d5682 < Hube/RM 7126,7128d5684 < Huberto/M < Hubey/M < Hubie/M 7136c5692 < Huggins --- > Huggins/M 7137a5694 > Hughes/M 7139d5695 < Hugibert/M 7143c5699 < Hui --- > Hui/M 7149,7150c5705,5706 < Humboldt < Hume --- > Humboldt/M > Hume/M 7152,7153d5707 < Humfrid/M < Humfried/M 7155,7156c5709,5710 < Humphrey < Humvee --- > Humphrey/SM > Humvee/M 7158,7159c5712 < Hunfredo/M < Hung --- > Hung/M 7163c5716 < Hunt/R --- > Hunt/MR 7166d5718 < Huntlee/M 7168,7170c5720 < Huntsville < Hurlee/M < Hurleigh/M --- > Huntsville/M 7172c5722 < Huron --- > Huron/M 7174c5724 < Hus --- > Hus/M 7176,7180c5726,5730 < Hussein < Husserl < Hussite < Huston < Hutchinson --- > Hussein/M > Husserl/M > Hussite/M > Huston/M > Hutchinson/M 7182c5732 < Hutu --- > Hutu/M 7184c5734 < Huygens --- > Huygens/M 7186,7187d5735 < Hyacinth/M < Hyacintha/M 7189,7190d5736 < Hyacinthia/M < Hyacinthie/M 7193,7194c5739,5740 < Hyde < Hyderabad --- > Hyde/M > Hyderabad/M 7199d5744 < Hynda/M 7202a5748 > Héloise/M 7213a5760 > IDE 7214a5762,5763 > IED > IEEE 7227a5777 > IP 7229c5779 < IPO/MS --- > IPO/SM 7231a5782 > IRC 7234c5785,5787 < ISO --- > ISO/M > ISP > ISS 7237a5791 > IVF 7245,7247c5799 < Ibadan < Ibbie/M < Ibby/M --- > Ibadan/M 7249,7250c5801,5802 < Iberian < Ibiza --- > Iberian/M > Ibiza/M 7252c5804 < Ibo --- > Ibo/M 7262c5814 < Ida --- > Ida/M 7266,7273c5818 < Idalia/M < Idalina/M < Idaline/M < Idell/M < Idelle/M < Idette/M < Ieyasu < Iggie/M --- > Ieyasu/M 7277,7278c5822 < Ignacius/M < Ignatius --- > Ignatius/M 7283d5826 < Ijssel 7287,7290c5830,5831 < Ikhnaton < Ila < Ilaire/M < Ilario/M --- > Ikhnaton/M > Ila/M 7292d5832 < Ileane/M 7295d5834 < Ilise/M 7301c5840 < Illuminati --- > Illuminati/M 7304,7306d5842 < Ilysa/M < Ilyse/M < Ilyssa/M 7315d5850 < Imojean/M 7330a5866 > Indies/M 7333c5869 < Indochinese --- > Indochinese/M 7335,7336c5871,5872 < Indonesian/MS < Indore --- > Indonesian/SM > Indore/M 7340,7342c5876 < Ines < Inesita/M < Inessa/M --- > Ines/M 7345,7350c5879 < Ingaberg/M < Ingaborg/M < Ingamar/M < Ingar/M < Inge/R < Ingeberg/M --- > Inge/RM 7352d5880 < Ingelbert/M 7355d5882 < Inglebert/M 7359d5885 < Ingra/M 7361c5887 < Ingres --- > Ingres/M 7363,7364d5888 < Ingrim/M < Ingunna/M 7372c5896 < Inquisition --- > Inquisition/M 7373a5898 > Instagram/M 7376c5901 < Intelsat --- > Intelsat/M 7378,7379c5903,5904 < Internet/S < Interpol --- > Internet/SM > Interpol/M 7384,7385d5908 < Iolande/M < Iolanthe/M 7387c5910 < Ionesco --- > Ionesco/M 7390,7392d5912 < Iorgo/MS < Iormina/M < Iosep/M 7395c5915 < Iphigenia --- > Iphigenia/M 7398,7399c5918,5919 < Iqbal < Iquitos --- > Iqbal/M > Iquitos/M 7408c5928 < Irene --- > Irene/M 7410c5930 < Iris --- > Iris/M 7413c5933 < Irishmen --- > Irishmen/M 7415,7417c5935,5936 < Irishwomen < Irita/M < Irkutsk --- > Irishwomen/M > Irkutsk/M 7421c5940 < Irrawaddy --- > Irrawaddy/M 7425,7426c5944,5945 < Irvine < Irving --- > Irvine/M > Irving/M 7428d5946 < Irwinn/M 7433,7434c5951 < Isabelita/M < Isabella --- > Isabella/M 7436,7438d5952 < Isac/M < Isacco/M < Isador/M 7441,7442c5955 < Isahella/M < Isaiah --- > Isaiah/M 7444,7447c5957,5959 < Iscariot < Iseabal/M < Isfahan < Isherwood --- > Iscariot/M > Isfahan/M > Isherwood/M 7449c5961 < Ishmael --- > Ishmael/M 7452d5963 < Isiahi/M 7461c5972 < Islamic --- > Islamic/M 7463c5974,5976 < Islamist --- > Islamist/M > Islamophobia > Islamophobic 7467,7468c5980 < Isolde < Ispahan --- > Isolde/M 7472c5984 < Israelite --- > Israelite/M 7474,7477c5986 < Issachar < Issi/M < Issiah/M < Issie/M --- > Issachar/M 7488,7491c5997,5999 < Itch/M < Ithaca < Ithacan < Ito --- > Ithaca/M > Ithacan/M > Ito/M 7493c6001 < Ivan --- > Ivan/M 7498,7499c6006 < Ivett/M < Ivette/M --- > Ives/M 7502d6008 < Ivonne/M 7506c6012 < Ivy --- > Ivy/M 7509,7510d6014 < Izabel/M < Izak/M 7513,7514c6017,6018 < Izhevsk < Izmir --- > Izhevsk/M > Izmir/M 7523c6027 < JPEG/MS --- > JPEG/SM 7526,7527d6029 < Jacenta/M < Jacinda/M 7529,7532c6031 < Jacintha/M < Jacinthe/M < Jack < Jackelyn/M --- > Jack/M 7537,7538d6035 < Jackquelin/M < Jackqueline/M 7540c6037 < Jacksonian --- > Jacksonian/M 7543d6039 < Jaclin/M 7547c6043 < Jacobi --- > Jacobi/M 7550a6047 > Jacobs/M 7552,7553c6049 < Jacquard < Jacquelin/M --- > Jacquard/M 7556,7561c6052 < Jacquelynn/M < Jacquenetta/M < Jacquenette/M < Jacques < Jacquetta/M < Jacquette/M --- > Jacques/M 7564,7565c6055 < Jacuzzi < Jacynth/M --- > Jacuzzi/M 7567d6056 < Jade/M 7574,7576c6063 < Jaimie/M < Jain < Jaine/M --- > Jain/M 7578c6065 < Jaipur --- > Jaipur/M 7581d6067 < Jakie/M 7592,7593c6078 < Jamestown < Jamesy/M --- > Jamestown/M 7598,7599d6082 < Jamill/M < Jamima/M 7601,7602d6083 < Jammal/M < Jammie/M 7606,7608d6086 < Janaya/M < Janaye/M < Jandy/M 7610,7612d6087 < Janean/M < Janeczka/M < Janeen/M 7614,7615d6088 < Janel/M < Janela/M 7617d6089 < Janella/M 7619,7621d6090 < Janene/M < Janenna/M < Janessa/M 7623,7624d6091 < Janeta/M < Janetta/M 7626d6092 < Janeva/M 7628d6093 < Jania/M 7631d6095 < Janifer/M 7636d6099 < Janith/M 7638d6100 < Janka/M 7640,7641d6101 < Jannel/M < Jannelle/M 7644d6103 < Janot/M 7649a6109 > Jap/SM 7653,7660d6112 < Jaquelin/M < Jaquelyn/M < Jaquenetta/M < Jaquenette/M < Jaquith/M < Jarad/M < Jard/M < Jareb/M 7662,7665c6114 < Jarib/M < Jarid/M < Jarlsberg < Jarrad/M --- > Jarlsberg/M 7669d6117 < Jarrid/M 7673d6120 < Jasen/M 7675d6121 < Jasmina/M 7679,7680c6125 < Jasun/M < Jataka --- > Jataka/M 7685,7686c6130,6131 < Jaxartes < Jay --- > Jaxartes/M > Jay/M 7689c6134,6135 < Jaycee/S --- > Jaycee/MS > Jaycees/M 7692,7693d6137 < Jaymee/M < Jaymie/M 7695d6138 < Jaynell/M 7697,7698d6139 < Jazmin/M < Jdavie/M 7702d6142 < Jeanelle/M 7706d6145 < Jeanna/M 7711d6149 < Jecho/M 7713,7714d6150 < Jedd/M < Jeddy/M 7718c6154 < Jeep --- > Jeep/M 7723c6159 < Jeffersonian --- > Jeffersonian/M 7725,7726c6161 < Jeffie/M < Jeffrey --- > Jeffrey/M 7728,7730c6163 < Jeffy/M < Jehanna/M < Jehoshaphat --- > Jehoshaphat/M 7734,7735d6166 < Jelene/M < Jemie/M 7737,7738d6167 < Jemimah/M < Jemmie/M 7742,7746d6170 < Jenda/M < Jenelle/M < Jeni/M < Jenica/M < Jeniece/M 7748,7751c6172 < Jeniffer/M < Jenilee/M < Jenine/M < Jenkins --- > Jenkins/M 7754,7755c6175 < Jennee/M < Jennette/M --- > Jenner/M 7757d6176 < Jennica/M 7760,7761d6178 < Jennilee/M < Jennine/M 7766,7767c6183 < Jephthah < Jerad/M --- > Jephthah/M 7769,7771d6184 < Jeralee/M < Jeramey/M < Jeramie/M 7773d6185 < Jereme/M 7781d6192 < Jermain/M 7783,7784c6194 < Jermayne/M < Jeroboam --- > Jeroboam/M 7786,7787c6196 < Jerome < Jeromy/M --- > Jerome/M 7790,7792d6198 < Jerrilee/M < Jerrilyn/M < Jerrine/M 7795d6200 < Jerrome/M 7797d6201 < Jerrylee/M 7802,7804d6205 < Jessa/M < Jessalin/M < Jessalyn/M 7807,7809c6208 < Jesse < Jessee/M < Jesselyn/M --- > Jesse/M 7814d6212 < Jessika/M 7817,7818c6215 < Jesus < Jeth/M --- > Jesus/M 7820c6217 < Jetway --- > Jetway/M 7824d6220 < Jewelle/M 7826,7827c6222,6223 < Jewish/P < Jewry --- > Jewish/PM > Jewry/M 7829,7837c6225,6227 < Jidda < Jilin < Jill < Jillana/M < Jillane/M < Jillayne/M < Jilleen/M < Jillene/M < Jilli/M --- > Jidda/M > Jilin/M > Jill/M 7839d6228 < Jillie/M 7845,7846c6234,6235 < Jinan < Jinnah --- > Jinan/M > Jinnah/M 7848c6237 < Jivaro --- > Jivaro/M 7851c6240 < Joan --- > Joan/M 7860,7863c6249 < Jobey/M < Jobi/M < Jobie/M < Jobina/M --- > Jobs/M 7865,7867c6251 < Jobye/M < Jobyna/M < Jocasta --- > Jocasta/M 7869d6252 < Joceline/M 7872,7873c6255,6256 < Jock < Jockey --- > Jock/M > Jockey/M 7875d6257 < Jodee/M 7879,7885c6261,6262 < Joe < Joeann/M < Joel/Y < Joela/M < Joelie/M < Joell/MN < Joella/M --- > Joe/M > Joel/M 7887,7892d6263 < Joellen/M < Joelly/M < Joellyn/M < Joelynn/M < Joesph/M < Joete/M 7898,7899c6269 < Johannah/M < Johannes --- > Johannes/M 7902,7903d6271 < Johna/MH < Johnath/M 7906d6273 < Johnette/M 7908,7909c6275 < Johnna/M < Johnnie --- > Johnnie/M 7910a6277 > Johns/M 7913,7914d6279 < Johny/M < Joice/M 7916,7917d6280 < Jolee/M < Joleen/M 7919d6281 < Joletta/M 7922,7924c6284,6285 < Joliet < Joline/M < Jolson --- > Joliet/M > Jolson/M 7926,7927d6286 < Jolyn/M < Jolynn/M 7931c6290 < Jonas --- > Jonas/M 7935,7940c6294,6297 < Jonell/M < Joni/SM < Jonie/M < Jonson < Joplin < Jordain/M --- > Jones/M > Joni/M > Jonson/M > Joplin/M 7944d6300 < Jordanna/M 7946,7947d6301 < Jorey/M < Jorgan/M 7950,7952d6303 < Jorie/M < Jorrie/M < Jorry/M 7956d6306 < Josee/M 7960d6309 < Joseito/M 7963,7964c6312 < Josephina/M < Josephine --- > Josephine/M 7967c6315 < Josephus --- > Josephus/M 7969,7970c6317 < Josh < Joshia/M --- > Josh/M 7972,7974c6319 < Joshuah/M < Josi/M < Josiah --- > Josiah/M 7979,7980c6324 < Josy/M < Joule --- > Joule/M 7984c6328 < Jovian --- > Jovian/M 7987,7991c6331,6332 < Joyan/M < Joyann/M < Joyce < Joycean < Joycelin/M --- > Joyce/M > Joycean/M 7997d6337 < Jsandye/M 8002c6342 < Jubal --- > Jubal/M 8004c6344,6345 < Judah --- > Judaeo > Judah/M 8010,8011c6351,6352 < Jude < Judea --- > Jude/M > Judea/M 8014d6354 < Judie/M 8016,8017d6355 < Juditha/M < Judon/M 8019,8020c6357 < Judy < Judye/M --- > Judy/M 8022d6358 < Juieta/M 8025c6361 < Julee/M --- > Jules/M 8028,8029c6364,6365 < Julian < Juliana --- > Julian/M > Juliana/M 8031d6366 < Juliann/M 8035,8038c6370,6371 < Julienne/M < Juliet < Julieta/M < Julietta/M --- > Julienne's > Juliet/M 8040,8041d6372 < Julina/M < Juline/M 8043,8044d6373 < Julissa/M < Julita/M 8048c6377 < Jun --- > Jun/M 8051d6379 < Junette/M 8053,8054c6381,6382 < Jungfrau < Jungian --- > Jungfrau/M > Jungian/M 8057d6384 < Junina/M 8064d6390 < Justen/M 8070,8072d6395 < Justinn/M < Justino/M < Justis/M 8075c6398 < Juvenal --- > Juvenal/M 8081c6404 < KGB --- > KGB/M 8088c6411 < Kaaba --- > Kaaba/M 8090,8093d6412 < Kacey/M < Kacie/M < Kacy/M < Kaela/M 8095,8097c6414,6415 < Kafkaesque < Kagoshima < Kahaleel/M --- > Kafkaesque/M > Kagoshima/M 8102c6420 < Kaifeng --- > Kaifeng/M 8104,8105d6421 < Kaile/M < Kailey/M 8111d6426 < Kaitlynn/M 8113d6427 < Kakalina/M 8116,8117c6430,6431 < Kalamazoo < Kalashnikov --- > Kalamazoo/M > Kalashnikov/M 8119,8123c6433,6434 < Kale/M < Kaleb/M < Kaleena/M < Kalevala < Kalgoorlie --- > Kalevala/M > Kalgoorlie/M 8125d6435 < Kalie/M 8127d6436 < Kalila/M 8129,8130d6437 < Kalinda/M < Kalindi/M 8132,8135c6439 < Kalli/M < Kally/M < Kalmyk < Kalvin/M --- > Kalmyk/M 8137c6441 < Kamchatka --- > Kamchatka/M 8139,8142d6442 < Kameko/M < Kamila/M < Kamilah/M < Kamillah/M 8145c6445 < Kan/S --- > Kan/SM 8147,8149c6447,6448 < Kandace/M < Kandahar < Kandinsky --- > Kandahar/M > Kandinsky/M 8154,8155c6453,6454 < Kano < Kanpur --- > Kano/M > Kanpur/M 8157c6456 < Kansas --- > Kansas/M 8159c6458 < Kantian --- > Kantian/M 8161c6460 < Kaohsiung --- > Kaohsiung/M 8165,8168c6464,6465 < Karaganda < Karakorum < Karalee/M < Karalynn/M --- > Karaganda/M > Karakorum/M 8171d6467 < Karee/M 8175d6470 < Karena/M 8178,8181d6472 < Karia/M < Karie/M < Karil/M < Karilynn/M 8186,8190c6477 < Kariotta/M < Karisa/M < Karissa/M < Karita/M < Karl/MNX --- > Karl/MN 8192,8194d6478 < Karlan/M < Karlee/M < Karleen/M 8196,8199d6479 < Karlene/M < Karlie/M < Karlik/M < Karlis 8201,8202d6480 < Karlotta/M < Karlotte/M 8204,8205d6481 < Karlyn/M < Karmen/M 8208d6483 < Karney/M 8211,8212d6485 < Karola/M < Karole/M 8217,8218d6489 < Karrah/M < Karrie/M 8220,8223d6490 < Karry/M < Kary/M < Karyl/M < Karylin/M 8233,8236d6499 < Kassey/M < Kassi/M < Kassia/M < Kassie/M 8241d6503 < Katee/M 8244,8245d6505 < Katerine/M < Katey/M 8250d6509 < Katharyn/M 8256c6515 < Kathiawar --- > Kathiawar/M 8259d6517 < Kathlin/M 8263d6520 < Kathryne/M 8265d6521 < Kathye/M 8269d6524 < Katine/M 8271,8273c6526 < Katleen/M < Katlin/M < Katmai --- > Katmai/M 8275c6528 < Katowice --- > Katowice/M 8279,8282d6531 < Katti/M < Kattie/M < Katuscha/M < Katusha/M 8290,8291c6539,6540 < Kawasaki < Kay --- > Kawasaki/M > Kay/M 8295d6543 < Kayle/M 8297,8299d6544 < Kayley/M < Kaylil/M < Kaylyn/M 8305c6550 < Kazantzakis --- > Kazantzakis/M 8310d6554 < Keary/M 8312c6556 < Keats --- > Keats/M 8316d6559 < Keelby/M 8318d6560 < Keelia/M 8320d6561 < Keen/M 8323c6564 < Keewatin --- > Keewatin/M 8328,8336d6568 < Kelbee/M < Kelby/M < Kelcey/M < Kelci/M < Kelcie/M < Kelcy/M < Kele/M < Kelila/M < Kellby/M 8338c6570 < Keller --- > Keller/M 8341d6572 < Kellia/M 8343,8347c6574,6575 < Kellina/M < Kellogg < Kellsie/M < Kelly < Kellyann/M --- > Kellogg/M > Kelly/M 8349,8354c6577,6578 < Kelsi/M < Kelsy/M < Kelt/SM < Kelvin < Kelwin/M < Kemerovo --- > Kelvin/M > Kemerovo/M 8356c6580,6581 < Kempis --- > Kempis/M > Ken/M 8361d6585 < Kendre/M 8370d6593 < Kennie/M 8373d6595 < Kenon/M 8376c6598 < Kentuckian/SM --- > Kentuckian/MS 8380c6602 < Kenyatta --- > Kenyatta/M 8390,8391d6611 < Keriann/M < Kerianne/M 8393d6612 < Kermie/M 8395,8398c6614,6616 < Kermy/M < Kern < Kerouac < Kerr --- > Kern/M > Kerouac/M > Kerr/M 8401,8403c6619 < Kerrill/M < Kerrin/M < Kerry --- > Kerry/M 8406,8414c6622 < Kerwinn/M < Kesley/M < Keslie/M < Kessia/M < Kessiah/M < Kettering < Ketti/M < Kettie/M < Ketty/M --- > Kettering/M 8419,8421c6627 < Kevina/M < Kevlar < Kevon/M --- > Kevlar/M 8423,8425c6629,6630 < Kevyn/M < Kewpie < Key --- > Kewpie/M > Key/M 8427,8429c6632,6634 < Keynesian < Khabarovsk < Khachaturian --- > Keynesian/M > Khabarovsk/M > Khachaturian/M 8442,8443c6647,6648 < Khrushchev < Khufu --- > Khrushchev/M > Khufu/M 8448,8450c6653 < Kiah/M < Kial/M < Kickapoo --- > Kickapoo/M 8452,8456c6655,6656 < Kiel < Kiele/M < Kienan/M < Kierkegaard < Kiersten/M --- > Kiel/M > Kierkegaard/M 8460,8463c6660,6661 < Kijiji/M < Kikelia/M < Kikuyu < Kilauea --- > Kikuyu/M > Kilauea/M 8469,8470d6666 < Killie/M < Killy/M 8475,8477c6671 < Kimberlee/M < Kimberley < Kimberli/M --- > Kimberley/M 8479d6672 < Kimberlyn/M 8481,8483d6673 < Kimbra/M < Kimmi/M < Kimmie/M 8485d6674 < Kin/M 8489d6677 < Kingsly/M 8493d6680 < Kinna/M 8495,8497c6682 < Kinnie/M < Kinny/M < Kinsey --- > Kinsey/M 8503,8507c6688 < Kipp/MR < Kippar/M < Kipper/M < Kippie/M < Kippy/M --- > Kipp/M 8509,8510d6689 < Kirbee/M < Kirbie/M 8512c6691 < Kirchhoff --- > Kirchhoff/M 8520c6699 < Kirk --- > Kirk/M 8523c6702 < Kirov --- > Kirov/M 8525,8529c6704 < Kirsteni/M < Kirsti/M < Kirstin/M < Kirstyn/M < Kisangani --- > Kisangani/M 8532,8535c6707 < Kissee/M < Kissiah/M < Kissie/M < Kissinger --- > Kissinger/M 8538,8540c6710 < Kitchener < Kitti/M < Kittie/M --- > Kitchener/M 8543,8545c6713 < Kiwanis < Kizzee/M < Kizzie/M --- > Kiwanis/M 8549,8550d6716 < Klarika/M < Klarrisa/M 8552c6718 < Klee --- > Klee/M 8557,8560c6723,6724 < Kleon/M < Kliment/M < Klimt < Kline --- > Klimt/M > Kline/M 8567c6731 < Knickerbocker --- > Knickerbocker/M 8569c6733 < Knight --- > Knight/M 8571,8574c6735,6738 < Knossos < Knowles < Knox < Knoxville --- > Knossos/M > Knowles/M > Knox/M > Knoxville/M 8578,8579c6742,6743 < Kobe < Koch --- > Kobe/M > Koch/M 8582c6746 < Kodak --- > Kodak/M 8585,8588c6749,6751 < Koenraad/M < Koestler < Kohinoor < Kohl --- > Koestler/M > Kohinoor/M > Kohl/M 8591,8592c6754 < Koln/M < Kolyma --- > Kolyma/M 8597d6758 < Konstance/M 8599,8600d6759 < Konstantine/M < Konstanze/M 8605,8606d6763 < Koral/M < Koralle/M 8609d6765 < Kordula/M 8613d6768 < Korella/M 8615,8616d6769 < Koressa/M < Korey/M 8618d6770 < Korie/M 8620,8622d6771 < Korney/M < Korrie/M < Korry/M 8625,8626c6774,6775 < Korzybski < Kosciusko --- > Korzybski/M > Kosciusko/M 8628,8629c6777,6778 < Kossuth < Kosygin --- > Kossuth/M > Kosygin/M 8631c6780 < Kowloon --- > Kowloon/M 8638,8641c6787,6790 < Krasnodar < Krasnoyarsk < Krebs < Kremlin --- > Krasnodar/M > Krasnoyarsk/M > Krebs/M > Kremlin/M 8647d6795 < Krisha/M 8649d6796 < Krishnah/M 8651,8653d6797 < Krispin/M < Krissie/M < Krissy/M 8655,8658d6798 < Kristal/M < Kristan/M < Kriste/M < Kristel/M 8660c6800 < Kristi/MN --- > Kristi/M 8663d6802 < Kristien/M 8667,8671d6805 < Kristo/SM < Kristofer/M < Kristoffer/M < Kristofor/M < Kristoforo/M 8674d6807 < Kristyn/M 8678,8682c6811,6814 < Kropotkin < Kruger < Krugerrand < Krupp < Krysta/M --- > Kropotkin/M > Kruger/M > Krugerrand/M > Krupp/M 8684,8685d6815 < Krystalle/M < Krystle/M 8690c6820 < Kubrick --- > Kubrick/M 8692c6822 < Kuibyshev --- > Kuibyshev/M 8694,8696c6824,6826 < Kunming < Kuomintang < Kurd --- > Kunming/M > Kuomintang/M > Kurd/M 8698,8700c6828,6829 < Kurdistan < Kurile < Kurosawa --- > Kurdistan/M > Kurosawa/M 8704c6833 < Kutuzov --- > Kutuzov/M 8712,8713c6841 < Kwangju < Kwanza/MS --- > Kwangju/M 8715c6843 < Ky/H --- > Ky/MH 8718d6845 < Kylen/M 8720,8721d6846 < Kylila/M < Kylynn/M 8723d6847 < Kynthia/M 8725,8726c6849 < Kyrgyzstan < Kyrstin/M --- > Kyrgyzstan/M 8728c6851 < L'Amour --- > L'Amour/M 8730,8731c6853,6854 < L'Oreal < L'Ouverture --- > L'Oreal/M > L'Ouverture/M 8741a6865 > LGBT 8754c6878 < La/M --- > La/SM 8756c6880 < Laban --- > Laban/M 8760d6883 < Lacee/M 8763d6885 < Lacie/M 8765c6887 < Ladoga --- > Ladoga/M 8767c6889 < Lady --- > Lady/M 8770c6892 < Lafayette --- > Lafayette/M 8773,8776c6895,6897 < Lagrange < Lagrangian < Lahore < Laina/M --- > Lagrange/M > Lagrangian/M > Lahore/M 8778,8779c6899 < Laird/M < Laius --- > Laius/M 8785c6905 < Lakota --- > Lakota/M 8791,8793c6911,6913 < Lamaze < Lamb < Lambert --- > Lamaze/M > Lamb/M > Lambert/M 8795c6915 < Lambrusco --- > Lambrusco/M 8797d6916 < Lammond/M 8801d6919 < Lanae/M 8803c6921 < Lancashire --- > Lancashire/M 8807c6925 < Land --- > Land/M 8810c6928 < Landsat --- > Landsat/M 8813d6930 < Lanette/M 8815c6932 < Lang --- > Lang/M 8817,8820c6934,6936 < Langland < Langley < Langmuir < Langsdon/M --- > Langland/M > Langley/M > Langmuir/M 8824d6939 < Lanita/M 8825a6941 > Lankan/M 8827,8828d6942 < Lanni/M < Lannie/M 8833a6948 > Laos/M 8835c6950 < Laplace --- > Laplace/M 8839d6953 < Laraine/M 8842c6956 < Laredo --- > Laredo/M 8844,8845d6957 < Larina/M < Larine/M 8848,8849c6960 < Lark/M < Larousse --- > Larousse/M 8851c6962 < Lars/N --- > Lars/MN 8854d6964 < Laryssa/M 8859c6969 < Lat --- > Lat/M 8861d6970 < Latashia/M 8863c6972 < Latia/M --- > Latham/M 8870,8871d6978 < Latrena/M < Latrina/M 8875,8876c6982,6984 < Laud/R < Laue --- > Laud/MR > Lauder/M > Laue/M 8879c6987 < Laundromat --- > Laundromat/M 8881,8883d6988 < Lauraine/M < Laural/M < Lauralee/M 8886,8887d6990 < Lauree/M < Laureen/M 8889d6991 < Laurella/M 8891d6992 < Laurena/M 8893d6993 < Laurene/M 8898,8899d6997 < Laurianne/M < Laurice/M 8901d6998 < Lauritz/M 8903,8904c7000 < Laval < Lavena/M --- > Laval/M 8906d7001 < Laverna/M 8910,8911c7005 < Lavinie/M < Lavoisier --- > Lavoisier/M 8913d7006 < Law 8915c7008 < Lawrence --- > Lawrence/M 8917c7010 < Lawson --- > Lawson/M 8919,8920c7012 < Lay/M < Layamon --- > Layamon/M 8923d7014 < Layney/M 8929c7020 < Le/SMN --- > Le/SM 8932,8933c7023,7024 < Leadbelly < Leah --- > Leadbelly/M > Leah/M 8936c7027 < Leander --- > Leander/M 8941,8942d7031 < Leanor/M < Leanora/M 8946c7035 < Leavenworth --- > Leavenworth/M 8949d7037 < Lebbie/M 8952c7040 < Leda --- > Leda/M 8955,8956d7042 < Leeann/M < Leeanne/M 8959,8960d7044 < Leelah/M < Leeland/M 8962d7045 < Leesa/M 8964c7047 < Leeuwenhoek --- > Leeuwenhoek/M 8967,8968c7050 < Lefty/M < Legendre --- > Legendre/M 8970c7052 < Leghorn --- > Leghorn/M 8972d7053 < Legra/M 8981,8982c7062 < Leigh < Leigha/M --- > Leigh/M 8985d7064 < Leilah/M 8987d7065 < Leisha/M 8990d7067 < Lelah/M 8995,8997d7071 < Lemar/M < Lemmie/M < Lemmy/M 9003,9005d7076 < Lenci/M < Lenee/M < Lenette/M 9009,9011c7080 < Leninist < Lenka/M < Lenna/M --- > Leninist/M 9020a7090 > Lenten/M 9022,9023d7091 < Leodora/M < Leoine/M 9025,9026c7093 < Leoline/M < Leon --- > Leon/M 9028d7094 < Leonanie/M 9031c7097 < Leoncavallo --- > Leoncavallo/M 9034,9035d7099 < Leonelle/M < Leonerd/M 9037c7101 < Leonid --- > Leonid/M 9044d7107 < Leontyne/M 9048c7111 < Lepidus --- > Lepidus/M 9051c7114 < Lerner --- > Lerner/M 9053a7117 > Les/M 9055d7118 < Leshia/M 9057d7119 < Lesli/M 9059d7120 < Lesly/M 9061c7122 < Lesseps --- > Lesseps/M 9065d7125 < Lesya/M 9069d7128 < Lethia/M 9071d7129 < Letisha/M 9074d7131 < Letta/M 9076d7132 < Letti/M 9079d7134 < Leupold/M 9085c7140 < Leviathan --- > Leviathan/M 9094d7148 < Lewie/M 9096,9098c7150,7151 < Lewis < Lewiss < Lexi/SM --- > Lewis/M > Lexi/M 9100d7152 < Lexine/M 9103d7154 < Lexmark/M 9107,9108d7157 < Lezley/M < Lezlie/M 9117d7165 < Lianna/M 9119d7166 < Lib 9121d7167 < Libbi/M 9123c7169 < Libby --- > Libby/M 9127a7174 > LibreOffice/M 9132,9133c7179 < Licha/M < Lichtenstein --- > Lichtenstein/M 9136c7182 < Lie --- > Lie/M 9138c7184 < Liebfraumilch --- > Liebfraumilch/M 9141c7187 < Lief/M --- > Lief's 9143d7188 < Liesa/M 9147c7192 < Lila/SM --- > Lila/M 9154c7199 < Liliuokalani --- > Liliuokalani/M 9156,9157c7201,7202 < Lille < Lilli/MS --- > Lille/M > Lilli/M 9161,9162c7206 < Lilliputian/SM < Lilllie/M --- > Lilliputian/MS 9166d7209 < Lilyan/M 9170,9171c7213,7214 < Limburger < Limoges --- > Limburger/M > Limoges/M 9179c7222 < Lind --- > Lind/M 9181c7224 < Lindbergh --- > Lindbergh/M 9183d7225 < Lindie/M 9185,9188c7227,7229 < Lindsay < Lindsey < Lindsy/M < Lindy --- > Lindsay/M > Lindsey/M > Lindy/M 9190,9193d7230 < Linell/M < Linet/M < Linette/M < Link/M 9199,9202c7236 < Linnet/M < Linnie/M < Linoel/M < Linotype --- > Linotype/M 9205c7239 < Linux/S --- > Linux/MS 9207d7240 < Linzy/M 9209,9212c7242,7244 < Lionello/M < Lipizzaner < Lippi < Lippmann --- > Lipizzaner/M > Lippi/M > Lippmann/M 9215d7246 < Lira/M 9217d7247 < Lisabeth/M 9221d7250 < Lisetta/M 9223,9224d7251 < Lisha/M < Lishe/M 9228,9229d7254 < Lissi/M < Lissie/M 9234c7259 < Liszt --- > Liszt/M 9240d7264 < Liuka/M 9242d7265 < Liva/M 9245c7268 < Liverpudlian/MS --- > Liverpudlian/SM 9247,9248c7270,7271 < Livingston < Livingstone --- > Livingston/M > Livingstone/M 9250d7272 < Livvie/M 9252,9253c7274 < Livvyy/M < Livy --- > Livy/M 9262,9264c7283,7284 < Llewellyn < Lloyd < Llywellyn/M --- > Llewellyn/M > Lloyd/M 9267,9269c7287,7288 < Lobachevsky < Lochinvar < Lock/M --- > Lobachevsky/M > Lochinvar/M 9271c7290 < Lockean --- > Lockean/M 9274c7293 < Lodge --- > Lodge/M 9277,9279c7296,7297 < Loella/M < Loewe < Loewi --- > Loewe/M > Loewi/M 9283c7301 < Lohengrin --- > Lohengrin/M 9286d7303 < Loise/M 9289,9291c7306,7307 < Loleta/M < Lolita < Lollard --- > Lolita/M > Lollard/M 9293c7309 < Lolly/M --- > Lolly's 9302,9303c7318 < Lonee/M < Long --- > Long/M 9308,9310d7322 < Lonna/M < Lonnard/M < Lonni/M 9318,9320d7329 < Loralee/M < Loralie/M < Loralyn/M 9324,9325d7332 < Loree/M < Loreen/M 9327,9328c7334 < Lorelle/M < Loren/S --- > Loren/M 9331,9332c7337,7338 < Lorentz < Lorenz --- > Lorentz/M > Lorenz/M 9339,9340d7344 < Lorianna/M < Lorianne/M 9342,9343d7345 < Lorilee/M < Lorilyn/M 9346,9347d7347 < Lorine/M < Lorita/M 9351d7350 < Lorrayne/M 9353d7351 < Lorri/M 9355,9356d7352 < Lorrin/M < Lorry/M 9357a7354 > Los 9359d7355 < Lothaire/M 9370c7366 < Louis --- > Louis/M 9373d7368 < Louisette/M 9378,9379c7373 < Lourdes < Loutitia/M --- > Lourdes/M 9383c7377 < Lovelace --- > Lovelace/M 9386c7380 < Lowell --- > Lowell/M 9390d7383 < Lowrance/M 9394,9395c7387 < Loydie/M < Loyola --- > Loyola/M 9402,9404c7394,7396 < Lubavitcher < Lubbock < Lubumbashi --- > Lubavitcher/M > Lubbock/M > Lubumbashi/M 9406c7398 < Lucais/M --- > Lucas/M 9408d7399 < Lucho/M 9410,9411c7401,7402 < Lucia/MS < Lucian --- > Lucia/M > Lucian/M 9418d7408 < Lucila/M 9420d7409 < Lucilia/M 9424d7412 < Lucine/M 9426d7413 < Lucita/M 9430,9432c7417,7419 < Lucky/M < Lucretia < Lucretius --- > Lucky's > Lucretia/M > Lucretius/M 9435c7422 < Ludhiana --- > Ludhiana/M 9437d7423 < Ludovika/M 9441d7426 < Luelle/M 9443c7428 < Luftwaffe --- > Luftwaffe/M 9453,9454c7438 < Lulita/M < Lully --- > Lully/M 9456a7441 > Lumière/M 9459c7444 < Lupercalia --- > Lupercalia/M 9462d7446 < Lurette/M 9464,9467d7447 < Lurleen/M < Lurlene/M < Lurline/M < Lusa/M 9470d7449 < Lutero/M 9478d7456 < Luxemburg/M 9481c7459 < Lvov --- > Lvov/M 9486,9487c7464,7465 < Lycra < Lycurgus --- > Lycra/M > Lycurgus/M 9489c7467 < Lydia --- > Lydia/M 9493c7471 < Lyell --- > Lyell/M 9495c7473 < Lyly --- > Lyly/M 9499c7477 < Lynch --- > Lynch/M 9502,9503d7479 < Lyndel/M < Lyndell/M 9507,9511d7482 < Lyndsie/M < Lyndy/M < Lynea/M < Lynelle/M < Lynett/M 9513,9514c7484 < Lynn < Lynna/M --- > Lynn/M 9516,9520d7485 < Lynnea/M < Lynnell/M < Lynnelle/M < Lynnet/M < Lynnett/M 9522d7486 < Lynsey/M 9523a7488 > Lyons/M 9525c7490 < Lysenko --- > Lysenko/M 9547d7511 < MIPSes 9552a7517 > MOOC 9554c7519 < MPEG/MS --- > MPEG/SM 9561c7526 < MTV --- > MTV/M 9567d7531 < Mabelle/M 9569,9570c7533,7534 < Mac < MacArthur --- > Mac/M > MacArthur/M 9572c7536 < MacDonald --- > MacDonald/M 9576,9577c7540,7541 < Macaulay < Macbeth --- > Macaulay/M > Macbeth/M 9580c7544 < Mace --- > Mace/M 9584c7548 < Mach --- > Mach/M 9586c7550 < Machiavellian --- > Machiavellian/M 9592,9594c7556,7558 < Mackinaw < Macmillan < Macon --- > Mackinaw/M > Macmillan/M > Macon/M 9601d7564 < Madalena/M 9610d7572 < Madel/M 9613,9616d7574 < Madelena/M < Madelene/M < Madelin/M < Madelina/M 9618,9619d7575 < Madella/M < Madelle/M 9624,9625d7579 < Madlen/M < Madlin/M 9630d7583 < Mady/M 9632d7584 < Maegan/M 9635,9636c7587 < Mafioso < Mag/M --- > Mafioso/M 9638d7588 < Magdaia/M 9640c7590 < Magdalena --- > Magdalena/M 9643,9644c7593 < Magellanic < Maggee/M --- > Magellanic/M 9651,9653c7600,7601 < Magnitogorsk < Magnum < Magog --- > Magnitogorsk/M > Magog/M 9655c7603 < Magritte --- > Magritte/M 9666c7614 < Mahdi --- > Mahdi/M 9669c7617 < Mahler --- > Mahler/M 9672d7619 < Mahomet/M 9675d7621 < Maible/M 9677,9678d7622 < Maiga/M < Maighdiln/M 9680,9681c7624,7625 < Mailer < Maillol --- > Mailer/M > Maillol/M 9683c7627 < Maimonides --- > Maimonides/M 9688d7631 < Maisey/M 9691d7633 < Maitilde/M 9694d7635 < Maje/M 9696c7637 < Major --- > Major/M 9698c7639 < Majuro --- > Majuro/M 9700c7641 < Maker --- > Maker/M 9705,9709c7646,7649 < Malacca < Malachi < Malagasy < Malamud < Malanie/M --- > Malacca/M > Malachi/M > Malagasy/M > Malamud/M 9719,9720c7659 < Malchy/M < Malcolm --- > Malcolm/M 9726,9727c7665 < Malena/M < Mali --- > Mali/M 9733,9734c7671 < Malinde/M < Malinowski --- > Malinowski/M 9736,9738c7673,7674 < Malissia/M < Mallarme < Mallissa/M --- > Mallarme/M > Mallarmé/M 9740d7675 < Mallorie/M 9743d7677 < Malorie/M 9746c7680 < Malraux --- > Malraux/M 9754d7687 < Malynda/M 9756,9757c7689,7690 < Mameluke < Mamet --- > Mameluke/M > Mamet/M 9764,9765c7697 < Manasseh < Manaus --- > Manasseh/M 9769c7701 < Manchurian --- > Manchurian/M 9776,9777c7708,7709 < Mandela < Mandelbrot --- > Mandela/M > Mandelbrot/M 9780c7712 < Mandingo --- > Mandingo/M 9782d7713 < Mandriva/M 9784c7715 < Manet --- > Manet/M 9787,9788c7718,7719 < Mani < Manichean --- > Mani/M > Manichean/M 9793c7724 < Mann/G --- > Mann/GM 9795a7727 > Manning/M 9800c7732 < Mansfield --- > Mansfield/M 9802c7734 < Mantegna --- > Mantegna/M 9817,9819c7749,7750 < Marabel/M < Maracaibo < Marat --- > Maracaibo/M > Marat/M 9823,9824c7754,7755 < Marc < Marceau --- > Marc/M > Marceau/M 9827d7757 < Marcelia/M 9831,9832d7760 < Marcellina/M < Marcelline/M 9837,9838d7764 < Marchall/M < Marchelle/M 9841c7767 < Marciano --- > Marciano/M 9843,9844d7768 < Marcile/M < Marcille/M 9846c7770,7771 < Marconi --- > Marconi/M > Marcos/M 9851d7775 < Mareah/M 9853,9854d7776 < Marena/M < Maressa/M 9857,9858c7779 < Margalo/M < Margaret --- > Margaret/M 9864,9865c7785 < Margarette/M < Margarita --- > Margarita/M 9869d7788 < Margeaux/M 9872,9873d7790 < Margette/M < Margi/M 9885c7802 < Marian --- > Marian/M 9887c7804 < Mariann/M --- > Marianas/M 9889c7806 < Marianne --- > Marianne/M 9892d7808 < Maribelle/M 9894d7809 < Marice/M 9896d7810 < Maridel/M 9898,9899d7811 < Marieann/M < Mariejeanne/M 9901d7812 < Mariele/M 9903d7813 < Mariellen/M 9906,9908d7815 < Marigold/M < Marijn/M < Marijo/M 9911,9912d7817 < Marilin/M < Marillin/M 9914c7819 < Marin --- > Marin/M 9917d7821 < Marinna/M 9920c7824 < Mariquilla/M --- > Maris/M 9926,9927c7830 < Maritain < Maritsa --- > Maritain/M 9930,9931c7833 < Marius < Mariya/M --- > Marius/M 9934,9936d7835 < Marje/M < Marji/M < Marjie/M 9939d7837 < Marjy/M 9942,9943c7840 < Marketa/M < Markham --- > Markham/M 9945c7842,7843 < Markov --- > Markov/M > Marks/M 9948d7845 < Marlane/M 9950,9951c7847 < Marlborough < Marleah/M --- > Marlborough/M 9957,9958c7853 < Marlie/M < Marlin --- > Marlin/M 9963,9964c7858 < Marlowe < Marlyn/M --- > Marlowe/M 9967,9968c7861 < Marna/M < Marne --- > Marne/M 9971d7863 < Marnia/M 9973c7865 < Maronite --- > Maronite/M 9976c7868 < Marquette --- > Marquette/M 9978c7870 < Marquis --- > Marquis/M 9981d7872 < Marrilee/M 9984d7874 < Marrissa/M 9988c7878 < Marseille/S --- > Marseilles/M 9991d7880 < Marshal/M 9993,9994d7881 < Marsiella/M < Mart/MN 9996,10001c7883,7884 < Martainn/M < Martel < Martelle/M < Marten/M < Martguerita/M < Martha --- > Martel/M > Martha/M 10003d7885 < Marthena/M 10005c7887 < Martial --- > Martial/M 10007d7888 < Martica/M 10009c7890 < Martin --- > Martin/M 10014d7894 < Martita/M 10017,10018c7897 < Martynne/M < Marv/MN --- > Marv/M 10020d7898 < Marve/M 10022,10024c7900 < Marven/M < Marvin < Marwin/M --- > Marvin/M 10032d7907 < Maryanna/M 10034d7908 < Marybelle/M 10037,10039d7910 < Maryjane/M < Maryjo/M < Maryl/M 10041c7912 < Marylee/M --- > Marylander/M 10043d7913 < Marylinda/M 10045,10046d7914 < Marylynne/M < Maryrose/M 10048d7915 < Marysa/M 10051,10053c7918,7920 < Masaryk < Mascagni < Masefield --- > Masaryk/M > Mascagni/M > Masefield/M 10059c7926 < Masonic --- > Masonic/M 10062,10065c7929,7932 < Massachusetts < Massasoit < Massenet < Massey --- > Massachusetts/M > Massasoit/M > Massenet/M > Massey/M 10069a7937 > Masters/M 10071d7938 < Matelda/M 10074a7942 > Mather/M 10075a7944 > Mathews/M 10077,10078c7946 < Mathian/M < Mathias --- > Mathias/M 10081c7949 < Mathis --- > Mathis/M 10083c7951 < Matilda --- > Matilda/M 10085,10086c7953,7954 < Matisse < Matt --- > Matisse/M > Matt/M 10090,10091d7957 < Matthaeus/M < Mattheus/M 10093c7959,7960 < Matthias --- > Matthews/M > Matthias/M 10095,10096d7961 < Matthiew/M < Matthus/M 10104c7969 < Maugham --- > Maugham/M 10106c7971 < Maupassant --- > Maupassant/M 10108d7972 < Maure/M 10110,10113c7974,7975 < Maureene/M < Maurene/M < Mauriac < Maurice --- > Mauriac/M > Maurice/M 10117,10118d7978 < Maurise/M < Maurita/M 10120c7980 < Mauritanian/MS --- > Mauritanian/SM 10124d7983 < Maurizia/M 10127c7986 < Maurois --- > Maurois/M 10130c7989 < Mauser --- > Mauser/M 10132d7990 < Mavra/M 10134d7991 < Maxi/M 10136,10138c7993 < Maxim < Maximilian < Maximilianus/M --- > Maximilian/M 10142,10143c7997 < Maxwell < Maxy/M --- > Maxwell/M 10149c8003,8004 < Mayfair --- > Mayer/M > Mayfair/M 10153,10155c8008 < Maynord/M < Mayo < Mayor/M --- > Mayo/M 10157a8011 > Mays/M 10160c8014 < Mazarin --- > Mazarin/M 10162c8016 < Mazda --- > Mazda/M 10175c8029 < McCarthy --- > McCarthy/M 10180c8034 < McClellan --- > McClellan/M 10183,10184c8037,8038 < McCormick < McCoy --- > McCormick/M > McCoy/M 10221,10223c8075,8077 < Mead < Meade < Meadows --- > Mead/M > Meade/M > Meadows/M 10229,10230c8083 < Mechelle/M < Medan --- > Medan/M 10232,10233c8085,8086 < Medellin < Media --- > Medellin/M > Media/M 10236,10238c8089,8091 < Medici < Medina < Mediterranean/SM --- > Medici/M > Medina/M > Mediterranean/MS 10241c8094 < Meg/MN --- > Meg/M 10243,10244d8095 < Megen/M < Meggi/M 10246d8096 < Meggy/M 10248,10249d8097 < Meghann/M < Mehetabel/M 10254c8102 < Meir --- > Meir/M 10259d8106 < Melamie/M 10261c8108 < Melanesian --- > Melanesian/M 10264,10266c8111 < Melantha/M < Melany/M < Melba --- > Melba/M 10268,10269c8113,8114 < Melchior < Melchizedek --- > Melchior/M > Melchizedek/M 10271,10272d8115 < Melesa/M < Melessa/M 10276d8118 < Melinde/M 10279,10281d8120 < Melisandra/M < Melisenda/M < Melisent/M 10283d8121 < Melisse/M 10285d8122 < Melitta/M 10288d8124 < Mellicent/M 10290,10293c8126 < Mellisa/M < Mellisent/M < Mellon < Melloney/M --- > Mellon/M 10295d8127 < Melodee/M 10298d8129 < Melonie/M 10300d8130 < Melosa/M 10307c8137 < Memling --- > Memling/M 10309c8139 < Menander --- > Menander/M 10311,10312c8141,8142 < Mencius < Mencken --- > Mencius/M > Mencken/M 10315,10316c8145,8146 < Mendelian < Mendelssohn --- > Mendelian/M > Mendelssohn/M 10318d8147 < Mendie/M 10320,10321c8149 < Mendoza < Mendy/M --- > Mendoza/M 10324c8152 < Menes --- > Menes/M 10332,10333c8160,8161 < Menotti < Mensa --- > Menotti/M > Mensa/M 10336,10337c8164,8166 < Menzies < Mephistopheles --- > Menzies/M > Mephisto > Mephistopheles/M 10340,10341c8169,8170 < Mercator < Mercedes --- > Mercator/M > Mercedes/M 10344,10345c8173 < Mercia < Mercie/M --- > Mercia/M 10349,10355c8177 < Mercy/M < Meredeth/M < Meredith < Meredithe/M < Merell/M < Meridel/M < Meridith/M --- > Meredith/M 10357,10362c8179 < Merilee/M < Merill/M < Merilyn/M < Merino < Meris < Merissa/M --- > Merino/M 10364d8180 < Merla/M 10367,10374c8183,8184 < Merlina/M < Merline/M < Merlot < Merna/M < Merola/M < Merovingian < Merralee/M < Merrel/M --- > Merlot/M > Merovingian/M 10377d8186 < Merridie/M 10379,10382d8187 < Merrielle/M < Merrile/M < Merrilee/M < Merrili/M 10384c8189 < Merrily/M --- > Merrily's 10387c8192 < Merry/M --- > Merry's 10390c8195 < Merton --- > Merton/M 10396c8201 < Mesa --- > Mesa/M 10400c8205 < Mesolithic --- > Mesolithic/M 10405c8210 < Messiaen --- > Messiaen/M 10409d8213 < Messrs 10415,10416c8219,8220 < Methuselah < Metternich --- > Methuselah/M > Metternich/M 10419c8223 < Mexicali --- > Mexicali/M 10423c8227,8228 < Meyerbeer --- > Meyerbeer/M > Meyers/M 10427c8232 < MiG --- > MiG/M 10431d8235 < Mic 10433,10436c8237,8240 < Micah < Micawber < Mich < Michael --- > Micah/M > Micawber/M > Mich/M > Michael/M 10438,10440d8241 < Michaelina/M < Michaeline/M < Michaella/M 10444d8244 < Michale/M 10446d8245 < Micheil/M 10451d8249 < Michelina/M 10456c8254 < Michelson --- > Michelson/M 10458c8256 < Michigander/SM --- > Michigander/MS 10467c8265 < Micronesian --- > Micronesian/M 10470c8268 < Middleton --- > Middleton/M 10473,10474c8271 < Midge/M < Midland/S --- > Midland/MS 10477c8274 < Midwestern/R --- > Midwestern/MR 10479d8275 < Mignonne/M 10481,10482d8276 < Miguela/M < Miguelita/M 10484d8277 < Mikaela/M 10490d8282 < Mikol/M 10492d8283 < Mil/MY 10497,10498d8287 < Mildrid/M < Mile/SM 10499a8289 > Miles/M 10501,10503d8290 < Milicent/M < Milissent/M < Milka/M 10505c8292 < Mill/SR --- > Mill/SMR 10507,10508c8294,8296 < Millay < Millet --- > Millay/M > Miller/M > Millet/M 10512,10513c8300,8301 < Millikan < Millisent/M --- > Millikan/M > Mills/M 10515c8303 < Milne --- > Milne/M 10519,10523c8307,8309 < Milt/M < Miltiades < Miltie/M < Milton < Miltonic --- > Miltiades/M > Milton/M > Miltonic/M 10525d8310 < Milty/M 10527d8311 < Milzie/M 10530c8314 < Min/MR --- > Min/M 10534c8318 < Mindanao --- > Mindanao/M 10537d8320 < Miner/M 10539d8321 < Minetta/M 10540a8323 > Ming/M 10544d8326 < Minnaminnie/M 10550d8331 < Minni/M 10552d8332 < Minnnie/M 10556d8335 < Minor/M 10564c8343 < Minuit --- > Minuit/M 10567d8345 < Miquela/M 10570c8348 < Mirabeau --- > Mirabeau/M 10576,10577c8354 < Miranda < Mireielle/M --- > Miranda/M 10580d8356 < Mirelle/M 10583d8358 < Mirilla/M 10585c8360 < Miro --- > Miro/M 10589c8364 < Miskito --- > Miskito/M 10592c8367 < Mississauga --- > Mississauga/M 10598c8373 < Mistassini --- > Mistassini/M 10600d8374 < Misti 10604d8377 < Mitchael/M 10606c8379 < Mitchell --- > Mitchell/M 10614,10615c8387,8388 < Mixtec < Mizar --- > Mixtec/M > Mizar/M 10622d8394 < Mob 10626,10631c8398,8399 < Modesta/M < Modestia/M < Modestine/M < Modesto < Modesty/M < Modigliani --- > Modesto/M > Modigliani/M 10634c8402 < Mogadishu --- > Mogadishu/M 10639d8406 < Mohammed/M 10641c8408 < Mohammedanism/MS --- > Mohammedanism/SM 10643d8409 < Mohandis/M 10647d8412 < Mohican/MS 10650,10651c8415 < Moina/M < Moira --- > Moira/M 10652a8417 > Moises/M 10661c8426 < Molina --- > Molina/M 10663,10664d8427 < Mollee/M < Molli/M 10671c8434 < Moluccas --- > Moluccas/M 10673d8435 < Mommy/M 10678d8439 < Monah/M 10681c8442 < Mondrian --- > Mondrian/M 10684c8445 < Monet --- > Monet/M 10694,10695c8455,8456 < Monmouth < Monongahela --- > Monmouth/M > Monongahela/M 10701,10703c8462,8464 < Mont < Montague < Montaigne --- > Mont/M > Montague/M > Montaigne/M 10706c8467 < Montcalm --- > Montcalm/M 10708c8469 < Montenegrin --- > Montenegrin/M 10710,10713c8471,8474 < Monterrey < Montesquieu < Montessori < Monteverdi --- > Monterrey/M > Montesquieu/M > Montessori/M > Monteverdi/M 10716c8477 < Montgolfier --- > Montgolfier/M 10719c8480 < Monticello --- > Monticello/M 10722c8483 < Montrachet --- > Montrachet/M 10726,10727c8487,8488 < Moody < Moog --- > Moody/M > Moog/M 10731c8492 < Moore --- > Moore/M 10736,10737c8497,8498 < Moravia < Moravian --- > Moravia/M > Moravian/M 10740,10743c8501,8502 < Mordred < Mordy/M < More < Moreen/M --- > Mordred/M > More/M 10749,10750d8507 < Morganica/M < Morganne/M 10752d8508 < Morgun/M 10755d8510 < Morie/M 10758d8512 < Morissa/M 10761,10763c8515 < Morlee/M < Morley < Morly/M --- > Morley/M 10767c8519 < Moro --- > Moro/M 10770c8522 < Moroni --- > Moroni/M 10774,10775c8526,8527 < Morris < Morrison --- > Morris/M > Morrison/M 10777d8528 < Morry/M 10781,10782c8532 < Mortie/M < Mortimer --- > Mortimer/M 10788c8538 < Moseley --- > Moseley/M 10791a8542 > Moslem/M 10794c8545 < Mosul --- > Mosul/M 10798,10800c8549,8552 < Mott < Mount < Mountbatten --- > Mott/M > Moulton/M > Mount/M > Mountbatten/M 10802c8554 < Moussorgsky --- > Moussorgsky/M 10806d8557 < Moyna/M 10811,10812d8561 < Mozelle/M < Mozes/M 10814c8563 < Mozillian/SM --- > Mozillian/MS 10823,10825d8571 < Muffin/M < Mufi/M < Mufinella/M 10828c8574 < Muhammadan/SM --- > Muhammadan/MS 10830,10831c8576 < Muir < Muire/M --- > Muir/M 10838c8583 < Mullins --- > Mullins/M 10840,10841c8585,8586 < Multan < Multics/S --- > Multan/M > Multics 10843,10844c8588,8589 < Mumford < Munch --- > Mumford/M > Munch/M 10847d8591 < Munmro/M 10849c8593 < Munro --- > Munro/M 10851c8595 < Munster --- > Munster/M 10854c8598 < Murat --- > Murat/M 10857c8601 < Murdoch --- > Murdoch/M 10859,10860d8602 < Mureil/M < Murial/M 10862,10863c8604 < Murielle/M < Murillo --- > Murillo/M 10865,10866c8606,8607 < Murmansk < Murphy --- > Murmansk/M > Murphy/M 10869c8610 < Murrumbidgee --- > Murrumbidgee/M 10871d8611 < Murvyn/M 10881c8621 < Mussorgsky --- > Mussorgsky/M 10883,10884c8623,8624 < Muzak < My/M --- > Muzak/M > My's 10889,10890d8628 < Myca/M < Mycah/M 10892,10893c8630 < Mycenaean < Mychal/M --- > Mycenaean/M 10894a8632 > Myers/M 10897d8634 < Mylo/M 10899,10900d8635 < Myrah/M < Myranda/M 10903,10905d8637 < Myrilla/M < Myrle/M < Myrlene/M 10907,10911c8639 < Myron < Myrta/M < Myrtia/M < Myrtice/M < Myrtie/M --- > Myron/M 10913,10915c8641 < Myrvyn/M < Myrwyn/M < Mysore --- > Mysore/M 10916a8643 > Münchhausen/M 10919,10920c8646,8647 < NAACP < NAFTA --- > NAACP/M > NAFTA/M 10926,10927c8653,8654 < NBA < NBC --- > NBA/M > NBC/M 10930c8657 < NCAA --- > NCAA/M 10937,10938c8664,8665 < NFL < NGO/MS --- > NFL/M > NGO/SM 10940c8667 < NHL --- > NHL/M 10949c8676 < NPR --- > NPR/M 10953a8681 > NSA/M 10968c8696 < Nabokov --- > Nabokov/M 10970,10972c8698 < Nadean/M < Nadeen/M < Nader --- > Nader/M 10975d8700 < Nadiya/M 10977d8701 < Nady/M 10980,10982c8704,8706 < Nagoya < Nagpur < Nagy --- > Nagoya/M > Nagpur/M > Nagy/M 10984c8708 < Nahum --- > Nahum/M 10989d8712 < Nalani/M 10996,10997c8719 < Nanak < Nananne/M --- > Nanak/M 10999,11001c8721 < Nancee/M < Nancey/M < Nanchang --- > Nanchang/M 11003,11005c8723 < Nancie/M < Nancy < Nanete/M --- > Nancy/M 11008,11009d8725 < Nanice/M < Nanine/M 11011,11012d8726 < Nanking/MS < Nannette/M 11015d8728 < Nanny/M 11018c8731 < Nansen --- > Nansen/M 11021d8733 < Naoma/M 11023d8734 < Nap/M 11029,11031c8740 < Napoleonic < Nappie/M < Nappy/M --- > Napoleonic/M 11036d8744 < Nariko/M 11040c8748 < Narragansett --- > Narragansett/M 11042,11043c8750,8751 < Nash < Nashua --- > Nash/M > Nashua/M 11049,11050c8757 < Natal/M < Natala/M --- > Natal's 11052d8758 < Natalee/M 11055,11056d8760 < Natalina/M < Nataline/M 11058d8761 < Nataniel/M 11060,11061c8763 < Natassia/M < Natchez --- > Natchez/M 11063d8764 < Nathalia/M 11065c8766 < Nathan/S --- > Nathan/SM 11069c8770,8771 < Nathanil/M --- > Nathans/M > Nation/M 11073,11074c8775 < Natka/M < Natty/M --- > Natty's 11076c8777 < Naugahyde --- > Naugahyde/M 11078,11079c8779 < Nautilus < Navaho/M --- > Nautilus/M 11082c8782 < Navarre --- > Navarre/M 11086,11088c8786,8788 < Nazarene < Nazareth < Nazca --- > Nazarene/M > Nazareth/M > Nazca/M 11090d8789 < Naziism/SM 11099d8797 < Neala/M 11101,11103d8798 < Neall/M < Nealon/M < Nealson/M 11105,11106c8800,8801 < Neanderthal/MS < Neapolitan --- > Neanderthal/SM > Neapolitan/M 11111c8806 < Nebuchadnezzar --- > Nebuchadnezzar/M 11116d8810 < Neddie/M 11118d8811 < Nedi/M 11121,11122c8814 < Nefen/M < Nefertiti --- > Nefertiti/M 11129c8821,8822 < Nehemiah --- > Negros/M > Nehemiah/M 11132,11133d8824 < Neila/M < Neile/M 11135,11136d8825 < Neilla/M < Neille/M 11138,11139d8826 < Nelia/M < Nelie/M 11147c8834 < Nelson --- > Nelson/M 11150c8837 < Neogene --- > Neogene/M 11157c8844 < Nerf --- > Nerf/M 11159,11168c8846,8847 < Nerita/M < Nero < Neron/M < Nert/M < Nerta/M < Nerte/M < Nerti/M < Nertie/M < Nerty/M < Neruda --- > Nero/M > Neruda/M 11171,11172c8850 < Nesselrode < Nessi/M --- > Nesselrode/M 11174d8851 < Nessy/M 11179c8856 < Nestorius --- > Nestorius/M 11181,11182c8858,8860 < Netherlander/MS < Netherlands --- > Netflix/M > Netherlander/SM > Netherlands/M 11185d8862 < Netti/M 11187,11188d8863 < Nettle/M < Netty/M 11190,11191c8865,8866 < Nev < Neva --- > Nev/M > Neva/M 11200d8874 < Nevsa/M 11205c8879 < Newman --- > Newman/M 11207d8880 < Newsvine/M 11212c8885 < Nexis --- > Nexis/M 11214d8886 < Neysa/M 11217c8889 < Ni --- > Ni/M 11222,11223c8894,8895 < Nibelung < Nicaea --- > Nibelung/M > Nicaea/M 11228c8900 < Nicene --- > Nicene/M 11231c8903 < Nicholas --- > Nicholas/M 11233,11234c8905,8906 < Nicholle/M < Nicholson --- > Nichols/M > Nicholson/M 11237d8908 < Nickey/M 11240c8911 < Nicklaus --- > Nicklaus/M 11242,11244c8913 < Nickola/SM < Nickolai/M < Nickolaus/M --- > Nickolas/M 11248c8917 < Nicodemus --- > Nicodemus/M 11251c8920,8921 < Nicolai/S --- > Nicolai > Nicolas/M 11253d8922 < Nicolea/M 11255,11257c8924 < Nicoli/SM < Nicolina/M < Nicoline/M --- > Nicolis 11262,11263c8929,8930 < Niels/N < Nietzsche --- > Nielsen/M > Nietzsche/M 11271,11272c8938 < Nijinsky < Nikaniki/M --- > Nijinsky/M 11276c8942 < Nikkei --- > Nikkei/M 11278d8943 < Nikkie/M 11284,11287c8949 < Nikolayev < Nikoletta/M < Nikolia/M < Nikolos/M --- > Nikolayev/M 11289d8950 < Nil/SM 11290a8952 > Nils 11292,11293c8954,8955 < Nimitz < Nimrod --- > Nimitz/M > Nimrod/M 11295d8956 < Ninetta/M 11298,11299d8958 < Ninnetta/M < Ninnette/M 11301,11302c8960,8961 < Nintendo < Niobe --- > Nintendo/M > Niobe/M 11306c8965 < Nirvana --- > Nirvana/M 11308,11309c8967 < Nisei < Nissa/M --- > Nisei/M 11311,11313d8968 < Nisse/M < Nissie/M < Nissy/M 11318d8972 < Nixie 11320c8974 < Nkrumah --- > Nkrumah/M 11323d8976 < Noach/M 11325d8977 < Noak/M 11327,11329c8979 < Noami/M < Nobe/M < Nobel --- > Nobel/M 11331d8980 < Nobie/M 11333d8981 < Noby/M 11336,11338d8983 < Noelani/M < Noell/M < Noella/M 11340,11341d8984 < Noellyn/M < Noelyn/M 11343d8985 < Noh 11347d8988 < Nolana/M 11349d8989 < Nolie/M 11351,11353c8991 < Nollie/M < Nolly/M < Nome --- > Nome/M 11356d8993 < Nonah/M 11360d8996 < Nonnah/M 11366,11367d9001 < Norbie/M < Norby/M 11369d9002 < Norean/M 11371d9003 < Norene/M 11374,11376c9006 < Norina/M < Norine/M < Norma --- > Norma/M 11380,11383c9010 < Normie/M < Normy/M < Norplant < Norri/MS --- > Norplant/M 11385c9012 < Norry/M --- > Norris/M 11388c9015 < Norsemen --- > Norsemen/M 11391c9018 < Northampton --- > Northampton/M 11403c9030 < Norwich --- > Norwich/M 11405c9032 < Nostradamus --- > Nostradamus/M 11407c9034 < Nottingham --- > Nottingham/M 11411c9038 < Nova --- > Nova/M 11413d9039 < Novelia/M 11415c9041 < Novgorod --- > Novgorod/M 11418c9044 < Novokuznetsk --- > Novokuznetsk/M 11425,11427c9051,9053 < Nubia < Nubian < Nukualofa --- > Nubia/M > Nubian/M > Nukualofa/M 11432,11433c9058,9059 < Nuremberg < Nureyev --- > Nuremberg/M > Nureyev/M 11437d9062 < Nydia/M 11441,11452c9066,9077 < O'Brien < O'Casey < O'Connell < O'Connor < O'Donnell < O'Hara < O'Higgins < O'Keeffe < O'Neil < O'Neill < O'Rourke < O'Toole --- > O'Brien/M > O'Casey/M > O'Connell/M > O'Connor/M > O'Donnell/M > O'Hara/M > O'Higgins/M > O'Keeffe/M > O'Neil/M > O'Neill/M > O'Rourke/M > O'Toole/M 11463c9088 < OK/SM --- > OK/SMDG 11477,11478c9102,9103 < Oakley < Oates --- > Oakley/M > Oates/M 11481,11482c9106 < Obadiah < Obadias/M --- > Obadiah/M 11483a9108 > Obamacare 11485d9109 < Obediah/M 11487,11488c9111 < Oberon < Obidiah/M --- > Oberon/M 11490,11491c9113 < Oby/M < Occam --- > Occam/M 11493c9115 < Occidental/SM --- > Occidental/MS 11499c9121 < Octavia --- > Octavia/M 11504,11507d9125 < Ode/RM < Odele/M < Odelia/M < Odelinda/M 11509,11510d9126 < Odella/M < Odelle/M 11513,11514c9129 < Odets < Odetta/M --- > Odets/M 11516d9130 < Odey/M 11518,11519d9131 < Odilia/M < Odille/M 11527c9139 < Oedipal --- > Oedipal/M 11531,11532c9143 < Ofella/M < Offenbach --- > Offenbach/M 11534,11536c9145 < Ofilia/M < Ogbomosho < Ogdan/M --- > Ogbomosho/M 11538d9146 < Ogdon/M 11540c9148 < Oglethorpe --- > Oglethorpe/M 11545d9152 < Ojibway/MS 11547,11549c9154,9156 < Okeechobee < Okefenokee < Okhotsk --- > Okeechobee/M > Okefenokee/M > Okhotsk/M 11554,11555c9161,9162 < Oklahoman < Oktoberfest --- > Oklahoman/M > Oktoberfest/M 11558d9164 < Olag/M 11561c9167 < Oldenburg --- > Oldenburg/M 11565d9170 < Ole/MV 11568,11569d9172 < Olenka/M < Olenolin/M 11571d9173 < Olia/M 11576,11577c9178 < Olivero/M < Olivette/M --- > Oliver/M 11580,11582c9181 < Olivie/MR < Oliviero/M < Oliy/M --- > Olivier/M 11585c9184 < Olmec --- > Olmec/M 11589,11590d9187 < Olva/M < Olvan/M 11596,11597c9193,9194 < Olympic/S < Olympie/M --- > Olympic/SM > Olympics/M 11603c9200 < Omayyad --- > Omayyad/M 11605d9201 < Omero/M 11608,11609c9204 < Onassis < Ondrea/M --- > Onassis/M 11611c9206 < Onega --- > Onega/M 11614,11616d9208 < Onfre/M < Onfroi/M < Onida/M 11619d9210 < Onofredo/M 11628d9218 < Opalina/M 11631a9222 > OpenOffice/M 11633,11634c9224 < Ophelie/M < Ophiuchus --- > Ophiuchus/M 11639,11643d9228 < Oralee/M < Oralia/M < Oralie/M < Oralla/M < Oralle/M 11645c9230 < Orange --- > Orange/M 11648d9232 < Orbadiah/M 11656,11660d9239 < Orelee/M < Orelia/M < Orelie/M < Orella/M < Orelle/M 11662,11663c9241,9242 < Oreo < Orestes --- > Oreo/M > Orestes/M 11665c9244 < Orient --- > Orient/M 11680c9259 < Orphic --- > Orphic/M 11682d9260 < Orran/M 11685,11686d9262 < Orsa/M < Orsola/M 11689d9264 < Ortensia/M 11696,11697c9271,9272 < Orwell < Orwellian --- > Orwell/M > Orwellian/M 11698a9274 > Os/M 11703,11704c9279 < Osborne < Osbourn/M --- > Osborne/M 11707c9282 < Osceola --- > Osceola/M 11709c9284 < Oshawa --- > Oshawa/M 11718c9293 < Ostwald --- > Ostwald/M 11720,11725c9295 < Oswald < Oswell/M < Otes < Otha/M < Othelia/M < Othella/M --- > Oswald/M 11727,11728d9296 < Othilia/M < Othilie/M 11733,11735c9301,9303 < Otto < Ottoman < Ouagadougou --- > Otto/M > Ottoman/M > Ouagadougou/M 11737,11738c9305,9307 < Ovid < Owen/S --- > Ovid/M > Owen/SM > Owens/M 11741c9310 < Oxnard --- > Oxnard/M 11743c9312 < Oxus --- > Oxus/M 11745c9314 < Oz --- > Oz/M 11759a9329 > PCMCIA 11762,11763c9332,9333 < PDA/MS < PDF/MS --- > PDA/SM > PDF/SM 11769a9340 > PGP 11772c9343 < PLO --- > PLO/M 11786c9357 < PTA --- > PTA/M 11801d9371 < Packston/M 11803d9372 < Pacorro/M 11805,11808c9374 < Paddie/M < Paddy/M < Paderewski < Padget/M --- > Paderewski/M 11813,11815c9379,9380 < Padriac/M < Paganini < Page --- > Paganini/M > Page/M 11817c9382 < Pahlavi --- > Pahlavi/M 11819,11820c9384 < Pail/M < Paine --- > Paine/M 11824,11825c9388,9389 < Palau < Palembang --- > Palau/M > Palembang/M 11827,11828c9391,9392 < Paleogene < Paleolithic --- > Paleogene/M > Paleolithic/M 11833,11834c9397,9398 < Palestrina < Paley --- > Palestrina/M > Paley/M 11836c9400 < Palin/MS --- > Palin/M 11838,11841c9402,9404 < Pall/M < Palladio < Palm/MR < Palmerston --- > Palladio/M > Palmer/M > Palmerston/M 11848,11854c9411,9412 < Pamelina/M < Pamella/M < Pamirs < Pammi/M < Pammie/M < Pammy/M < Pampers --- > Pamirs/M > Pampers/M 11859d9416 < Panchito/M 11863c9420 < Pankhurst --- > Pankhurst/M 11865d9421 < Pansie/M 11867c9423 < Pantagruel --- > Pantagruel/M 11869c9425 < Pantheon --- > Pantheon/M 11874d9429 < Papagena/M 11877,11879c9432,9433 < Paquito/M < Paracelsus < Paraclete --- > Paracelsus/M > Paraclete/M 11882a9437 > Paralympic/S 11885a9441 > Paraná/M 11887c9443 < Pareto --- > Pareto/M 11890c9446 < Park/SR --- > Park/SMR 11891a9448 > Parker/M 11893,11894c9450,9453 < Parkman < Parliament --- > Parkman/M > Parks/M > Parliament/M > Parmenides 11897,11901c9456,9458 < Parnell < Parr < Parrish < Parrnell/M < Parry --- > Parnell/M > Parr/M > Parrish/M 11905c9462 < Parsons --- > Parsons/M 11914c9471 < Pasternak --- > Pasternak/M 11916c9473 < Pat/N --- > Pat/MN 11918c9475 < Patagonian --- > Patagonian/M 11922,11925c9479,9480 < Paterson < Patience/M < Patin/M < Patna --- > Paterson/M > Patna/M 11934,11935d9488 < Patrizio/M < Patrizius/M 11939c9492 < Patti --- > Patti/M 11941,11942c9494 < Pattin/M < Patton --- > Patton/M 11947d9498 < Pauletta/M 11949c9500 < Pauli --- > Pauli/M 11952,11953c9503,9504 < Pauline < Paulita/M --- > Pauline/M > Pauling/M 11956c9507 < Pavarotti --- > Pavarotti/M 11959d9509 < Pavla/M 11961,11962c9511,9512 < Pavlova < Pavlovian --- > Pavlova/M > Pavlovian/M 11964d9513 < Paxon/M 11974c9523 < Peale --- > Peale/M 11977d9525 < Pearla/M 11980d9527 < Pearline/M 11982,11984c9529,9530 < Peary < Pebrook/M < Pechora --- > Peary/M > Pechora/M 11994,11995d9539 < Peggi/M < Peggie/M 11997c9541 < Pei --- > Pei/M 12000c9544 < Pekinese/MS --- > Pekinese/M 12006a9551 > Pen/M 12009d9553 < Penelopa/M 12011c9555 < Penn --- > Penn/M 12014,12015d9557 < Penni/M < Pennie/M 12018c9560 < Pennsylvanian/SM --- > Pennsylvanian/MS 12030c9572 < Peoria --- > Peoria/M 12033d9574 < Pepillo/M 12036d9576 < Pepito/M 12038,12039c9578,9579 < Pepys < Pequot --- > Pepys/M > Pequot/M 12041,12043c9581,9583 < Percheron < Percival < Percy --- > Percheron/M > Percival/M > Percy/M 12047,12050c9587,9588 < Peria/M < Perice/M < Periclean < Pericles --- > Periclean/M > Pericles/M 12051a9590 > Perkins/M 12058d9596 < Pernell/M 12060c9598 < Peron --- > Peron/M 12062,12063c9600,9601 < Perren/M < Perri/M --- > Perri/MR > Perrier/M 12065,12066c9603,9604 < Perry/R < Perseid --- > Perry/M > Perseid/M 12070c9608 < Pershing --- > Pershing/M 12077,12078c9615 < Peshawar < Pet --- > Peshawar/M 12083a9621 > Peters/MN 12086d9623 < Peterus/M 12089c9626 < Petra --- > Petra/M 12091d9627 < Petrina/M 12093d9628 < Petronia/M 12095d9629 < Petronille/M 12097d9630 < Petunia/M 12099d9631 < Peyter/M 12104c9636 < Phaedra --- > Phaedra/M 12106,12107c9638 < Phaidra/M < Phanerozoic --- > Phanerozoic/M 12114d9644 < Phedra/M 12116d9645 < Phelia/M 12118,12119c9647,9648 < Phidias < Phil/Y --- > Phidias/M > Phil/MY 12121d9649 < Philbert/M 12123,12125c9651,9652 < Philemon < Philip/S < Philipa/M --- > Philemon/M > Philip/MS 12128c9655 < Philippians --- > Philippians/M 12129a9657 > Philippines/M 12131,12132c9659 < Philis/M < Philistine --- > Philistine/M 12134,12135c9661 < Phillie/M < Phillip/S --- > Phillip/SM 12138c9664 < Phillipp/M --- > Phillips/M 12143d9668 < Phip/M 12145c9670 < Phobos --- > Phobos/M 12150,12152c9675 < Photoshop/MS < Photoshopped < Photoshopping --- > Photoshop/M 12157d9679 < Phylis/M 12160,12161d9681 < Phyllys/M < Phylys/M 12167c9687 < Piccadilly --- > Piccadilly/M 12169c9689 < Pickett --- > Pickett/M 12172c9692 < Pict --- > Pict/M 12175d9694 < Pier/M 12177d9695 < Pierette/M 12184d9701 < Pietrek/M 12186,12187d9702 < Piggy/M < Pigmy/SM 12189,12191c9704,9707 < Pilate/S < Pilcomayo < Pilgrim/S --- > Pilate/MS > Pilates/M > Pilcomayo/M > Pilgrim/SM 12194d9709 < Pincas/M 12198c9713 < Pinkerton --- > Pinkerton/M 12201c9716 < Pinter --- > Pinter/M 12204,12205d9718 < Pip/MR < Piper/M 12208,12212c9721,9723 < Pippo/M < Pippy/M < Piraeus < Pirandello < Pisa --- > Piraeus/M > Pirandello/M > Pisa/M 12214c9725 < Pisistratus --- > Pisistratus/M 12217c9728 < Pitt/S --- > Pitt/SM 12218a9730 > Pitts/M 12221c9733 < Pizarro --- > Pizarro/M 12225c9737 < Planck --- > Planck/M 12230c9742 < Plath --- > Plath/M 12243c9755 < Pliny --- > Pliny/M 12252c9764,9765 < Podgorica --- > Poconos/M > Podgorica/M 12254,12255c9767,9768 < Podunk < Poe --- > Podunk/M > Poe/M 12257a9771 > Poincaré/M 12263c9777,9778 < Pol/Y --- > Pokémon/M > Pol/MY 12270c9785 < Politburo --- > Politburo/M 12273c9788 < Pollock --- > Pollock/M 12276c9791 < Pollyanna --- > Pollyanna/M 12282,12283c9797,9798 < Polyphemus < Pomerania --- > Polyphemus/M > Pomerania/M 12285,12286c9800,9801 < Pomona < Pompadour --- > Pomona/M > Pompadour/M 12290,12291c9805,9806 < Ponce < Pontchartrain --- > Ponce/M > Pontchartrain/M 12293c9808 < Pontianak --- > Pontianak/M 12296,12297c9811,9812 < Poona < Pope --- > Poona/M > Pope/M 12299c9814 < Popocatepetl --- > Popocatepetl/M 12302,12303c9817 < Poppy/M < Popsicle --- > Popsicle/M 12307c9821,9822 < Port/R --- > Port/MR > Porter/M 12309d9823 < Portie/M 12312c9826 < Portsmouth --- > Portsmouth/M 12315d9828 < Porty/M 12320c9833 < Potemkin --- > Potemkin/M 12322c9835 < Potsdam --- > Potsdam/M 12324c9837 < Potter --- > Potter/M 12327,12328c9840,9841 < Pound < Poussin --- > Pound/M > Poussin/M 12329a9843 > PowerPC/M 12331c9845 < Powers --- > Powers/M 12335c9849 < Pr/MN --- > Pr/M 12338c9852 < Praetorian --- > Praetorian/M 12341c9855 < Prakrit --- > Prakrit/M 12345c9859 < Praxiteles --- > Praxiteles/M 12350d9863 < Pren/M 12352d9864 < Prent/M 12356,12357c9868,9869 < Presbyterian/MS < Presbyterianism/SM --- > Presbyterian/SM > Presbyterianism/MS 12359,12361c9871,9872 < President/SM < Presley < Preston --- > Presley/M > Preston/M 12365,12366c9876,9877 < Price < Priestley --- > Price/M > Priestley/M 12369d9879 < Principal 12374d9883 < Priscella/M 12377d9885 < Prissie/M 12382c9890 < Procrustean --- > Procrustean/M 12388,12389c9896,9897 < Prokofiev < Promethean --- > Prokofiev/M > Promethean/M 12394c9902 < Protagoras --- > Protagoras/M 12397c9905 < Protestantism/MS --- > Protestantism/SM 12399c9907 < Proudhon --- > Proudhon/M 12402a9911 > Provençal/M 12404,12405c9913,9914 < Providence/MS < Provo --- > Providence/SM > Provo/M 12410d9918 < Prudi/M 12416c9924 < Prut --- > Prut/M 12419c9927 < Psalms --- > Psalms/M 12421c9929 < Pseudomonas/MS --- > Pseudomonas/M 12425c9933 < Ptolemaic --- > Ptolemaic/M 12429,12430c9937,9938 < Puccini < Puck --- > Puccini/M > Puck/M 12432,12434c9940,9942 < Puebla < Pueblo < Puff/M --- > Puebla/M > Pueblo/M > Puerto 12437,12438c9945,9946 < Pulaski < Pulitzer --- > Pulaski/M > Pulitzer/M 12440c9948 < Punch --- > Punch/M 12444,12445c9952,9953 < Purana < Purcell --- > Purana/M > Purcell/M 12450,12451c9958,9959 < Puritan < Puritanism/SM --- > Puritan/M > Puritanism/MS 12454,12455c9962,9963 < Pusey < Pushkin --- > Pusey/M > Pushkin/M 12458,12459c9966 < Putnam < Putnem/M --- > Putnam/M 12465c9972 < Pym --- > Pym/M 12471c9978 < Pyrrhic --- > Pyrrhic/M 12473,12474c9980,9981 < Pythagorean < Pythias --- > Pythagorean/M > Pythias/M 12475a9983,9984 > Pétain/M > Pôrto/M 12476a9986 > QA 12487c9997 < Qingdao --- > Qingdao/M 12494c10004 < Quasimodo --- > Quasimodo/M 12500c10010 < Quebecois --- > Quebecois/M 12502c10012 < Queen/S --- > Queen/MS 12508d10017 < Querida/M 12513d10021 < Quill/M 12518c10026 < Quinn --- > Quinn/M 12523d10030 < Quintilla/M 12525d10031 < Quintina/M 12528c10034 < Quirinal --- > Quirinal/M 12531c10037 < Quixote --- > Quixote/M 12533,12534c10039,10040 < Qumran < Quonset --- > Qumran/M > Quonset/M 12535a10042,10045 > Qur'anic > Quran > Quranic > Québecois/M 12537c10047 < R/MGD --- > R/MD 12553a10064 > RISC 12565c10076 < RTFM/GSD --- > RTFM 12570d10080 < Rabbi/M 12572c10082 < Rabelaisian --- > Rabelaisian/M 12577d10086 < Rachele/M 12579c10088 < Rachmaninoff --- > Rachmaninoff/M 12581d10089 < Rad/M 12583,12584d10090 < Raddie/M < Raddy/M 12586d10091 < Raeann/M 12590,12594d10094 < Rafaela/M < Rafaelia/M < Rafaelita/M < Rafaellle/M < Rafaello/M 12598d10097 < Raffarty/M 12604c10103 < Rahal/M --- > Ragnarök/M 12612,12613c10111 < Rainier < Rakel/M --- > Rainier/M 12616d10113 < Ralina/M 12618d10114 < Ram 12622c10118 < Ramakrishna --- > Ramakrishna/M 12624c10120 < Ramayana --- > Ramayana/M 12630,12633c10126,10128 < Ramonda/M < Ramos < Ramsay < Ramses --- > Ramos/M > Ramsay/M > Ramses/M 12637,12638c10132 < Rancell/M < Rand --- > Rand/M 12642d10135 < Randee/M 12644d10136 < Randene/M 12646,12647d10137 < Randie/M < Randolf/M 12650d10139 < Ranee/M 12653,12656c10142 < Rania/M < Ranice/M < Ranique/M < Rankin --- > Rankin/M 12658,12660d10143 < Ranna/M < Ransell/M < Ransom/M 12662,12663c10145,10146 < Raphael < Raphaela/M --- > Raphael/M > Rappaport/M 12666d10148 < Raquela/M 12669,12670d10150 < Rasia/M < Rasla/M 12672c10152,10153 < Rasputin --- > Rasputin/M > Rasta 12674c10155,10156 < Rastafarian/M --- > Rastafarian/MS > Rastafarianism 12678,12679c10160 < Ravel < Raven/M --- > Ravel/M 12683c10164 < Rawalpindi --- > Rawalpindi/M 12685c10166 < Ray --- > Ray/M 12688d10168 < Raychel/M 12690c10170 < Rayleigh --- > Rayleigh/M 12695,12696d10174 < Raynard/M < Raynell/M 12699d10176 < Rayshell/M 12704,12705c10181 < Read/GM < Reade --- > Reade/G 12709,12711c10185 < Reagen/M < Realtor < Reamonn/M --- > Realtor/M 12714,12715d10187 < Rebbecca/M < Rebe/M 12717c10189 < Rebecca/M --- > Rebecca's 12719,12721c10191 < Rebeka/M < Rebekah < Rebekkah/M --- > Rebekah/M 12726d10195 < Reddit/M 12730c10199 < Redmond --- > Redmond/M 12732d10200 < Reeba/M 12738,12740c10206 < Reeta/M < Reeva/M < Reeves --- > Reeves/M 12743d10208 < Reg/N 12746d10210 < Reggi/MS 12748d10211 < Reggy/M 12750c10213 < Reginae --- > Reginae/M 12752d10214 < Reginauld/M 12756c10218 < Rehnquist --- > Rehnquist/M 12758,12760c10220,10221 < Reid/R < Reidar/M < Reider/M --- > Reichstag's > Reid/M 12764,12765c10225 < Reinald/M < Reinaldo/SM --- > Reinaldo/M 12768c10228 < Reinhardt --- > Reinhardt/M 12770,12773c10230 < Reinold/M < Reinwald/M < Rem/M < Remanence/S --- > Remanence 12775c10232 < Remarque --- > Remarque/M 12777c10234 < Remington --- > Remington/M 12781d10237 < Renado/M 12794,12795d10249 < Renell/M < Renelle/M 12799c10253 < Renoir --- > Renoir/M 12809,12813c10263,10265 < Retha/M < Reube/M < Reuben < Reunion < Reuters --- > Reuben/M > Reunion/M > Reuters/M 12819c10271,10272 < Revere --- > Revelations/M > Revere/M 12821d10273 < Revkah/M 12823c10275 < Rex --- > Rex/M 12825c10277 < Reyes --- > Reyes/M 12830a10283 > Reynolds/M 12833,12835c10286,10287 < Rhea < Rheba/M < Rhee --- > Rhea/M > Rhee/M 12837,12838c10289 < Rhenish < Rheta/M --- > Rhenish/M 12840,12841d10290 < Rhetta/M < Rhiamon/M 12844d10292 < Rhianon/M 12849,12850c10297,10298 < Rhode < Rhodes --- > Rhode/S > Rhodes/M 12853,12855d10300 < Rhodia/M < Rhodie/M < Rhody/M 12860,12863c10305 < Riane/M < Riannon/M < Rianon/M < Ribbentrop --- > Ribbentrop/M 12867,12868c10309 < Ricardo < Ricca/M --- > Ricardo/M 12870c10311 < Rice --- > Rice/M 12872,12874c10313,10315 < Richard/S < Richardo/M < Richardson --- > Richard/MS > Richards/M > Richardson/M 12879,12883c10320,10321 < Richmound/M < Richter < Richthofen < Richy/M < Rici/M --- > Richter/M > Richthofen/M 12891c10329 < Rickover --- > Rickover/M 12894d10331 < Ricoriki/M 12896c10333 < Ride --- > Ride/M 12910,12912c10347,10349 < Riley < Rilke < Rimbaud --- > Riley/M > Rilke/M > Rimbaud/M 12915d10351 < Ring/M 12919d10354 < Riobard/M 12921,12922c10356,10357 < Rip/M < Ripley --- > Rios/M > Ripley/M 12924c10359 < Risorgimento --- > Risorgimento/M 12930,12932c10365,10367 < Rivalee/M < Rivera < Rivers --- > Rivas/M > Rivera/M > Rivers/M 12934d10368 < Rivi/M 12936,12937d10369 < Rivkah/M < Rivy/M 12939c10371 < Rizal --- > Rizal/M 12942,12944d10373 < Roana/M < Roanna/M < Roanne/M 12947c10376 < Rob/MZ --- > Rob/M 12949,12950d10377 < Robbert/M < Robbi/M 12952a10380 > Robbins/M 12954,12957d10381 < Robbyn/M < Robena/M < Robenia/M < Robers/M 12961a10386 > Roberts/M 12963,12964c10388,10389 < Robeson < Robespierre --- > Robeson/M > Robespierre/M 12968,12969d10392 < Robinett/M < Robinetta/M 12972c10395 < Robinson --- > Robinson/M 12975c10398 < Robson --- > Robson/M 12984,12985d10406 < Rochell/M < Rochella/M 12988,12993c10409,10411 < Rochette/M < Rock < Rockefeller < Rockey/M < Rockford < Rockie/M --- > Rock/M > Rockefeller/M > Rockford/M 12996c10414 < Rockwell --- > Rockwell/M 13002d10419 < Roddie/M 13005d10421 < Roderich/M 13008d10423 < Rodge/MZR 13009a10425 > Rodgers/M 13012,13015c10428,10429 < Rodie/M < Rodin < Rodina/M < Rodney --- > Rodin/M > Rodney/M 13022d10435 < Rodrique/M 13028c10441,10442 < Rogerio/M --- > Roger/M > Rogers/M 13031a10446 > Roku/M 13033c10448 < Roland --- > Roland/M 13037d10451 < Roley/M 13040,13041c10454,10455 < Rolland < Rollerblade --- > Rolland/M > Rollerblade/M 13043a10458 > Rollins/M 13045c10460 < Rolodex --- > Rolodex/M 13055c10470 < Romano --- > Romano/M 13057c10472,10473 < Romansh --- > Romans/M > Romansh/M 13062c10478 < Romeo --- > Romeo/M 13065c10481 < Romney --- > Romney/M 13067,13068d10482 < Romona/M < Romonda/M 13074d10487 < Ronalda/M 13076,13077d10488 < Ronica/M < Ronna/M 13079d10489 < Ronnica/M 13084,13085d10493 < Roobbie/M < Roomba/MS 13090,13092d10497 < Rora/M < Rori/M < Rorie/M 13094c10499 < Rorschach --- > Rorschach/M 13098,13100d10502 < Rosabel/M < Rosabella/M < Rosabelle/M 13107d10508 < Rosalinde/M 13110d10510 < Rosalynd/M 13113d10512 < Rosana/M 13116c10515 < Rosario --- > Rosario/M 13121d10519 < Roseanna/M 13125,13127d10522 < Roselia/M < Roselin/M < Roseline/M 13130d10524 < Rosemaria/M 13133d10526 < Rosemonde/M 13136d10528 < Rosene/M 13138,13141c10530,10531 < Rosetta < Rosette/M < Roshelle/M < Rosicrucian --- > Rosetta/M > Rosicrucian/M 13146d10535 < Rosmunda/M 13151,13152c10540 < Rossy/M < Rostand --- > Rostand/M 13156c10544 < Rosy/M --- > Rosy's 13159,13160c10547,10548 < Rothko < Rothschild --- > Rothko/M > Rothschild/M 13163c10551 < Rouault --- > Rouault/M 13167d10554 < Rouvin/M 13169c10556 < Row/MN --- > Rover/M 13171c10558 < Rowe --- > Rowe/M 13176d10562 < Rowney/M 13181d10566 < Roxi/M 13183d10567 < Roxine/M 13186c10570 < Royal --- > Royal/M 13188c10572 < Royce --- > Royce/M 13190,13197d10573 < Rozalie/M < Rozalin/M < Rozamond/M < Rozanna/M < Rozanne/M < Roze/M < Rozele/M < Rozella/M 13199,13200d10574 < Rozina/M < Rriocard/M 13205d10578 < Rube/M 13207c10580 < Rubetta/M --- > Rubens/M 13211d10583 < Rubie/M 13214,13215c10586 < Rubina/M < Rubinstein --- > Rubinstein/M 13219,13221c10590 < Ruddie/M < Ruddy/M < Rudie/M --- > Ruddy's 13223c10592 < Rudolf --- > Rudolf/M 13235d10603 < Rumania/M 13239,13240c10607,10608 < Runnymede < Runyon --- > Runnymede/M > Runyon/M 13242,13243d10609 < Ruperta/M < Ruperto/M 13249,13250c10615,10616 < Ruskin < Russ --- > Ruskin/M > Russ/M 13257d10622 < Rustie/M 13261a10627 > Rutgers/M 13263,13267c10629 < Ruthann/M < Ruthanne/M < Ruthe/M < Rutherford < Ruthi/M --- > Rutherford/M 13269d10630 < Ruthy/M 13272d10632 < Ruttger/M 13280,13281d10639 < Ryann/M < Rycca/M 13283,13285c10641 < Ryder < Ryley/M < Ryon/M --- > Ryder/M 13287,13288c10643 < Ryun/M < S/MNY --- > S/MN 13304c10659 < SEC --- > SEC/M 13311c10666 < SNP/MS --- > SNP/SM 13318a10674 > SQL 13329c10685 < SUSE --- > SUSE/M 13330a10687 > SVN/M 13335,13336c10692,10693 < Saar < Saarinen --- > Saar/M > Saarinen/M 13342c10699 < Sabin --- > Sabin/M 13345d10701 < Sabra 13348c10704 < Sacajawea --- > Sacajawea/M 13355c10711 < Sadat --- > Sadat/M 13357c10713 < Sadducee --- > Sadducee/M 13359d10714 < Sadella/M 13362,13363c10717 < Sadye/M < Safavid --- > Safavid/M 13370,13371c10724 < Sahel < Saidee/M --- > Sahel/M 13374c10727 < Sakai --- > Sakai/M 13377c10730 < Sakharov --- > Sakharov/M 13379,13384c10732,10736 < Saks < Sal/Y < Saladin < Salado < Salaidh/M < Salamis --- > Saks/M > Sal/MY > Saladin/M > Salado/M > Salamis/M 13391,13392c10743,10744 < Salinas < Salinger --- > Salinas/M > Salinger/M 13395c10747 < Salk --- > Salk/M 13397d10748 < Salli/M 13399c10750 < Sallust --- > Sallust/M 13401,13404d10751 < Sallyann/M < Sallyanne/M < Salmon/M < Saloma/M 13406,13407d10752 < Salomi/M < Salomo/M 13409d10753 < Salomone/M 13417d10760 < Salvidor/M 13420c10763 < Sam --- > Sam/M 13423c10766 < Samara --- > Samara/M 13434c10777 < Samson --- > Samson/M 13437,13438c10780 < Samuel < Samuele/M --- > Samuel/M 13440d10781 < San 13441a10783 > San/M 13446,13449c10788,10791 < Sand/Z < Sandburg < Sande/MZR < Sander/M --- > Sand/ZM > Sandburg/M > Sande/M > Sanders/M 13453c10795 < Sandinista --- > Sandinista/M 13459d10800 < Sandye/M 13461c10802 < Sanforized --- > Sanforized/M 13463c10804,10805 < Sanhedrin --- > Sanger/M > Sanhedrin/M 13469c10811 < Santa --- > Santa/M 13471,13472c10813,10814 < Santayana < Santeria --- > Santayana/M > Santeria/M 13474c10816 < Santos --- > Santos/M 13476d10817 < Sapphire/M 13480d10820 < Saraann/M 13483,13484c10823 < Sarah < Sarajane/M --- > Sarah/M 13493,13495d10831 < Sarena/M < Sarene/M < Sarette/M 13498c10834 < Sargent --- > Sargent/M 13500d10835 < Sari/M 13502d10836 < Sarine/M 13506,13507c10840,10841 < Sarto < Sartre --- > Sarto/M > Sartre/M 13510d10843 < Sashenka/M 13515,13516c10848,10849 < Sassanian < Sassoon --- > Sassanian/M > Sassoon/M 13525d10857 < Saudra/M 13527,13528c10859 < Sauncho/M < Saunder/MS --- > Saunders/M 13531,13532c10862,10863 < Saussure < Sauterne/MS --- > Saussure/M > Sauternes 13534c10865 < Savage --- > Savage/M 13538,13539c10869,10870 < Savonarola < Savoy --- > Savonarola/M > Savoy/M 13541d10871 < Saw/M 13543,13544d10872 < Sawyere/M < Sax 13548d10875 < Say/MRZ 13550c10877,10878 < Sayre/MS --- > Sayers/M > Sayre/M 13552a10881 > Scala/M 13555,13557c10884,10886 < Scandinavian/SM < Scaramouch < Scarborough --- > Scandinavian/MS > Scaramouch/M > Scarborough/M 13559,13560c10888 < Scarlatti < Scarlet/M --- > Scarlatti/M 13565c10893 < Schelling --- > Schelling/M 13569c10897 < Schiller --- > Schiller/M 13572c10900 < Schliemann --- > Schliemann/M 13574,13575c10902,10903 < Schmidt < Schnabel --- > Schmidt/M > Schnabel/M 13579c10907 < Schopenhauer --- > Schopenhauer/M 13583c10911,10912 < Schubert --- > Schrödinger/M > Schubert/M 13586c10915 < Schumann --- > Schumann/M 13594c10923 < Schweitzer --- > Schweitzer/M 13597a10927 > Scientologist/SM 13607c10937 < Scotchmen --- > Scotchmen/M 13609c10939,10940 < Scotchwomen --- > Scotchwomen/M > Scotia/M 13612c10943 < Scotsmen --- > Scotsmen/M 13614,13615c10945,10946 < Scotswomen < Scott --- > Scotswomen/M > Scott/M 13619,13621c10950 < Scottsdale < Scotty < Scout --- > Scottsdale/M 13623,13624c10952,10953 < Scranton < Scriabin --- > Scranton/M > Scriabin/M 13627c10956 < Scrooge --- > Scrooge/M 13629c10958 < Scud --- > Scud/M 13632,13634c10961,10963 < Scythia < Scythian < Se/MH --- > Scythia/M > Scythian/M > Se/MHN 13636c10965 < Seaborg --- > Seaborg/M 13640d10968 < Seana/M 13650d10977 < Secunia/M 13653d10979 < See/M 13654a10981 > Seeger/M 13663d10989 < Seka/M 13670,13671c10996 < Selestina/M < Seleucid --- > Seleucid/M 13673,13674d10997 < Selia/M < Selie/M 13678,13680c11001 < Selinda/M < Seline/M < Seljuk --- > Seljuk/M 13687c11008 < Semarang --- > Semarang/M 13689c11010 < Semiramis --- > Semiramis/M 13692c11013 < Semtex --- > Semtex/M 13695,13696c11016 < Senator < Sendai --- > Sendai/M 13700,13702c11020,11022 < Senghor < Senior < Sennacherib --- > Senghor/M > Senior/M > Sennacherib/M 13706,13707c11026,11027 < Sephardi < Sephira/M --- > Sep > Sephardi/M 13711,13712c11031,11032 < Septuagint/SM < Sequoya --- > Septuagint/MS > Sequoya/M 13717d11036 < Serene 13719,13720d11037 < Serge/M < Sergeant/M 13724c11041 < Serpens --- > Serpens/M 13729,13732c11046,11048 < Seton < Seumas/M < Seurat < Seuss --- > Seton/M > Seurat/M > Seuss/M 13734,13735c11050,11051 < Severn < Severus --- > Severn/M > Severus/M 13737,13739c11053,11055 < Sevres < Seward < Sextans --- > Sevres/M > Seward/M > Sextans/M 13742c11058 < Seyfert --- > Seyfert/M 13745,13747c11061 < Shackleton < Shadow/M < Shae/M --- > Shackleton/M 13749,13750d11062 < Shaina/M < Shaine/M 13754,13757c11066,11067 < Shakespearean < Shalna/M < Shalne/M < Shalom/M --- > Shakespearean/M > Shalom's 13760,13765d11069 < Shanan/M < Shanda/M < Shandee/M < Shandeigh/M < Shandie/M < Shandra/M 13770d11073 < Shanie/M 13773,13777c11076 < Shannah/M < Shannan/M < Shannen/M < Shannon < Shanon/M --- > Shannon/M 13779,13780c11078 < Shantee/M < Shantung --- > Shantung/M 13783d11080 < Sharai/M 13785,13787c11082,11083 < Shari < Shari'a < Sharia/M --- > Shari'a/M > Shari/M 13789,13792d11084 < Sharity/M < Sharl/M < Sharla/M < Sharleen/M 13794d11085 < Sharline/M 13796,13797c11087 < Sharon < Sharona/M --- > Sharon/M 13801d11090 < Sharyl/M 13803d11091 < Shaughn/M 13813d11100 < Shay/M 13815,13817d11101 < Shaylah/M < Shaylyn/M < Shaylynn/M 13822c11106 < Sheba --- > Sheba/M 13825,13826d11108 < Sheelagh/M < Sheelah/M 13828d11109 < Sheeree/M 13830,13831d11110 < Sheff/M < Sheffie/M 13833d11111 < Sheffy/M 13837d11114 < Shela/M 13839,13840d11115 < Shelba/M < Shelbi/M 13842d11116 < Shelden/M 13846,13848c11120 < Shelley < Shelli/M < Shellie/M --- > Shelley/M 13853,13854c11125 < Shena/M < Shenandoah --- > Shenandoah/M 13857c11128 < Sheol --- > Sheol/M 13862d11132 < Shepperd/M 13868,13874c11138,11139 < Sheridan < Sherie/M < Sherill/M < Sherilyn/M < Sherline/M < Sherlock < Sherlocke/M --- > Sheridan/M > Sherlock/M 13876,13879c11141,11142 < Sherman < Shermie/M < Shermy/M < Sherpa --- > Sherman/M > Sherpa/M 13884,13886c11147 < Sherwood < Sherwynd/M < Sherye/M --- > Sherwood/M 13888a11150 > Shetlands/M 13891c11153 < Shi'ite --- > Shi'ite/M 13894c11156 < Shijiazhuang --- > Shijiazhuang/M 13896c11158 < Shillong --- > Shillong/M 13905,13907d11166 < Shirlee/M < Shirleen/M < Shirlene/M 13909d11167 < Shirline/M 13913d11170 < Shopzilla/M 13915c11172 < Shorthorn --- > Shorthorn/M 13917d11173 < Shoshanna/M 13919d11174 < Shoshoni/SM 13922,13924c11177,11179 < Shreveport < Shriner < Shropshire --- > Shreveport/M > Shriner/M > Shropshire/M 13926,13929c11181 < Shurlock/M < Shurlocke/M < Shurwood/M < Shylock --- > Shylock/M 13931c11183 < Si --- > Si/M 13935,13936d11186 < Siana/M < Sianna/M 13938,13944c11188 < Sibbie/M < Sibby/M < Sibeal/M < Sibel/M < Sibelius < Sibella/M < Sibelle/M --- > Sibelius/M 13947d11190 < Sibilla/M 13949c11192 < Sibyl --- > Sibyl/M 13956,13958c11199 < Sidnee/M < Sidney < Sidoney/M --- > Sidney/M 13960,13962c11201,11202 < Sidonnie/M < Siegfried < Siemens --- > Siegfried/M > Siemens/M 13965d11204 < Siffre/M 13967,13969d11205 < Sigfrid/M < Sigfried/M < Sigismond/M 13971,13973c11207,11208 < Sigismund < Sigismundo/M < Sigmund --- > Sigismund/M > Sigmund/M 13975,13976c11210 < Sigurd < Sigvard/M --- > Sigurd/M 13981,13983c11215,11217 < Sikkim < Sikkimese < Sikorsky --- > Sikkim/M > Sikkimese/M > Sikorsky/M 13985,13986d11218 < Sile/M < Sileas/M 13990d11221 < Silvain/M 13999c11230 < Sim/SM --- > Sim's 14002c11233 < Simmental --- > Simmental/M 14005c11236 < Simon --- > Simon/M 14008,14009d11238 < Simonette/M < Simonne/M 14011c11240,11241 < Sims --- > Simpsons/M > Sims/M 14013,14015c11243,11245 < Sinatra < Sinclair < Sinclare/M --- > Sinatra/M > Sinbad/M > Sinclair/M 14017d11246 < Sindee/M 14021c11250 < Singer --- > Singer/M 14027d11255 < Sion 14029d11256 < Siouxie/M 14032,14033d11258 < Sisely/M < Sisile/M 14035d11259 < Sissy/M 14037,14038c11261,11262 < Sistine < Sisyphean --- > Sistine/M > Sisyphean/M 14040d11263 < Siusan/M 14045d11267 < Skell/M 14048,14051d11269 < Skip/M < Skipp/MR < Skipper/M < Skippie/M 14054,14056c11272,11273 < Skopje < Sky/M < Skye --- > Skopje/M > Skye/M 14069c11286 < Sloan --- > Sloan/M 14073c11290 < Slovakia --- > Slovakia/M 14079c11296 < Sly/M --- > Sly's 14082c11299 < Smetana --- > Smetana/M 14084,14085c11301,11302 < Smith < Smithson --- > Smith/M > Smithson/M 14089,14091c11306,11308 < Smolensk < Smollett < Smuts --- > Smolensk/M > Smollett/M > Smuts/M 14101,14102c11318,11319 < Snow < Snowbelt --- > Snow/M > Snowbelt/M 14109,14110c11326,11327 < Socratic < Soddy --- > Socratic/M > Soddy/M 14114c11331 < Soho --- > Soho/M 14118d11334 < Sollie/M 14120,14122c11336,11338 < Solomon < Solon < Solzhenitsyn --- > Solomon/M > Solon/M > Solzhenitsyn/M 14130c11346 < Sondheim --- > Sondheim/M 14137,14139d11352 < Sonni/M < Sonnie/M < Sonnnie/M 14145d11357 < Sophey/M 14147c11359 < Sophia --- > Sophia/M 14149,14150c11361,11362 < Sophoclean < Sophocles --- > Sophoclean/M > Sophocles/M 14156d11367 < Sosanna/M 14158a11370 > Sourceforge/M 14161c11373 < Southampton --- > Southampton/M 14164,14165c11376,11377 < Southerner/SM < Southey --- > Southerner/M > Southey/M 14168c11380 < Soviet --- > Soviet/M 14171c11383 < Soyuz --- > Soyuz/M 14174c11386 < Spackle --- > Spackle/M 14183c11395 < Sparks --- > Sparks/M 14185c11397 < Spartacus --- > Spartacus/M 14187,14188c11399 < Speaker < Spears --- > Spears/M 14190,14191c11401,11403 < Spence/R < Spencerian --- > Spence/RM > Spencer/M > Spencerian/M 14193,14194c11405 < Spenglerian < Spense/RM --- > Spenglerian/M 14196c11407 < Spenserian --- > Spenserian/M 14202d11412 < Spike/M 14204c11414 < Spinoza --- > Spinoza/M 14210,14211c11420,11421 < Spock < Spokane --- > Spock/M > Spokane/M 14216c11426 < Sputnik --- > Sputnik/M 14218c11428 < Squanto --- > Squanto/M 14221c11431 < Srinagar --- > Srinagar/M 14226d11435 < Stacee/M 14229d11437 < Stacia/M 14233,14237c11441,11442 < Stafani/M < Staffard/M < Stafford < Staford/M < StairMaster --- > Stafford/M > StairMaster/M 14240c11445 < Stalinist --- > Stalinist/M 14242c11447 < Stamford --- > Stamford/M 14245c11450 < Standish --- > Standish/M 14250c11455 < Stanislavsky --- > Stanislavsky/M 14252,14253c11457 < Stanleigh/M < Stanley --- > Stanley/M 14255c11459 < Stanton --- > Stanton/M 14258,14260c11462,11463 < Star/M < Starbucks < Stark --- > Starbucks/M > Stark/M 14262,14264d11464 < Starla/M < Starlene/M < Starlin/M 14271c11471 < Stavro/MS --- > Stavros 14273c11473 < Steadicam --- > Steadicam/M 14275,14277c11475 < Stearne/M < Steele < Stefa/M --- > Steele/M 14282d11479 < Steffane/M 14285,14287c11482,11483 < Steffie/M < Stein/R < Steinbeck --- > Stein/MR > Steinbeck/M 14288a11485 > Steiner/M 14291,14292c11488,11489 < Stella < Stendhal --- > Stella/M > Stendhal/M 14294d11490 < Stepha/M 14296d11491 < Stephana/M 14299d11493 < Stephannie/M 14301,14306c11495,11497 < Stephen/S < Stephenie/M < Stephenson < Stephi/M < Stephie/M < Stephine/M --- > Stephen/MS > Stephens/M > Stephenson/M 14308c11499 < Stern --- > Stern/M 14310,14311c11501 < Sterno < Stesha/M --- > Sterno/M 14314d11503 < Stevana/M 14317,14318c11506,11507 < Stevena/M < Stevenson --- > Stevens/M > Stevenson/M 14320,14321d11508 < Stevy/M < Steward/M 14325d11511 < Stillmann/M 14329,14330c11515,11516 < Stinky/M < Stirling --- > Stinky's > Stirling/M 14333c11519 < Stockton --- > Stockton/M 14340,14341c11526,11527 < Stone < Stonehenge --- > Stone/M > Stonehenge/M 14343,14348c11529,11531 < Storm/M < Stormi/M < Stormie/M < Stormy/M < Stout < Stowe --- > Stormy's > Stout/M > Stowe/M 14351,14353c11534,11536 < Stradivarius < Strasbourg < Strauss --- > Stradivarius/M > Strasbourg/M > Strauss/M 14357,14358c11540,11541 < Strindberg < Stromboli --- > Strindberg/M > Stromboli/M 14365,14366c11548,11549 < Stuyvesant < Stygian --- > Stuyvesant/M > Stygian/M 14372c11555 < Sucre --- > Sucre/M 14379,14385c11562,11567 < Sue < Suellen/M < Suetonius < Suez < Suffolk < Sufi < Sufism --- > Sue/M > Suetonius/M > Suez/M > Suffolk/M > Sufi/M > Sufism/M 14388c11570 < Sukarno --- > Sukarno/M 14399d11580 < Sully 14404a11586 > Summers/M 14406c11588 < Sumter --- > Sumter/M 14412c11594 < Sundas --- > Sundas/M 14415c11597 < Sung --- > Sung/M 14419,14421c11601,11602 < Sunny/M < Sunnyvale < Sunshine/M --- > Sunny's > Sunnyvale/M 14425c11606 < Superior --- > Superior/M 14429,14431c11610,11611 < Surabaya < Surat < Surinam/M --- > Surabaya/M > Surat/M 14437d11616 < Susanetta/M 14439c11618 < Susanna --- > Susanna/M 14442d11620 < Susette/M 14446c11624 < Sussex --- > Sussex/M 14448d11625 < Sutherlan/M 14453d11629 < Suzann/M 14465c11641 < Svengali --- > Svengali/M 14469c11645 < Swanee --- > Swanee/M 14480,14481c11656 < Sweet < Swen/M --- > Sweet/M 14490d11664 < Sybila/M 14493d11666 < Sybyl/M 14495,14496d11667 < Sydel/M < Sydelle/M 14499,14500c11670 < Sylas/M < Sylvan/M --- > Sylvan's 14504d11673 < Syman/M 14508c11677 < Synge --- > Synge/M 14511c11680 < Syriac --- > Syriac/M 14513d11681 < Szechuan/M 14516c11684,11685 < T'ang --- > Sèvres/M > T'ang/M 14518a11688 > TARP 14546d11715 < Tab/MR 14550,14554d11718 < Tabbatha/M < Tabbi/M < Tabbie/M < Tabbitha/M < Tabby/M 14557d11720 < Tabina/M 14561c11724 < Tacitus --- > Tacitus/M 14564d11726 < Tadd/M 14566,14570d11727 < Taddeusz/M < Tadeas/M < Tadeo/M < Tades < Tadio/M 14572d11728 < Tadzhikistan/M 14574,14575c11730 < Taejon < Taffy/M --- > Taejon/M 14578c11733 < Tagore --- > Tagore/M 14582c11737 < Tahoe --- > Tahoe/M 14584d11738 < Tailor/M 14588c11742 < Taiping --- > Taiping/M 14590d11743 < Taite/M 14593c11746 < Taiyuan --- > Taiyuan/M 14597c11750 < Talbot --- > Talbot/M 14600c11753 < Taliesin --- > Taliesin/M 14605,14606d11757 < Tallia/M < Tallie/M 14608d11758 < Tallou/M 14610d11759 < Tally/M 14615,14616d11763 < Talyah/M < Tam/M 14619d11765 < Tamarah/M 14621d11766 < Tamarra/M 14628d11772 < Tamiko/M 14630d11773 < Tamma/M 14632d11774 < Tammara/M 14639d11780 < Tamqrah/M 14641,14642c11782 < Tamworth < Tan --- > Tamworth/M 14644,14646c11784 < Tancred < Tandi/M < Tandie/M --- > Tancred/M 14648c11786 < Taney --- > Taney/M 14651,14652c11789 < Tangshan < Tanhya/M --- > Tangshan/M 14656d11792 < Tanitansy/M 14659d11794 < Tanney/M 14661,14663c11796 < Tannie/M < Tanny/M < Tansy/M --- > Tannhäuser/M 14672d11804 < Tarah/M 14678c11810 < Tarim --- > Tarim/M 14680,14683c11812 < Tarkington < Tarra/M < Tarrah/M < Tarrance/M --- > Tarkington/M 14685,14686c11814,11815 < Tartary < Tartuffe --- > Tartary/M > Tartuffe/M 14691,14692c11820 < Tasia/M < Tasman --- > Tasman/M 14694,14695c11822,11823 < Tasmanian < Tass --- > Tasmanian/M > Tass/M 14697c11825 < Tate --- > Tate/M 14699,14700c11827 < Tatiania/M < Tatum --- > Tatum/M 14702,14704c11829 < Tawney < Tawnya/M < Tawsha/M --- > Tawney/M 14709c11834 < Tchaikovsky --- > Tchaikovsky/M 14713d11837 < Teador/M 14716c11840 < Technicolor --- > Technicolor/M 14720,14722d11843 < Tedd/M < Tedda/M < Teddi/M 14726,14729d11846 < Tedie/M < Tedman/M < Tedmund/M < Tedra/M 14733d11849 < Teheran/M 14736,14738c11852,11854 < TelePrompter < Telemachus < Telemann --- > TelePrompter/M > Telemachus/M > Telemann/M 14740a11857 > Teller/M 14742d11858 < Temp/M 14745d11860 < Temple/M 14747c11862 < Tenn --- > Tenn/M 14750c11865 < Tennyson --- > Tennyson/M 14752d11866 < Teodoor/M 14755d11868 < Teodorico/M 14759,14760c11872 < Terence < Terencio/M --- > Terence/M 14763,14764c11875 < Tereshkova < Teresina --- > Tereshkova/M 14766d11876 < Teressa/M 14768d11877 < Teriann/M 14775d11883 < Terrel/M 14780d11887 < Terrijo/M 14782d11888 < Territorial 14784,14786c11890 < Terry < Terrye/M < Tersina/M --- > Terry/M 14790,14791c11894,11895 < Tesla < Tess --- > Tesla/M > Tess/M 14793d11896 < Tessi/M 14795d11897 < Tessy/M 14798c11900 < Tetons --- > Tetons/M 14800c11902 < Teutonic --- > Teutonic/M 14802c11904 < Tex --- > Tex/M 14808c11910 < Thackeray --- > Thackeray/M 14810,14812c11912 < Thaddeus < Thaddus/M < Thadeus/M --- > Thaddeus/M 14815,14817c11915 < Thain/M < Thaine/M < Thales --- > Thales/M 14820d11917 < Thane/M 14822,14823c11919,11920 < Thanksgiving/SM < Thant --- > Thanksgiving/MS > Thant/M 14826c11923 < Thatch/MR --- > Thatcher/M 14829,14830d11925 < Thayne/M < The 14832,14833d11926 < Theadora/M < Thebault/M 14836,14837d11928 < Thedric/M < Thedrick/M 14841c11932 < Themistocles --- > Themistocles/M 14844c11935 < Theocritus --- > Theocritus/M 14846c11937 < Theodora --- > Theodora/M 14851,14853c11942,11944 < Theosophy < Theravada < Theresa --- > Theosophy/M > Theravada/M > Theresa/M 14855,14858d11945 < Theresina/M < Theresita/M < Theressa/M < Therine/M 14863c11950 < Thespian --- > Thespian/M 14865c11952 < Thessalonian/S --- > Thessalonian/SM 14866a11954 > Thessaloníki/M 14869d11956 < Thibaud/M 14872c11959 < Thimbu --- > Thimbu/M 14877d11963 < Thomasa/M 14880d11965 < Thomasine/M 14882,14884c11967,11969 < Thomistic < Thompson < Thomson --- > Thomistic/M > Thompson/M > Thomson/M 14889d11973 < Thorn 14891d11974 < Thornie/M 14893,14895c11976,11978 < Thorny/M < Thoroughbred < Thorpe --- > Thorny's > Thoroughbred/M > Thorpe/M 14907c11990 < Thurber --- > Thurber/M 14918c12001 < Tiberius --- > Tiberius/M 14921d12003 < Tibold/M 14923c12005 < Ticonderoga --- > Ticonderoga/M 14925d12006 < Tiebold/M 14927d12007 < Tiena/M 14931,14938c12011 < Tiertza/M < Tiff/M < Tiffani/M < Tiffanie/M < Tiffany < Tiffi/M < Tiffie/M < Tiffy/M --- > Tiffany/M 14943d12015 < Tildie/M 14945,14946c12017 < Tiler/M < Tillich --- > Tillich/M 14950c12021 < Tilsit --- > Tilsit/M 14955,14956d12025 < Timmi/M < Timmie/M 14958d12026 < Timofei/M 14960,14963c12028 < Timor < Timoteo/M < Timothea/M < Timothee/M --- > Timor/M 14965c12030 < Timothy --- > Timothy/M 14970d12034 < Tine/M 14973c12037 < Tinkertoy --- > Tinkertoy/M 14975,14978c12039 < Tintoretto < Tiphani/M < Tiphanie/M < Tiphany/M --- > Tintoretto/M 14980,14981c12041 < Tipperary < Tirana/M --- > Tipperary/M 14986d12045 < Tirrell/M 14991,14992c12050,12051 < Titania < Titanic --- > Titania/M > Titanic/M 14994,14996c12053,12055 < Titicaca < Tito/SM < Titus --- > Titicaca/M > Tito/M > Titus/M 15005d12063 < Tobiah/M 15009,15013c12067,12070 < Tobit < Toby < Tobye/M < Tocantins < Tocqueville --- > Tobit/M > Toby/M > Tocantins/M > Tocqueville/M 15015,15017c12072 < Todd < Toddie/M < Toddy/M --- > Todd/M 15020,15022c12075 < Toiboid/M < Toinette/M < Tojo --- > Tojo/M 15024c12077 < Tokugawa --- > Tokugawa/M 15028c12081 < Tolkien --- > Tolkien/M 15030c12083 < Toltec --- > Toltec/M 15034,15035c12087 < Tomasina/M < Tomasine/M --- > Tomas/M 15038d12089 < Tome/M 15040d12090 < Tomkin/M 15042d12091 < Tommi/M 15044c12093 < Tommy --- > Tommy/M 15046c12095 < Tomsk --- > Tomsk/M 15051,15052d12099 < Tonie/M < Tonnie/M 15054c12101 < Tony --- > Tony/M 15056d12102 < Tonye/M 15062c12108 < Tore/M --- > Tore's 15065d12110 < Torie/M 15068c12113 < Torquemada --- > Torquemada/M 15070c12115 < Torrance --- > Torrance/M 15073,15074c12118,12119 < Torrens < Torres --- > Torrens/M > Torres/M 15078d12122 < Torrin/M 15080,15081c12124,12125 < Tortola < Tortuga --- > Tortola/M > Tortuga/M 15085c12129 < Toscanini --- > Toscanini/M 15088c12132 < Toulouse --- > Toulouse/M 15091,15094c12135 < Town/M < Townes < Towney/M < Townie/M --- > Townes/M 15096d12136 < Towny/M 15100,15101d12139 < Trace/M < Tracee/M 15108c12146 < Trajan --- > Trajan/M 15110c12148 < Transcaucasia --- > Transcaucasia/M 15112c12150,12151 < Transylvania --- > Transylvania/M > Transylvanian/M 15117d12155 < Travus/M 15119,15120c12157 < Treblinka < Trefor/M --- > Treblinka/M 15125d12161 < Trenna/M 15129,15135c12165,12166 < Tresa/M < Trescha/M < Tressa/M < Trev/MR < Trevar/M < Trevelyan < Trever/M --- > Trev/M > Trevelyan/M 15143c12174 < Trieste --- > Trieste/M 15149d12179 < Trip/M 15151c12181 < Tripitaka --- > Tripitaka/M 15159d12188 < Tristam/M 15163d12191 < Trixi/M 15165d12192 < Trixy/M 15166a12194 > Troilus/M 15168c12196 < Trollope --- > Trollope/M 15171c12199 < Trotsky --- > Trotsky/M 15174d12201 < Trstram/M 15176d12202 < Truda/M 15178,15179c12204 < Trudeau < Trudey/M --- > Trudeau/M 15181d12205 < Trudie/M 15185,15187c12209 < Trujillo < Trula/M < Trumaine/M --- > Trujillo/M 15189d12210 < Trumann/M 15192c12213 < Truth --- > Truth/M 15194d12214 < Tsingtao 15199c12219 < Tu --- > Tu/M 15202,15203c12222 < Tubman < Tuck/R --- > Tubman/M 15205,15206d12223 < Tuckie/M < Tucky/M 15215d12231 < Tulley/M 15227c12243 < Tupperware --- > Tupperware/M 15229c12245 < Turgenev --- > Turgenev/M 15238,15239c12254,12255 < Turner < Turpin --- > Turner/M > Turpin/M 15248,15249c12264,12265 < Tutankhamen < Tutsi --- > Tutankhamen/M > Tutsi/M 15253,15254c12269,12270 < Twain < Tweed --- > Twain/M > Tweed/M 15258c12274,12275 < Twinkies --- > Twinkies/M > Twitter/M 15264,15266c12281 < Tybi/M < Tybie/M < Tycho --- > Tycho/M 15270,15271d12284 < Tymon/M < Tymothy/M 15273,15274c12286,12287 < Tyndale < Tyndall --- > Tyndale/M > Tyndall/M 15276c12289 < Tyre --- > Tyre/M 15278d12290 < Tyrol/M 15280c12292 < Tyrone --- > Tyrone/M 15290c12302 < UI/MS --- > UI/SM 15298,15299c12310,12311 < UPI < UPS --- > UPI/M > UPS/M 15301d12312 < URLs 15304a12316 > USB 15306c12318 < USDA --- > USDA/M 15315a12328 > UTC 15317c12330 < Ubangi --- > Ubangi/M 15320c12333 < Ucayali --- > Ucayali/M 15322,15323c12335 < Udale/M < Udall --- > Udall/M 15334,15335d12345 < Ulaanbaatar/M < Ulberto/M 15342,15344d12351 < Ulrick/M < Ulrika/M < Ulrikaumeko/M 15348c12355 < Ulyanovsk --- > Ulyanovsk/M 15352d12358 < Umeko/M 15355c12361 < Ungava --- > Ungava/M 15366,15367c12372,12373 < Upanishads < Updike --- > Upanishads/M > Updike/M 15370,15371c12376,12378 < Ur < Ural/S --- > Ur/M > Ural/SM > Urals/M 15377d12383 < Urbanus/M 15379c12385 < Urey --- > Urey/M 15381,15384c12387,12390 < Uriah < Uriel < Uris < Urquhart --- > Uriah/M > Uriel/M > Uris/M > Urquhart/M 15386,15391c12392,12393 < Ursala/M < Ursola/M < Urson/M < Ursula < Ursulina/M < Ursuline --- > Ursula/M > Ursuline/M 15394c12396 < Urumqi --- > Urumqi/M 15396c12398 < Ustinov --- > Ustinov/M 15400d12401 < Utahn 15433c12434 < Va --- > Va/M 15439,15441c12440 < Val/MY < Valaree/M < Valaria/M --- > Val/M 15445,15446d12443 < Vale/M < Valeda/M 15448,15449d12444 < Valene/M < Valenka/M 15452d12446 < Valentijn/M 15456c12450 < Valentino --- > Valentino/M 15462,15463c12456 < Valery < Valerye/M --- > Valery/M 15465,15466d12457 < Valida/M < Valina/M 15473,15476c12464 < Vallie/M < Vally/M < Valma/M < Valois --- > Valois/M 15478d12465 < Valry/M 15480,15481c12467,12469 < Van < Vance --- > Valéry/M > Van/M > Vance/M 15485,15486c12473,12474 < Vanderbilt < Vandyke --- > Vanderbilt/M > Vandyke/M 15492,15493d12479 < Vannie/M < Vanny/M 15497,15499c12483,12485 < Varanasi < Varese < Vargas --- > Varanasi/M > Varese/M > Vargas/M 15501c12487 < Vasili/MS --- > Vasili/M 15508,15509c12494,12495 < Vauban < Vaughan --- > Vauban/M > Vaughan/M 15514c12500 < Vedanta --- > Vedanta/M 15516a12503 > Vegas/M 15518c12505 < Vela --- > Vela/M 15520c12507 < Velazquez --- > Velazquez/M 15525c12512,12513 < Velvet/M --- > Velásquez/M > Velázquez/M 15530d12517 < Venita/M 15535c12522 < Venusian --- > Venusian/M 15538,15540c12525,12526 < Veradis < Verde < Verdi --- > Verde/M > Verdi/M 15544,15550d12529 < Verene/M < Verge/M < Vergil/M < Veriee/M < Verile/M < Verina/M < Verine/M 15552d12530 < Verla/M 15554c12532 < Vermeer --- > Vermeer/M 15557c12535 < Vern/MN --- > Vern/M 15559,15560c12537 < Verne < Vernen/M --- > Verne/M 15562d12538 < Vernice/M 15566,15567c12542,12543 < Veronese < Veronica --- > Veronese/M > Veronica/M 15569d12544 < Veronike/M 15573,15574c12548 < Vespasian < Vespers --- > Vespasian/M 15578d12551 < Vevay/M 15581,15582c12554,12555 < Viagra < Vic --- > Viagra/M > Vic/M 15584c12557 < Vichy --- > Vichy/M 15589c12562 < Vicky --- > Vicky/M 15591d12563 < Victoir/M 15599,15600d12570 < Vidovic/M < Vidovik/M 15602c12572 < Viennese --- > Viennese/M 15604,15605c12574,12575 < Vietcong < Vietminh --- > Vietcong/M > Vietminh/M 15610d12579 < Viki/M 15613d12581 < Vikky/M 15615,15616c12583 < Vilhelmina/M < Villa --- > Villa/M 15618c12585 < Villon --- > Villon/M 15625,15627c12592 < Vincent/MS < Vincenty/M < Vincenz/M --- > Vincent/M 15629,15630d12593 < Vinita/M < Vinni/M 15636d12598 < Viole/M 15640d12601 < Virge/M 15644d12604 < Virgina/M 15650,15651c12610,12611 < Visakhapatnam < Visayans --- > Visakhapatnam/M > Visayans/M 15656d12615 < Vita/M 15658d12616 < Vitia/M 15666,15667c12624 < Viva/M < Vivaldi --- > Vivaldi/M 15670,15671c12627 < Vivia/M < Vivian --- > Vivian/M 15673,15674d12628 < Vivianna/M < Vivianne/M 15677d12630 < Viviene/M 15679,15681d12631 < Viviyan/M < Vivyan/M < Vivyanne/M 15683,15684c12633 < Vladamir/M < Vladimir --- > Vladimir/M 15686c12635 < Vlaminck --- > Vlaminck/M 15697c12646 < Volta --- > Volta/M 15703,15706c12652 < Vonni/M < Vonnie/M < Vonny/M < Voronezh --- > Voronezh/M 15714d12659 < Vyky/M 15722a12668 > WMD 15725a12672 > WTO 15735,15736c12682,12683 < Waco < Wade --- > Waco/M > Wade/M 15739,15742c12686,12688 < Wagnerian < Wahhabi < Waikiki < Wain/M --- > Wagnerian/M > Wahhabi/M > Waikiki/M 15744d12689 < Wait/MR 15746d12690 < Waiter/M 15749c12693 < Waksman --- > Waksman/M 15753,15754c12697,12698 < Waldensian < Waldheim --- > Waldensian/M > Waldheim/M 15756d12699 < Waldon/M 15759c12702 < Walesa --- > Walesa/M 15762c12705 < Walkman --- > Walkman/M 15764,15765c12707 < Wallace < Wallache/M --- > Wallace/M 15767c12709,12710 < Wallenstein --- > Wallenstein/M > Waller/M 15769,15771c12712,12714 < Wallis < Walliw/M < Walloon --- > Wallis/M > Walloon/M > Walls/M 15772a12716 > Walmart/M 15774c12718 < Walpurgisnacht --- > Walpurgisnacht/M 15776a12721,12722 > Walter/M > Walters/M 15779d12724 < Waly/M 15782,15784d12726 < Wandie/M < Wandis/M < Waneta/M 15786d12727 < Wanids/M 15789c12730 < Ward/N --- > Ward/M 15792c12733 < Warhol --- > Warhol/M 15795c12736 < Warren --- > Warren/M 15797c12738 < Warwick --- > Warwick/M 15800c12741 < Wash --- > Wash/M 15802,15803c12743,12744 < Washingtonian/SM < Wassermann --- > Washingtonian/MS > Wassermann/M 15805,15807c12746,12748 < Waterbury < Waterford < Watergate --- > Waterbury/M > Waterford/M > Watergate/M 15810,15815c12751,12757 < Watkins < Watson < Watt/S < Watteau < Watusi < Waugh --- > Watkins/M > Watson/M > Watt/SM > Watteau/M > Watts/M > Watusi/M > Waugh/M 15819,15820d12760 < Way/M < Waylan/M 15822,15823d12761 < Waylen/M < Waylin/M 15825,15826c12763,12764 < Wayne < Weave/M --- > Wayne/M > Weave/RM 15828c12766 < Web/R --- > Web/MR 15830c12768,12769 < Webb --- > Webb/M > Weber/M 15835c12774 < Wedgwood --- > Wedgwood/M 15838c12777 < Wehrmacht --- > Wehrmacht/M 15840d12778 < Weidar/M 15847,15848c12785 < Weizmann < Welbie/M --- > Weizmann/M 15850d12786 < Welch 15854c12790 < Welles --- > Welles/M 15856c12792 < Wells --- > Wells/M 15859c12795 < Welshmen --- > Welshmen/M 15861,15862d12796 < Wenda/M < Wendall/M 15864d12797 < Wendeline/M 15867d12799 < Wendie/M 15869,15871d12800 < Wendye/M < Wenona/M < Wenonah/M 15878c12807 < Wessex --- > Wessex/M 15882d12810 < Westbrooke/M 15884,15885c12812 < Westinghouse < Westleigh/M --- > Westinghouse/M 15887c12814 < Westminster --- > Westminster/M 15889c12816 < Westphalia --- > Westphalia/M 15891d12817 < Weylin/M 15893c12819 < Wharton --- > Wharton/M 15901,15903c12827,12828 < Whistler < Whit < Whitaker --- > Whistler/M > Whitaker/M 15907,15908c12832,12833 < Whitehall < Whitehead --- > Whitehall/M > Whitehead/M 15913c12838 < Whitman --- > Whitman/M 15915c12840 < Whitsunday/SM --- > Whitsunday/MS 15917c12842 < Whittier --- > Whittier/M 15919,15920c12844 < Wiatt/M < Wicca --- > Wicca/M 15925c12849 < Wiggins --- > Wiggins/M 15929a12854 > Wikileaks 15936c12861 < Wilberforce --- > Wilberforce/M 15940d12864 < Wilburt/M 15943c12867 < Wilde/R --- > Wilde/MR 15945,15948c12869,12870 < Wildon/M < Wileen/M < Wilek/M < Wiles --- > Wilder/M > Wiles/M 15957d12878 < Wilie/M 15959,15960c12880,12881 < Wilkes < Wilkins --- > Wilkes/M > Wilkins/M 15964d12884 < Willabella/M 15966,15968c12886 < Willamina/M < Willard < Willdon/M --- > Willard/M 15970,15972c12888 < Willemstad < Willetta/M < Willette/M --- > Willemstad/M 15975,15976c12891,12893 < William/S < Williamson --- > William/SM > Williams/M > Williamson/M 15978,15979c12895 < Willis < Willow/M --- > Willis/M 15981d12896 < Willyt/M 15983d12897 < Wilmar/M 15987,15989d12900 < Wilona/M < Wilone/M < Wilow/M 15991,15992c12902 < Wilsonian < Wilt/M --- > Wilsonian/M 15997d12906 < Win/M 15999,16000c12908,12909 < Winchester/S < Windbreaker --- > Winchester/MS > Windbreaker/M 16003,16004c12912,12913 < Windhoek < Windows --- > Windhoek/M > Windows/M 16007c12916 < Windy/M --- > Windy's 16012,16013d12920 < Wini/M < Winifield/M 16018d12924 < Winnah/M 16021,16022c12927 < Winni/M < Winnie --- > Winnie/M 16027d12931 < Winonah/M 16030c12934 < Winters --- > Winters/M 16035c12939 < Wisconsinite/SM --- > Wisconsinite/MS 16037d12940 < Wit/M 16040,16042c12943,12944 < Wittie/M < Witty/M < Witwatersrand --- > Witty's > Witwatersrand/M 16046,16048c12948,12950 < Wolf < Wolfe < Wolff --- > Wolf/M > Wolfe/M > Wolff/M 16050,16052c12952 < Wolfie/M < Wolfy/M < Wollongong --- > Wollongong/M 16054c12954 < Wolsey --- > Wolsey/M 16056c12956 < Wonder --- > Wonder/M 16059c12959 < Wood/S --- > Wood/SM 16063d12962 < Woodman 16064a12964 > Woods/M 16067,16068c12967 < Woody/M < Woolf --- > Woolf/M 16071c12970 < Woolworth --- > Woolworth/M 16075c12974 < Worcestershire --- > Worcestershire/M 16081,16082c12980 < Worms < Worth --- > Worms/M 16084d12981 < Worthy/M 16090,16092c12987,12988 < Wren < Wrennie/M < Wright --- > Wren/M > Wright/M 16096c12992 < Wuhan --- > Wuhan/M 16098,16099c12994 < Wyatan/M < Wyatt --- > Wyatt/M 16102a12998 > Wyeth/M 16104d12999 < Wylma/M 16109,16110d13003 < Wynnie/M < Wynny/M 16113c13006 < Wyomingite/MS --- > Wyomingite/SM 16126c13019 < Xanadu --- > Xanadu/M 16128,16130c13021,13022 < Xanthippe < Xavier < Xaviera/M --- > Xanthippe/M > Xavier/M 16136,16137c13028 < Xenophon < Xenos --- > Xenophon/M 16139,16140c13030 < Xerxes < Xever/M --- > Xerxes/M 16142c13032 < Xi'an --- > Xi'an/M 16145c13035 < Ximenes --- > Ximenes/M 16152,16154d13041 < Xylia/M < Xylina/M < Xymenes/M 16156c13043 < YMCA --- > YMCA/M 16160c13047 < YWCA --- > YWCA/M 16165d13051 < Yahveh/M 16167c13053 < Yakima --- > Yakima/M 16169c13055 < Yakutsk --- > Yakutsk/M 16171d13056 < Yalonda/M 16177,16179c13062 < Yamoussoukro < Yanaton/M < Yance/M --- > Yamoussoukro/M 16182c13065 < Yang --- > Yang/M 16189,16190c13072 < Yaqui < Yard/M --- > Yaqui/M 16193,16194c13075 < Yaroslavl < Yasmeen/M --- > Yaroslavl/M 16197c13078 < Yates --- > Yates/M 16202,16203c13083 < Yehudit/M < Yekaterinburg --- > Yekaterinburg/M 16205c13085 < Yellowknife --- > Yellowknife/M 16207c13087 < Yeltsin --- > Yeltsin/M 16212c13092 < Yerevan --- > Yerevan/M 16216,16218d13095 < Yettie/M < Yetty/M < Yevette/M 16220c13097 < Yggdrasil --- > Yggdrasil/M 16223d13099 < Ynes/M 16228c13104 < Yokohama --- > Yokohama/M 16231,16232d13106 < Yolane/M < Yolanthe/M 16234,16236c13108 < Yonkers < Yooper/MS < Yorgo/MS --- > Yonkers/M 16240c13112 < Yorkie --- > Yorkie/M 16249,16251c13121,13122 < Young < Youngstown < Yovonnda/M --- > Young/M > Youngstown/M 16253c13124 < Ypsilanti --- > Ypsilanti/M 16257c13128 < Yugo --- > Yugo/M 16265d13135 < Yulma/M 16269d13138 < Yurik/M 16275c13144 < Z/SDMNXT --- > Z/SMNXT 16277d13145 < Zabrina/M 16280d13147 < Zacharia/SM 16282c13149 < Zacharie/M --- > Zacharias 16284d13150 < Zacherie/M 16287d13152 < Zackariah/M 16296c13161 < Zamboni --- > Zamboni/M 16298,16299c13163 < Zamora < Zandra/M --- > Zamora/M 16301d13164 < Zaneta/M 16304,16306c13167,13169 < Zapata < Zaporozhye < Zapotec --- > Zapata/M > Zaporozhye/M > Zapotec/M 16311d13173 < Zared/M 16313d13174 < Zarla/M 16317,16319c13178 < Zebadiah/M < Zebedee < Zebulen/M --- > Zebedee/M 16321,16322c13180 < Zechariah < Zed/M --- > Zechariah/M 16328c13186 < Zelig --- > Zelig/M 16335,16338c13193,13195 < Zephaniah < Zephyrus < Zeppelin < Zerk/M --- > Zephaniah/M > Zephyrus/M > Zeppelin/M 16344c13201 < Zhengzhou --- > Zhengzhou/M 16347c13204 < Zhukov --- > Zhukov/M 16350c13207 < Ziegfeld --- > Ziegfeld/M 16354d13210 < Zilvia/M 16362c13218 < Ziploc --- > Ziploc/M 16364d13219 < Zitella/M 16368,16371c13223,13224 < Zollie/M < Zollverein < Zolly/M < Zoloft --- > Zollverein/M > Zoloft/M 16373,16375d13225 < Zonda/M < Zondra/M < Zonnya/M 16377,16381c13227 < Zorah/M < Zorana/M < Zorina/M < Zorine/M < Zorn --- > Zorn/M 16388,16389c13234 < Zsazsa/M < Zsigmondy --- > Zsigmondy/M 16393d13237 < Zulema/M 16397c13241 < Zuni --- > Zuni/M 16399d13242 < Zuzana/M 16401c13244 < Zworykin --- > Zworykin/M 16404a13248 > Zürich/M 16430c13274 < abbreviate/XDSGN --- > abbreviate/DSGNX 16431a13276 > abbé/SM 16436a13282 > abductee/MS 16441c13287 < aberration/SM --- > aberration/MS 16461c13307 < abjuration/MS --- > abjuration/SM 16482c13328 < abolitionist/MS --- > abolitionist/SM 16485c13331 < abominate/XDSGN --- > abominate/DSGNX 16492c13338 < abortionist/SM --- > abortionist/MS 16501c13347 < abrasive/MYSP --- > abrasive/MYPS 16504c13350 < abridge/DSG --- > abridge/DSLG 16519c13365 < abseil/MDRSG --- > abseil/MDSG 16524c13370 < absentminded/PY --- > absentminded/YP 16526d13371 < absinth/M 16528c13373 < absolute/PMYTNRS --- > absolute/PMYTNS 16537d13381 < absorbed/U 16540d13383 < absorber/S 16542c13385 < absorption/SM --- > absorption/M 16544d13386 < absorptivity 16547c13389 < abstemious/YP --- > abstemious/PY 16549c13391 < abstention/SM --- > abstention/MS 16552c13394 < abstract/TGSPMDRY --- > abstract/GSPMDY 16557c13399 < abstruse/RPYT --- > abstruse/YP 16559a13402 > absurdist/MS 16564c13407,13408 < abuse/EGVDSM --- > abuse's > abuse/EGVDS 16582c13426 < academician/SM --- > academician/MS 16586c13430 < accelerate/GNDSX --- > accelerate/GNXDS 16589d13432 < accelerometer/S 16593c13436 < accentuate/DSGN --- > accentuate/GNDS 16602d13444 < acceptor/S 16604d13445 < accessed/A 16608c13449 < accession/GMDS --- > accession/MDGS 16611d13451 < accidence 16613c13453 < accidental/MYS --- > accidental/SMY 16615c13455 < acclamation/SM --- > acclamation/M 16618,16619d13457 < acclimatisation < acclimatise/DSG 16624c13462 < accommodate/DSGNX --- > accommodate/XGNDS 16628c13466 < accompaniment/SM --- > accompaniment/MS 16632c13470 < accomplish/GLDS --- > accomplish/DSLG 16640c13478 < accordionist/SM --- > accordionist/MS 16651,16652c13489,13490 < accoutre/DSGL < accoutrements/M --- > accoutre/DSG > accoutrements 16656d13493 < accreted 16661c13498 < acculturate/GNDS --- > acculturate/DSGN 16663c13500 < accumulate/DSGNVX --- > accumulate/XGNVDS 16665,16666c13502,13503 < accumulator/SM < accuracy/ISM --- > accumulator/MS > accuracy/IM 16671,16672d13507 < accurst < accusal 16695d13529 < achievable/U 16697d13530 < achieved/A 16706c13539 < acidify/GDSN --- > acidify/GDS 16708d13540 < acidophiles 16711c13543 < acknowledge/DSG --- > acknowledge/DSGL 16714c13546 < acknowledgment/MS --- > acknowledgment/SM 16724c13556 < acquaintance/MS --- > acquaintance/SM 16732c13564 < acquisition/SM --- > acquisition/MS 16737d13568 < acquittance 16745c13576 < acrimonious/PY --- > acrimonious/YP 16756a13588 > acrylamide 16758c13590,13591 < act/ASDGVM --- > act's > act/ASDGV 16761d13593 < actinides 16766,16768c13598 < activated/U < activation/CAIM < activations --- > activation/ICAM 16770c13600,13601 < active/IKYSM --- > active's > active/ISY 16774c13605 < activity/ASIM --- > activity/ISM 16793d13623 < acyclic 16802,16803c13632 < adaptation/SM < adapted/U --- > adaptation/MS 16806,16807d13634 < adaptive/Y < adaptivity 16816d13642 < addictive/P 16819c13645 < additive/SMY --- > additive/SM 16821,16822c13647,13649 < address/AGDSM < addressable/U --- > address's > address/AGDS > addressable 16829c13656 < adept/TMRYPS --- > adept/MYPS 16834c13661 < adhere/ZGDRS --- > adhere/GDS 16838c13665 < adhesive/SPM --- > adhesive/PSM 16841d13667 < adiabatically 16844a13671 > adiós 16852c13679 < adjournment/MS --- > adjournment/SM 16854c13681 < adjudicate/GNVDSX --- > adjudicate/GNVXDS 16859c13686 < adjuration/SM --- > adjuration/MS 16863d13689 < adjusted/U 16866d13691 < adjustor/SM 16871,16872c13696,13697 < administer/SDG < administrate/GNVXDS --- > administer/DGS > administrate/XDSGNV 16875c13700 < administrator/SM --- > administrator/MS 16889c13714 < admittance/SM --- > admittance/M 16895c13720 < admonishment/SM --- > admonishment/MS 16916c13741 < adrenalin/M --- > adrenalin's 16917a13743 > adrenergic 16919c13745 < adroit/PTRY --- > adroit/PY 16923c13749 < adsorption/MS --- > adsorption/SM 16930c13756 < adulterate/XGNDS --- > adulterate/GNDS 16963c13789 < advertise/ZGLDRS --- > advertise/LZGDRS 16968,16969d13793 < advertize/GDSL < advertizement/SM 16971c13795 < advice/SM --- > advice/M 16977d13800 < advisedly/I 16979a13803 > advisor/SM 16983c13807 < advocator/SM --- > advocator/MS 16985c13809 < adware/MS --- > adware/SM 16989d13812 < aeolian 16996c13819 < aerie/M --- > aerie/MS 17002d13824 < aerobraking 17014,17015c13836 < aery/TRSM < aesthete/S --- > aesthete/MS 17020,17021d13840 < aether < aetiology 17024c13843 < affable/TR --- > affable 17027c13846,13847 < affect/EGVDSM --- > affect's > affect/EGDS 17037c13857,13858 < affiliate/EGNDSM --- > affiliate's > affiliate/EGNDS 17041d13861 < affine 17054c13874 < affordable/U --- > affordably 17076c13896 < afterburner/SM --- > afterburner/MS 17083c13903 < aftermarket/SM --- > aftermarket/MS 17090c13910 < afterthought/MS --- > afterthought/SM 17099a13920 > ageing/SM 17108c13929 < agglomerate/XDSMGN --- > agglomerate/DSMGNX 17110c13931 < agglutinate/XDSGNV --- > agglutinate/DSXGN 17112c13933 < aggrandize/LGDS --- > aggrandize/GLDS 17114c13935 < aggravate/GNDSX --- > aggravate/GNXDS 17118d13938 < aggregated/E 17121,17122c13941,13942 < aggression/SM < aggressive/YP --- > aggression/M > aggressive/PY 17126d13945 < aggrieved/Y 17129c13948 < agile/YTR --- > agile/Y 17132d13950 < agism 17134d13951 < agitated/Y 17145c13962 < agonist --- > agonist/S 17150,17151c13967 < agoraphobic/SM < agouti --- > agoraphobic/MS 17164d13979 < agrochemical/S 17176c13991 < aid/SMDRZG --- > aid/SMDG 17206d14020 < airframe/S 17232d14045 < airstream 17242c14055 < airworthy/TPR --- > airworthy/P 17253d14065 < alanine 17261d14072 < albedo 17269d14079 < alchemical 17277d14086 < aldehyde 17287c14096 < alert/TGMDRYPS --- > alert/GMDYPS 17298,17299c14107 < algebraical/Y < algebraist --- > algebraically 17302d14109 < algorithmically 17319,17322d14125 < aline/LGDS < alinement/MS < aliphatic < aliquot/S 17326c14129 < alkali/M --- > alkali/MS 17339c14142 < allegiance/SM --- > allegiance/MS 17345d14147 < allegri 17348d14149 < allelic 17356c14157 < alleviate/DSXGN --- > alleviate/DSGN 17362c14163 < alliterate/DSGNVX --- > alliterate/DSXGNV 17365d14165 < allocatable 17367d14166 < allocated/U 17370,17371d14168 < allocator/S < allophones 17374,17375d14170 < allotrope < allotropic 17380c14175 < allowable --- > allowable/U 17391c14186 < allusive/YP --- > allusive/PY 17397d14191 < almanack/S 17420,17421c14214,14215 < alphabetization/MS < alphabetize/DRSZG --- > alphabetization/SM > alphabetize/ZGDRS 17435,17436c14229 < altercate/XN < altercation/M --- > altercation/SM 17438c14231 < alternate/XDSMYGNV --- > alternate/DSMYGNVX 17441c14234 < alternator/MS --- > alternator/SM 17462c14255 < amalgamate/DSGNX --- > amalgamate/XGNDS 17472c14265 < amateurish/PY --- > amateurish/YP 17489a14283 > ambience/MS 17495c14289 < ambitious/PY --- > ambitious/YP 17513c14307,14309 < ambush/ZGMDS --- > ambush/GMDS > ameba/MS > amebae 17514a14311 > ameboid 17521d14317 < amended/U 17525c14321 < amercement/MS --- > amercement/SM 17528d14323 < amethystine 17530c14325 < amiable/P --- > amiable 17540d14334 < amine/S 17548d14341 < ammonites 17564,17565c14357 < amongst < amontillado/MS --- > amontillado/SM 17572c14364 < amortization/MS --- > amortization/SM 17575a14368 > amoxicillin 17585a14379 > ampicillin 17589c14383 < amplify/DRSZGNX --- > amplify/NDRSXZG 17592d14385 < ampul/MS 17597a14391 > amuck 17600d14393 < amused/U 17605d14397 < anabolic 17615,17616d14406 < anagrammatic < anagrammatically 17623c14413 < analogous/PY --- > analogous/YP 17628c14418 < analyses --- > analyses/A 17632a14423 > analyticalally 17636,17637d14426 < anamorphic < anapaest/SM 17640,17641d14428 < anaphora < anaphoric 17643c14430 < anarchical/Y --- > anarchically 17665c14452 < anchorperson/MS --- > anchorperson/SM 17682d14468 < anechoic 17686c14472 < anemometer/MS --- > anemometer/SM 17689d14474 < aneroid 17694c14479 < anesthetist/SM --- > anesthetist/MS 17696,17697c14481 < anesthetize/DSG < aneurism/SM --- > anesthetize/GDS 17710d14493 < anglepoise 17726a14510 > angulation 17730c14514 < animadvert/SGD --- > animadvert/GSD 17732c14516 < animalcule/MS --- > animalcule/SM 17738c14522 < anime --- > anime/M 17749,17750d14532 < anisotropic < anisotropy/S 17756d14537 < annal/S 17759c14540 < anneal/GDRS --- > anneal/GDS 17763d14543 < annexe/M 17766c14546 < annihilator/MS --- > annihilator/SM 17769d14548 < annotated/U 17779d14557 < annoyware/S 17786d14563 < annuli 17790,17791c14567 < annulus < annunciation/MS --- > annunciation/SM 17801c14577 < anonymization/SM --- > anonymization/MS 17810c14586 < answer/BMDRGS --- > answer/BMDGS 17845d14620 < anthropic 17847,17848c14622 < anthropogenic < anthropoid/SM --- > anthropoid/MS 17850c14624 < anthropologist/MS --- > anthropologist/SM 17852d14625 < anthropometric 17856c14629 < anthropomorphize/DSG --- > anthropomorphize/DS 17863c14636 < antibiotic/SM --- > antibiotic/MS 17867,17868c14640,14641 < antichrist/MS < anticipate/GNVXDS --- > antichrist/SM > anticipate/GNXDS 17880c14653 < anticoagulant/SM --- > anticoagulant/MS 17882,17883c14655,14656 < anticommunist/MS < anticyclone/MS --- > anticommunist/SM > anticyclone/SM 17898,17899c14671,14672 < antilogarithm/MS < antimacassar/SM --- > antilogarithm/SM > antimacassar/MS 17906,17907c14679,14680 < antioxidant/SM < antiparticle/MS --- > antioxidant/MS > antiparticle/SM 17921c14694 < antiquarian/MS --- > antiquarian/SM 17927a14701 > antiscience 17937,17938c14711 < antispasmodic/SM < antistatic --- > antispasmodic/MS 17940,17941d14712 < antisymmetric < antisymmetry 17950,17951c14721,14723 < antiviral/S < antivirus/MS --- > antivenom > antiviral/MS > antivirus/M 17957c14729 < antral --- > antrum 17975d14746 < aorist 17989,17990d14759 < aperiodic < aperiodically 18002c14771 < aphrodisiac/MS --- > aphrodisiac/SM 18010d14778 < apnea 18025a14794 > apoptotic 18028c14797 < apostatize/DSG --- > apostatize/GDS 18032,18033c14801 < apostrophe/SM < apostrophized --- > apostrophe/MS 18038,18039c14806 < apotheosizes < app/MS --- > app/SM 18053,18054c14820 < appeased/U < appeasement/MS --- > appeasement/SM 18065c14831 < appertain/DGS --- > appertain/GDS 18073d14838 < applecart 18083d14847 < applicative 18087a14852,14853 > appliqué/SMG > appliquéd 18091,18092c14857,14858 < appointment/ESMA < apportion/ALDGS --- > appointment/AESM > apportion/AGDLS 18095c14861 < apposite/PYNV --- > apposite/YNVP 18098c14864 < appositive/MS --- > appositive/SM 18101d14866 < appraisees 18105c14870 < appreciate/XDSGNV --- > appreciate/DSXGNV 18113c14878 < apprehensive/PY --- > apprehensive/YP 18118d14882 < apprize/GDS 18120,18121c14884 < approachability < approachable/IU --- > approachable/UI 18124c14887 < appropriate/DSPXYGN --- > appropriate/PYGNXDS 18128c14891 < appropriator/MS --- > appropriator/SM 18135c14898 < approximate/XYGNDS --- > approximate/DSXYGN 18161d14923 < aquiculture/M 18168d14929 < arachnoid 18173,18174c14934,14935 < arbitrageur/MS < arbitrament/MS --- > arbitrageur/SM > arbitrament/SM 18180c14941 < arbitrator/SM --- > arbitrator/MS 18183d14943 < arbores 18188,18190c14948,14949 < arcade/MGS < arcana < arcane/PY --- > arcade/MS > arcane 18205c14964 < archbishopric/MS --- > archbishopric/SM 18207d14965 < archdeaconry 18209c14967 < archdiocese/SM --- > archdiocese/MS 18214c14972 < archeologist/MS --- > archeologist/SM 18216d14973 < archeopteryx 18221d14977 < archetypical 18224a14981 > archipelagoes 18229c14986 < architecture/SM --- > architecture/MS 18233d14989 < archived/U 18238d14993 < ardency 18258c15013 < argumentative/YP --- > argumentative/PY 18262c15017 < arid/TRY --- > arid/Y 18273c15028 < arithmetician/SM --- > arithmetician/MS 18275c15030,15031 < arm/EAGDSM --- > arm's > arm/EAGDS 18287d15042 < armless 18303d15057 < aromaticity 18308d15061 < aroused/U 18312c15065 < arraignment/MS --- > arraignment/SM 18314,18315c15067 < arrangeable < arrangement/ASME --- > arrangement/AESM 18322d15073 < arrestable 18332c15083 < arrow/GMDS --- > arrow/MS 18339d15089 < arsenide 18344d15093 < artefactual 18355a15105 > arthroscopy 18360c15110 < articulate/PXDSYGN --- > articulate/YGNPDSX 18363d15112 < articulatory 18386c15135 < aryl/MS --- > aryl/SM 18389d15137 < asbestosis 18394,18395d15141 < ascendency/M < ascendent/SM 18398c15144 < ascertain/BLGDS --- > ascertain/GDSBL 18403d15148 < ascorbic 18406c15151 < ascription/MS --- > ascription/M 18439c15184 < asphyxiate/DSGNX --- > asphyxiate/DSXGN 18446d15190 < aspirational 18454d15197 < assailed/U 18456c15199 < assassinate/GNDSX --- > assassinate/GNXDS 18461,18463c15204,15206 < assemblage/MS < assemble/EADSG < assembler/MS --- > assemblage/SM > assemble/ERZGSD > assembler/EM 18465c15208 < assembly/AM --- > assembly/EAM 18477d15219 < assessable 18487c15229,15230 < assign/ALGDSM --- > assign's > assign/ALGDS 18489c15232 < assignation/SM --- > assignation/MS 18491c15234 < assignee/MS --- > assignee/M 18495d15237 < assimilable 18505,18507c15247,15248 < associate/EDSGNVM < associated/U < associateship --- > associate's > associate/EDSGNV 18509d15249 < associational 18511,18512d15250 < associative/Y < associativity 18516c15254 < assortment/SM --- > assortment/MS 18519d15256 < assuaged/U 18521,18522c15258 < assuming/AU < assumption/MS --- > assumption/SM 18538c15274 < astonish/DSGL --- > astonish/DSLG 18545c15281 < astral/Y --- > astral 18549c15285 < astringent/MYS --- > astringent/SMY 18556c15292 < astrologist/SM --- > astrologist/MS 18577d15312 < asymptote/S 18593d15327 < atheistically 18594a15329 > atherosclerotic 18604d15338 < atlantes 18606c15340 < atmosphere/SM --- > atmosphere/MS 18614,18616d15347 < atomicity < atomistic < atomization 18625a15357 > atrioventricular 18636a15369 > attaché/MS 18643,18644c15376 < attained/U < attainment/MS --- > attainment/SM 18646c15378,15379 < attempt/ASDGM --- > attempt's > attempt/ASDG 18648c15381 < attendance/MS --- > attendance/SM 18653d15385 < attentional 18655c15387 < attentive/IYP --- > attentive/IPY 18658d15389 < attenuated/U 18660d15390 < attenuator/S 18662c15392 < attestation/MS --- > attestation/SM 18672,18674c15402,15404 < attractant/SM < attraction/SM < attractive/UPY --- > attractant/MS > attraction/MS > attractive/UY 18676,18678c15406 < attractor/S < attributable/U < attribute/BXDSMGNV --- > attribute/DSMGNVBX 18681c15409 < attributive/SMY --- > attributive/MYS 18691c15419 < audacious/PY --- > audacious/YP 18699d15426 < audiobook/SM 18701c15428 < audiologist/MS --- > audiologist/SM 18704c15431 < audiophile/MS --- > audiophile/SM 18708,18709c15435 < audit/GVMDS < audited/U --- > audit/GMDS 18716d15441 < augite 18718c15443 < augmentation/SM --- > augmentation/MS 18727,18728c15452 < auntie/M < aunty/SM --- > auntie/SM 18735d15458 < auric 18739,18740c15462 < auroral < auscultate/XDSGN --- > auscultate/GNDSX 18748c15470,15471 < auteur/MS --- > auteur's > auteurs 18751c15474 < authenticate/GNDSX --- > authenticate/XGNDS 18754d15476 < authenticator/S 18759c15481 < authoritarian/SM --- > authoritarian/MS 18783,18784c15505 < autocue < autodidact/MS --- > autodidact/SM 18787d15507 < autoignition 18798,18799c15518 < automobile/MGDS < automorphism/S --- > automobile/DSMG 18815d15533 < availabilities 18821c15539 < avaricious/YP --- > avaricious/Y 18828d15545 < avenged/U 18834c15551 < averse/XNV --- > averse/XN 18844c15561 < avid/TRY --- > avid/Y 18866d15582 < awakened/U 18869c15585,15586 < aware/UPT --- > awardee/S > aware/UP 18871d15587 < awarer 18878d15593 < awestricken 18891a15607 > awol 18895,18896d15610 < axehead/S < axeman 18898d15611 < axillary 18902,18903c15615 < axiomatizing < axis/MS --- > axis/M 18908d15619 < ay/M 18916d15626 < azimuthal 18932c15642 < babysitter/SM --- > babysitter/MS 18934c15644 < baccalaureate/MS --- > baccalaureate/SM 18947,18948c15657 < backbench/RSZ < backbencher/M --- > backbench/S 18967c15676 < background/MRSZ --- > background/MRZS 18988c15697 < backslapper/MS --- > backslapper/SM 19002a15712 > backstory/S 19007c15717 < backtrack/GSD --- > backtrack/SDG 19009c15719 < backward/SPY --- > backward/PSY 19018c15728 < bacteria/SM --- > bacteria/M 19024c15734 < bacteriologist/MS --- > bacteriologist/SM 19026d15735 < bacteriophage 19034c15743 < badge/MZDRSG --- > badge/MZGRS 19075d15783 < bakehouse 19083,19084c15791,15792 < balance/UDSGM < balanced/A --- > balance's > balance/UDSG 19096,19097d15803 < balefuller < balefullest 19104d15809 < ballade/S 19140c15845 < banal/RYT --- > banal/Y 19143c15848,15849 < band/ESGDM --- > band's > band/ESGD 19156d15861 < bandpass 19166,19168c15871 < banefuller < banefullest < bang/SZGMDR --- > bang/SGMDR 19185c15888 < banned/U --- > banned 19187,19188c15890 < banning/U < bannister/MS --- > banning 19195d15896 < banshie/MS 19212c15913,15914 < bar/ECUTSM --- > bar's > bar/ECUTS 19215c15917 < barbarianism/SM --- > barbarianism/MS 19225d15926 < barbeque/DSMG 19233d15933 < barcarolle/MS 19251d15950 < bargepole 19254a15954 > barista/MS 19257c15957,15958 < bark/CSGDM --- > bark's > bark/CSGD 19262d15962 < barleycorn/S 19270c15970 < barnstorm/ZGSDR --- > barnstorm/SDRZG 19290a15991,15992 > barrelled > barrelling 19304,19305d16005 < barycenter < barycentric 19308c16008 < basalt/SM --- > basalt/M 19310c16010,16011 < base/CDRSLTGM --- > base's > base/CDSLTG 19319a16021 > baser 19335d16036 < basketful 19345c16046 < bassoonist/MS --- > bassoonist/SM 19374c16075 < bathysphere/SM --- > bathysphere/MS 19395c16096 < battlefront/SM --- > battlefront/MS 19399c16100 < battleship/MS --- > battleship/SM 19403d16103 < baulk/MDGS 19421c16121 < beachcomber/MS --- > beachcomber/SM 19462c16162 < beatify/GDSXN --- > beatify/GXNDS 19469c16169 < beautician/MS --- > beautician/SM 19472,19473c16172,16173 < beautiful/TRY < beautify/DRSZGN --- > beautiful/Y > beautify/NDRSZG 19474a16175 > beaux 19488c16189 < bedazzle/GLDS --- > bedazzle/GDSL 19506,19507d16206 < bedlinen < bedmaker/S 19515d16213 < bedsheets 19527d16224 < beechwood 19529c16226 < beefburger/MS --- > beefburger/SM 19531d16227 < beefeater 19543d16238 < beermat/S 19562c16257 < befuddle/GDSL --- > befuddle/GLDS 19565a16261 > begat 19596c16292 < behaviorist/SM --- > behaviorist/MS 19611c16307 < belated/PY --- > belated/Y 19614c16310 < beleaguer/SGD --- > beleaguer/GSD 19619d16314 < believability/U 19623d16317 < believed/U 19626c16320 < belittle/DSLG --- > belittle/LDSG 19633c16327 < belletrist/SM --- > belletrist/MS 19640c16334 < belligerent/SMY --- > belligerent/MYS 19648c16342 < bellybutton/MS --- > bellybutton/SM 19664,19665c16358,16359 < benchmark/GMS < bend/BSZGMDR --- > benchmark/MS > bend/BSZGMR 19681c16375 < benevolence/MS --- > benevolence/SM 19776c16470 < bevel/JGMDS --- > bevel/GMDS 19784c16478 < bewilder/SLGD --- > bewilder/LSGD 19797a16492,16494 > biased/U > biassed > biassing 19802,19803c16499 < biblicists < bibliographer/SM --- > bibliographer/MS 19840c16536 < bifurcate/DSXGN --- > bifurcate/XDSGN 19871,19872d16566 < bilharzia < biliary 19876a16571 > bilirubin 19889c16584 < billionaire/MS --- > billionaire/SM 19893,19894c16588 < billowy/RT < billposters --- > billowy 19900d16593 < bimodal 19904c16597,16598 < bind/AUGSM --- > bind's > bind/AUGS 19909a16604 > bingeing 19917d16611 < binodal 19927d16620 < bioengineering 19943,19945d16635 < biometric/S < biometry < biomorph 19953a16644 > bioreactor/S 19954a16646 > biosensor/S 19958d16649 < biota 19961d16651 < biotechnologist 19963d16652 < biotic 19970d16658 < bipedalism 19989,19991c16677 < birdtables < birdwatcher/MS < birdwatching --- > birdwatcher/SM 19993,19994d16678 < birefringence < birefringent 19996c16680 < birth/GMD --- > birth/ZGMDR 19997a16682 > birther/M 20001c16686 < birthright/SM --- > birthright/MS 20003c16688 < birthstone/MS --- > birthstone/SM 20015d16699 < bistable 20021a16706 > bitcoin/SM 20032c16717 < bitty/TPR --- > bitty/TR 20043c16728 < bizarre/YP --- > bizarre/Y 20045c16730 < bl/D --- > bl/DG 20054,20055c16739,16740 < blackball/SMDG < blackberry/SMG --- > blackball/SGMD > blackberry/GSM 20059a16745 > blackface 20071d16756 < blackshirts 20088c16773 < blameless/PY --- > blameless/YP 20092c16777 < blammo/GDS --- > blammo 20097c16782 < blandishment/MS --- > blandishment/SM 20111a16797 > blasé 20141c16827 < blessed/TRYP --- > blessed/YP 20145d16830 < blether/GSD 20153c16838 < blindfold/GSMD --- > blindfold/SMDG 20164c16849 < blissful/PY --- > blissful/YP 20178c16863 < bloatware/S --- > bloatware 20183c16868,16869 < block/UGDSM --- > block's > block/UGDS 20196c16882 < blogroll/MS --- > blogroll/SM 20208d16893 < bloodied/U 20215c16900 < bloodmobile/SM --- > bloodmobile/MS 20218d16902 < bloodsport/S 20221,20223c16905,16906 < bloodstone < bloodstream/MS < bloodsucker/MS --- > bloodstream/SM > bloodsucker/SM 20227,20228c16910 < bloodthirsty/TPR < bloodworm --- > bloodthirsty/RPT 20230d16911 < bloodymindedness 20245,20247c16926,16927 < bloviate/SGD < bloviation < bloviator/SM --- > bloviate/GNDS > bloviator/MS 20254c16934 < blowjob/MS! --- > blowjob/SM 20264,20265d16943 < blub/S < blubbed 20268d16945 < blubbing 20278a16956 > blueing/M 20280c16958 < bluejacket/MS --- > bluejacket/SM 20286,20287c16964,16965 < blueprint/GMDS < bluestocking/MS --- > blueprint/MDGS > bluestocking/SM 20295c16973 < blunder/MDRZGJS --- > blunder/MDRZGS 20309d16986 < blushing/UY 20317c16994 < board/JZGMDRS --- > board/ZGMDRS 20319d16995 < boardgames 20321c16997 < boardinghouse/SM --- > boardinghouse/MS 20329d17004 < boatclubs 20344c17019 < bobbysoxer/MS --- > bobbysoxer/SM 20349c17024 < bobsledder/SM --- > bobsledder/MS 20365d17039 < bodiless 20369c17043 < bodybuilder/MS --- > bodybuilder/SM 20384d17057 < boggling/Y 20386,20387c17059 < bogie/M < bogometer/S --- > bogie/MS 20389,20390c17061 < bogosity/S < bogotify/DSG --- > bogosity 20392d17062 < bogy/SM 20398d17067 < boiled/U 20419,20420c17088 < boloney/M < bolshevik/M --- > bolshevik/SM 20424c17092,17093 < bolt/USGDM --- > bolt's > bolt/USGD 20430c17099 < bombardment/MS --- > bombardment/SM 20454d17122 < bonemeal 20457c17125 < boney --- > boneyard 20466d17133 < bonnie 20468c17135,17136 < bonsai/MS --- > bonobo/MS > bonsai/M 20484c17152 < bookbinder/MS --- > bookbinder/SM 20488d17155 < booked/U 20501c17168 < bookseller/SM --- > bookseller/MS 20508d17174 < bookwork 20523c17189,17190 < boot/ASGDM --- > boot's > boot/ASGD 20527a17195 > bootie/M 20531c17199 < bootlegger/SM --- > bootlegger/MS 20534d17201 < bootprints 20548,20549c17215,17216 < borderland/SM < borderline/SM --- > borderland/MS > borderline/MS 20560c17227 < borrow/SDRZGBJ --- > borrow/SDRZGJ 20568,20571c17235,17238 < bosom/USM < bosomy/RT < boson/S < boss/DRSGM --- > bosom's > bosom/US > bosomy > boss/DSGM 20588,20589c17255 < bothy < botnet/MS --- > botnet/SM 20595c17261 < bottommost --- > botulinum 20599,20600c17265 < bougainvillaea/S < bougainvillea/SM --- > bougainvillea/MS 20616d17280 < boundedness 20619c17283 < boundless/YP --- > boundless/PY 20621c17285 < bounteous/PY --- > bounteous/YP 20623c17287 < bountiful/PY --- > bountiful/YP 20630c17294 < boustrophedon/S --- > boustrophedon 20633c17297,17298 < boutonniere/SM --- > boutonniere/MS > boutonnière/MS 20643d17307 < bowie 20645d17308 < bowlder/SM 20660d17322 < boxful 20664d17325 < boxtops 20673d17333 < boyscout 20675a17336 > bpm 20679d17339 < braced/U 20683d17342 < bracing/Y 20686d17344 < bracketed/U 20691a17350 > bradycardia 20694c17353 < braggadocio/MS --- > braggadocio/SM 20703d17361 < braincell/S 20705c17363 < brainchildren --- > brainchildren/M 20707c17365 < brainless/YP --- > brainless/Y 20709c17367 < brainstorm/GSMD --- > brainstorm/SMDG 20711,20712c17369 < brainteaser/MS < brainteasing --- > brainteaser/SM 20722c17379 < brambly/TR --- > brambly 20762c17419 < breadboard/MS --- > breadboard/SM 20764c17421 < breadcrumb/SM --- > breadcrumb/MS 20769c17426 < breadwinner/MS --- > breadwinner/SM 20777c17434 < breakfast/GMDS --- > breakfast/MDGS 20791,20795c17448,17451 < breastplate/MS < breaststroke/MS < breastwork/SM < breath/MDRSZGBJ < breathalyser/S --- > breastplate/SM > breaststroke/SM > breastwork/MS > breath/MDRSZGB 20805,20806d17460 < breccias < brecciated 20845,20846c17499 < bridged/U < bridgehead/MS --- > bridgehead/SM 20852c17505,17506 < brief/CSDTGJM --- > brief's > brief/CSDTGJ 20864c17518 < brigantine/SM --- > brigantine/MS 20868c17522 < brightness/MS --- > brightness/M 20877d17530 < brimfull 20889d17541 < brinksmanship/M 20891d17542 < brio 20907,20908c17558,17559 < broadcast/AMGSD < broadcaster/SM --- > broadcast/AMDGS > broadcaster/MS 20912d17562 < broadleaved 20914c17564 < broadminded/P --- > broadminded 20918c17568 < broadsword/MS --- > broadsword/SM 20927c17577 < broke/G --- > broke 20942d17591 < broncho/SM 20945,20946c17594,17595 < broncobuster/MS < brontosaur/SM --- > broncobuster/SM > brontosaur/MS 20963c17612 < brotherhood/SM --- > brotherhood/MS 20983d17631 < bruised/U 20996,20997d17643 < brushy < brusk/RT 21014,21015c17660 < bubonic < buccaneer/SMDG --- > buccaneer/SGMD 21022c17667,17668 < buckle/UDSGM --- > buckle's > buckle/UDSG 21024d17669 < buckminsterfullerene 21031a17677 > buckyball/SM 21039c17685 < budgerigar/SM --- > budgerigar/MS 21051c17697,17698 < bug/CSM --- > bug's > bug/CS 21065a17713 > builtin 21085c17733 < bulletproof/GSD --- > bulletproof/SDG 21092c17740 < bullheaded/YP --- > bullheaded/PY 21106c17754 < bully/DRSMTG --- > bully/DSMG 21124c17772 < bumptious/YP --- > bumptious/PY 21130c17778 < bunco/MDG --- > bunco/SMDG 21133d17780 < bundled/U 21141c17788,17789 < bunk/CDGSM --- > bunk's > bunk/CDGS 21144c17792 < bunko/M --- > bunko/SMDG 21155c17803,17804 < burden/USGDM --- > burden's > burden/USGD 21160c17809 < bureaucrat/SM --- > bureaucrat/MS 21176c17825 < burgomaster/MS --- > burgomaster/SM 21179,21180c17828 < buried/U < burk/S --- > burka/S 21186c17834 < burn/MDRZGSBJ --- > burn/MDRZGSB 21188d17835 < burned/U 21195c17842 < burnt/U --- > burnt 21196a17844 > burqa/S 21216d17863 < bushfire 21219d17865 < bushland 21231,21232c17877 < businesspeople < businessperson/MS --- > businessperson/SM 21239,21240c17884 < busmen < buss/MD --- > buss/M 21242d17885 < bustard/S 21260a17904 > buttercream 21272,21273c17916,17918 < button/USDGM < buttonhole/MGDS --- > button's > button/USDG > buttonhole/DSMG 21277c17922 < buxom/RT --- > buxom 21284a17930 > buzzkill/SM 21322c17968 < cabinetmaker/SM --- > cabinetmaker/MS 21327c17973 < cablecast/MGS --- > cablecast/GMS 21346a17993 > caddie/MDS 21349c17996 < caddy/GDSM --- > caddying 21360d18006 < caesarian/MS 21368a18015 > café/SM 21370a18018,18019 > cagier > cagiest 21374d18022 < cagy/PTR 21402c18050 < calculate/AXGNVDS --- > calculate/AGNVDSX 21406c18054 < calculator/MS --- > calculator/SM 21412c18060 < calender/MDGS --- > calender's 21417d18064 < calibrated/U 21420c18067 < calico/M --- > calico/MS 21422d18068 < calif/MS 21454,21455d18099 < calorimeter/S < calorimetry 21457c18101 < calumniate/DSGN --- > calumniate/GNDS 21478d18121 < camerae 21489c18132,18133 < camp/CSTGDM --- > camp's > camp/CSGD 21493,21494c18137 < campanological < campanologist/SM --- > campanologist/MS 21506c18149 < can/SMDRJZG --- > can/SMDRZG 21510a18154 > canapé/MS 21516d18159 < canceled/U 21518c18161 < cancellation/MS --- > cancellation/SM 21526,21527c18169 < candelas < candid/RYPT --- > candid/YP 21538,21539c18180,18181 < candlestick/SM < candlewick/MS --- > candlestick/MS > candlewick/SM 21558c18200 < cannibalize/DSG --- > cannibalize/GDS 21566d18207 < cannula 21574c18215 < canonization/MS --- > canonization/SM 21579c18220,18221 < cant/CZRDGSM --- > cant's > cant/CZRDGS 21581d18222 < cantaloup/SM 21591c18232 < cantilever/GSMD --- > cantilever/MDGS 21595c18236 < cantonment/SM --- > cantonment/MS 21605c18246 < capable/TR --- > capable/I 21611d18251 < capacitive 21614c18254 < caparison/MDSG --- > caparison/MDGS 21630c18270 < capitulate/AGNXDS --- > capitulate/ADSXGN 21639c18279 < capricious/YP --- > capricious/PY 21662d18301 < caracul/M 21665c18304 < caramelize/GDS --- > caramelize/DSG 21668a18308 > caravansarai/S 21675c18315 < carbohydrate/MS --- > carbohydrate/SM 21681d18320 < carbonic 21684d18322 < carbonyl 21687a18326 > carbs 21690,21691c18329 < carburetor/MS < carcase/S --- > carburetor/SM 21694,21695c18332 < carcinogenesis < carcinogenic/SM --- > carcinogenic/MS 21708,21709c18345,18346 < cardinality < cardiogram/MS --- > cardio > cardiogram/SM 21712,21713c18349 < cardioid < cardiologist/SM --- > cardiologist/MS 21714a18351 > cardiomyopathy 21720d18356 < cared/U 21731c18367 < careless/YP --- > careless/PY 21744,21746c18380 < caricaturisation < caricaturist/MS < caricaturization --- > caricaturist/SM 21761a18396 > carnie/M 21763a18399 > carnivora 21765c18401 < carnivorous/YP --- > carnivorous/PY 21781c18417 < carpenter/MDSG --- > carpenter/MDGS 21795d18430 < carrell/SM 21801,21802c18436 < carroty/RT < carrousel/SM --- > carroty 21818c18452 < cartographer/MS --- > cartographer/SM 21823c18457 < cartoonist/SM --- > cartoonist/MS 21837c18471 < caseharden/GSD --- > caseharden/DGS 21843a18478 > cashback/M 21867c18502 < castigator/MS --- > castigator/SM 21874d18508 < castrato 21888c18522 < cataleptic/SM --- > cataleptic/MS 21890a18525,18526 > catalogue/DSMG > catalogued/U 21901c18537 < catastrophe/SM --- > catastrophe/MS 21914,21915c18550 < catchphrase/MS < catchup/M --- > catchphrase/SM 21929c18564 < caterwaul/GSMD --- > caterwaul/SMDG 21937c18572 < catheterize/GDS --- > catheterize/DSG 21943d18577 < cationic 21950a18585 > catsup/MS 21969d18603 < caulking/M 22003d18636 < cavitation 22009d18641 < cayman/MS 22020d18651 < cedarwood 22031d18661 < celebrated/U 22036d18665 < celebs 22052a18682 > cellulitis 22073c18703 < cent/ARM --- > cent/SZMR 22076c18706 < centenarian/SM --- > centenarian/MS 22079c18709 < center/MDGS --- > center/MDG 22081,22082c18711,18712 < centerfold/SM < centerpiece/SM --- > centerfold/MS > centerpiece/MS 22085c18715 < centiliter/SM --- > centiliter/MS 22087c18717 < centimeter/SM --- > centimeter/MS 22089c18719 < central/TSMRY --- > central/SMY 22094,22096c18724,18725 < centralize/CDSG < centralizer/SM < centric/F --- > centralize/CGDS > centralizer/MS 22098c18727 < centrifuge/MGDS --- > centrifuge/DSMG 22102,22103d18730 < centroid/S < cents 22117a18745 > cerebrovascular 22129,22130c18757 < certain/UYT < certainer --- > certain/UY 22134,22136c18761,18763 < certificate/MGNXDS < certification/M < certify/DSG --- > certificate/MGDS > certification's > certify/CDSNXG 22158c18785,18786 < chain/UGDSM --- > chain's > chain/UGDS 22163c18791 < chairmanship/MS --- > chairmanship/SM 22165c18793 < chairperson/MS --- > chairperson/SM 22179d18806 < challenging/Y 22182,22184c18809,18810 < chamberlain/SM < chambermaid/SM < chamberpot/S --- > chamberlain/MS > chambermaid/MS 22187d18812 < chammy/SM 22197c18822 < chancellor/SM --- > chancellor/MS 22203c18828 < chandelier/MS --- > chandelier/SM 22218c18843 < channelize/GDS --- > channelize/DSG 22220c18845 < chant/ZGMDRJS --- > chant/ZGMDRS 22224,22226c18849 < chanticleer/SM < chantry/S < chanty/SM --- > chanticleer/MS 22252c18875 < characteristic/MS --- > characteristic/SM 22255c18878 < characterize/GDS --- > characterize/DSG 22263c18886 < charge/EAMGDS --- > charge/AESDGM 22270c18893 < charioteer/SM --- > charioteer/MS 22272,22273c18895 < charismatic/SM < charismatically --- > charismatic/MS 22285c18907 < charming/TRY --- > charming/Y 22291c18913,18914 < charter/ASGDM --- > charter's > charter/ASGD 22293d18915 < chartists 22306c18928 < chastisement/MS --- > chastisement/SM 22311a18934 > chateaux 22323c18946 < chauffeur/MDGS --- > chauffeur/GMDS 22330d18952 < cheapish 22333c18955 < cheapskate/SM --- > cheapskate/MS 22336c18958,18959 < check/AGMDSU --- > check's/A > check/UAGDS 22338c18961 < checked/U --- > checkbox 22340c18963 < checkerboard/MS --- > checkerboard/SM 22347a18971 > checksum 22365,22366c18989,18990 < cheerleader/MS < cheerless/YP --- > cheerleader/SM > cheerless/PY 22371c18995 < cheeseburger/MS --- > cheeseburger/SM 22382,22383d19005 < chemiluminescence < chemiluminescent 22386c19008 < chemistry/MS --- > chemistry/SM 22388d19009 < chemosynthesis 22406c19027 < chesterfield/MS --- > chesterfield/SM 22413c19034 < chew/SBZGMDR --- > chew/SZGMDR 22424c19045 < chichi/TMRS --- > chichi/MS 22431c19052 < chickenshit/SM! --- > chickenshit/MS! 22442c19063 < chieftainship/MS --- > chieftainship/SM 22455c19076 < childish/PY --- > childish/YP 22462c19083 < childproof/SGD --- > childproof/GSD 22464d19084 < chile/MS 22469d19088 < chilli/TPMR 22473c19092 < chilly/S --- > chilly/TPR 22475d19093 < chimaerical 22483c19101 < chimpanzee/MS --- > chimpanzee/SM 22507d19124 < chiral 22511,22512c19128,19129 < chiropractic/MS < chiropractor/MS --- > chiropractic/SM > chiropractor/SM 22518a19136 > chiselled 22519a19138 > chiselling 22526d19144 < chitlings/M 22527a19146 > chitosan 22529d19147 < chivalric 22539d19156 < chlorate 22542c19159 < chlorinate/DSGN --- > chlorinate/GNDS 22545,22546c19162,19163 < chlorofluorocarbon/MS < chloroform/SMDG --- > chlorofluorocarbon/SM > chloroform/SGMD 22549d19165 < chloroquine 22552d19167 < chocaholic/SM 22555c19170 < chocoholic/MS --- > chocoholic/SM 22562c19177 < choirmaster/MS --- > choirmaster/SM 22565a19181,19182 > cholecystectomy > cholecystitis 22570d19186 < choline 22574d19189 < choosey 22593c19208 < choreograph/ZGDR --- > choreograph/DRZG 22610,22611c19225 < christened/U < christening/SM --- > christening/MS 22613c19227 < chroma --- > christology 22616d19229 < chromaticism 22618d19230 < chromatographic 22621d19232 < chromite 22628d19238 < chronicled/U 22633c19243 < chronologist/SM --- > chronologist/MS 22635,22636c19245 < chronometer/MS < chronometric --- > chronometer/SM 22645c19254 < chuff/D --- > chuffed 22658c19267 < chunk/MS --- > chunk/GMDS 22667c19276 < churchwarden/SM --- > churchwarden/MS 22678d19286 < chutzpa/M 22680a19289,19292 > château/M > châteaux > châtelaine/SM > ciabatta/SM 22683c19295 < cicatrice/SM --- > cicatrices 22687c19299,19300 < cider/MS --- > cider's > cider/S 22689d19301 < cigaret/MS 22692d19303 < ciggy/S 22708c19319,19320 < cipher/CGDSM --- > cipher's > cipher/CGDS 22721d19332 < circulant 22724,22725c19335,19336 < circularize/GDS < circulate/ADSGN --- > circularize/DSG > circulate/ADSG 22728c19339 < circumcise/GNDSX --- > circumcise/XDSGN 22731c19342 < circumference/SM --- > circumference/MS 22736c19347 < circumnavigate/XDSGN --- > circumnavigate/XGNDS 22738d19348 < circumnavigational 22740,22741c19350,19351 < circumscribe/DSG < circumscription/SM --- > circumscribe/GDS > circumscription/MS 22744c19354 < circumstance/DSMG --- > circumstance/MGDS 22746,22747c19356,19357 < circumvent/GDBS < circumvention/MS --- > circumvent/DSG > circumvention/M 22754d19363 < cissy/S 22759c19368,19369 < cite/IAGSDM --- > cite's > cite/IAGSD 22764d19373 < citrate 22771d19379 < cityscape 22776d19383 < civies/M 22780c19387 < civilization/SM --- > civilization/MS 22789c19396,19398 < claim/CKEAGDSMB --- > claim's > claim/CKEAGDS > claimable/AKE 22792c19401 < claimer/CEMS --- > claimer/ECSM 22794c19403 < clairvoyant/SM --- > clairvoyant/MS 22805c19414 < clamorous/Y --- > clamorous 22821c19430 < clapboard/MDSG --- > clapboard/MDGS 22830c19439 < clarify/NXDSG --- > clarify/XDSNG 22837c19446,19447 < clasp/UGDSM --- > clasp's > clasp/UGDS 22842,22843c19452,19453 < classicist/SM < classifiable/U --- > classicist/MS > classifiable 22846,22848c19456,19459 < classificatory < classified/MSU < classifier/SM --- > classified's > classified/U > classifieds > classifier/MS 22864,22865c19475,19477 < claw/SGMD < clay/SM --- > claw's > claw/CSGD > clay/M 22869d19480 < claymore/S 22913c19524,19526 < click/ZGMDRS --- > cliché/MS > clichéd > click/BZGMDRS 22916a19530 > clientèle/MS 22927,22928c19541 < climatological < climatologist/MS --- > climatologist/SM 22932,22934d19544 < climbable/U < climbdown < climbed/U 22950c19560 < cliometrician/SM --- > cliometrician/MS 22959,22960d19568 < cliquier < cliquiest 22962a19571 > clit/SM 22969c19578,19579 < cloak/USDGM --- > cloak's > cloak/USDG 22974d19583 < clockmaker 22980c19589,19590 < clog/USM --- > clog's > clog/US 22983a19594 > cloisonné/M 22993,22994c19604,19605 < close/EIGTSDMB < closed/U --- > closable/I > close/DRSMYTGBJP 22996d19606 < closely 23000d19609 < closer/S 23003,23004c19612,19613 < closing/SM < closure/IEMS --- > closing/M > closure/ESM 23008,23009c19617,19618 < clotheshorse/SM < clothesline/MS --- > clotheshorse/MS > clothesline/SM 23022d19630 < cloudscape/S 23028c19636,19637 < cloverleaf/MS --- > cloverleaf/SM > cloverleaves 23030c19639 < clownish/PY --- > clownish/YP 23043d19651 < clubroom 23089c19697 < coalmine/ZS --- > coalmine/S 23147,23148c19755 < cockshies < cocksucker/SM! --- > cocksucker/MS! 23154d19760 < cocoanut/MS 23157c19763 < cod/ZSMR --- > cod/SM 23162,23164c19768,19770 < code/CAGDSM < codebreaker < codec/MS --- > code's > code/CZGDRS > codec/SM 23166d19771 < codename/D 23168,23170c19773,19774 < codependent/MS < coder/CSM < codeword/S --- > codependent/SM > coder/CM 23178,23180c19782,19783 < codify/DRSNXZG < codling < codon/MS --- > codify/XDRSNZG > codon/SM 23187c19790 < coelenterate/SM --- > coelenterate/MS 23189c19792 < coerce/XDRSZGNV --- > coerce/DRSZGNV 23191d19793 < coercible 23201c19803 < coffeemaker/MS --- > coffeemaker/SM 23237c19839 < coif/MS --- > coif/MDGS 23241c19843,19844 < coil/UADGSM --- > coil's/A > coil/UADGS 23245c19848 < coincidence/SM --- > coincidence/MS 23250d19852 < cointreau 23260d19861 < coldish 23271c19872 < collaborate/GNVXDS --- > collaborate/DSXGNV 23275c19876 < collaborator/SM --- > collaborator/MS 23285d19885 < collated/U 23291,23292c19891,19893 < collect/ASGVDM < collectable/SM --- > collect's > collect/ASGVD > collectable/MS 23296,23297c19897,19898 < collection/ASM < collective/SMY --- > collection/AMS > collective/MYS 23299,23300c19900 < collectivist/MS < collectivity --- > collectivist/SM 23302c19902 < collectivize/GDS --- > collectivize/DSG 23306d19905 < collegial 23314,23316d19912 < collimation < collimator < collinear 23318,23319c19914 < collisional < collocate/MGNXDS --- > collocate/MGNDSX 23325c19920 < colloquialism/MS --- > colloquialism/SM 23327c19922 < colloquium/SM --- > colloquium/MS 23339,23340c19934 < colonialist/SM < colonic --- > colonialist/MS 23342,23343c19936 < colonization/CAM < colonizations --- > colonization/ACM 23347c19940 < colonoscope/SM --- > colonoscope/MS 23351c19944,19945 < color/AEGDSM --- > color's > color/AEGDS 23357c19951,19953 < colored/MSU --- > colored's > colored/U > coloreds 23362,23363c19958 < colorimetric < coloring/SM --- > coloring's 23367d19961 < colorizing/C 23384d19977 < comae 23393,23395c19986,19988 < combination/MS < combinatorial < combine/ADSGM --- > combination/SM > combine's > combine/ADSG 23400d19992 < combusted 23402c19994 < combustible/SM --- > combustible/MS 23414c20006 < comer/M --- > comer's 23417,23419c20009,20011 < cometary < comeuppance/MS < comfit/ESM --- > comeuppance/SM > comfit's > comfit/ES 23421c20013 < comfortable/UP --- > comfortable/P 23437c20029 < commandeer/DGS --- > commandeer/GDS 23439,23440c20031 < commanding/Y < commandment/SM --- > commandment/MS 23442c20033 < commemorate/XDSGNV --- > commemorate/XGNVDS 23445c20036 < commence/ALDSG --- > commence/ADSLG 23450c20041 < commendation/ASM --- > commendation/AMS 23452c20043 < commensurable/I --- > commensurable 23454c20045 < comment/GSMDRZ --- > comment/ZGSMD 23465c20056 < commiserate/DSXGNV --- > commiserate/GNVDSX 23468c20059 < commissariat/MS --- > commissariat/SM 23470c20061,20062 < commission/ACGSDM --- > commission's > commission/ACSGD 23481a20074 > committer/S 23483c20076,20078 < commode/EISM --- > commode's > commode/EIS > commodification 23487c20082,20083 < common/UPRYTM --- > common's > common/UPRYT 23492c20088 < commonplace/SM --- > commonplace/MS 23495d20090 < commonsensical 23501d20095 < communality 23506,23507c20100,20101 < communicant/SM < communicate/XDSGNV --- > communicant/MS > communicate/GNVDSX 23509,23510c20103,20104 < communicative/P < communicator/MS --- > communicative/U > communicator/SM 23516d20109 < communitarian 23520d20112 < commutativity 23526c20118 < compaction/S --- > compaction 23529c20121 < companion/SMB --- > companion/SBM 23537,23538c20129 < comparative/SMY < comparator/S --- > comparative/MYS 23541c20132 < compartment/MS --- > compartment/SM 23548c20139 < compatibility/ISM --- > compatibility/IM 23558c20149 < compensate/DSGNX --- > compensate/DSXGN 23561d20151 < compensator 23570,23572c20160,20161 < competition/MS < competitive/UP < competitively --- > competition/SM > competitive/PY 23575,23577c20164,20166 < compilable/U < compilation/ASM < compile/BDRSZG --- > compilation/AM > compilations > compile/DRSZG 23585d20173 < complaining/UY 23590,23591c20178 < complement/MDGS < complementarity --- > complement/SGMD 23593c20180 < complete/PYTGNBXDRS --- > complete/PYTGNXDRS 23597c20184 < complex/TMRSY --- > complex/MSY 23608c20195 < compliment/MDSG --- > compliment/MDGS 23610c20197 < comply/XDSNG --- > comply/NDSXG 23618,23620c20205,20206 < composite/MYNSX < composition/CSM < compositional --- > composite/MYGNXPDS > composition/CM 23635c20221,20222 < compress/CGVDSM --- > compress's > compress/CGDS 23637,23638c20224 < compressibility < compressible/I --- > compressible 23640,23641d20225 < compressional < compressions 23644,23645c20228,20229 < compromise/DSMG < comptroller/SM --- > compromise/MGDS > comptroller/MS 23647c20231 < compulsive/PY --- > compulsive/YP 23651,23654c20235,20236 < compunction/MS < computability < computably < computation/MS --- > compunction/SM > computation/SM 23656c20238 < compute/ADSBG --- > compute/ADSG 23661a20244 > compère/DSG 23665c20248 < concatenate/DSGNX --- > concatenate/XDSGN 23676d20258 < conceivability/I 23680c20262 < concentrate/MGNDSX --- > concentrate/DSMGNX 23682c20264 < concentrator/S --- > concentric 23689c20271 < conceptualize/GDS --- > conceptualize/DSG 23694c20276,20277 < concert/ESDGM --- > concert's > concert/ESDG 23697c20280 < concertina/SMDG --- > concertina/SGMD 23699c20282 < concertmaster/SM --- > concertmaster/MS 23708d20290 < conciliar 23711c20293 < conciliator/MS --- > conciliator/SM 23719c20301 < conclusive/IPY --- > conclusive/IYP 23723c20305 < concomitant/SMY --- > concomitant/MYS 23725c20307 < concordance/MS --- > concordance/SM 23729c20311 < concrete/DSMYGNPX --- > concrete/DSPMYGNX 23738c20320 < concurrence/MS --- > concurrence/SM 23742,23744c20324,20326 < concussion/MS < condemn/SBDRZG < condemnation/SM --- > concussion/SM > condemn/SDRZG > condemnation/MS 23747c20329 < condensate/MNSX --- > condensate/MNXS 23755c20337,20338 < condition/AGSDM --- > condition's > condition/AGSD 23757d20339 < conditionality 23764,23765c20346,20347 < condominium/SM < condone/DSGB --- > condominium/MS > condone/DSG 23768c20350 < conduct/SMV --- > conduct/MDGV 23773c20355 < conductivity/SM --- > conductivity/M 23782c20364 < confabulate/XGNDS --- > confabulate/XDSGN 23784c20366 < confection/SMRZ --- > confection/SZMR 23787d20368 < confectionist 23792c20373 < conference/SMG --- > conference/MGS 23800c20381 < confessional/MS --- > confessional/SM 23812,23814c20393,20394 < config/MS < configuration/AS < configure/ABGDS --- > configuration/S > configure/B 23816c20396 < confinement/SM --- > confinement/MS 23818c20398 < confirmation/AMS --- > confirmation/ASM 23821c20401 < confiscate/GNXDS --- > confiscate/DSGNX 23825c20405 < conflagration/SM --- > conflagration/MS 23829,23830d20408 < conflicting/Y < conflictual 23833c20411 < confocal --- > conform/ZB 23835d20412 < conformal 23838d20414 < conformational 23842d20417 < confounded/Y 23846c20421,20422 < confuse/BRZ --- > confrère/SM > confuse/RZ 23858c20434 < conglomerate/XMGNDS --- > conglomerate/DSXMGN 23861c20437 < congratulate/DSXGN --- > congratulate/XGNDS 23864,23865c20440,20441 < congregant/SM < congregate/XDSGN --- > congregant/MS > congregate/GNDSX 23878,23879c20454 < congruence/SM < congruency --- > congruence/M 23881d20455 < congruential 23891d20464 < conjugacy 23896,23897c20469,20470 < conjunctiva/MS < conjunctive/MS --- > conjunctiva/SM > conjunctive/SM 23899c20472 < conjuration/SM --- > conjuration/MS 23903d20475 < conman 23907,23912c20479,20480 < connectedness < connecter/MS < connectible < connection/ESM < connectionless < connective/SM --- > connection/EMS > connective/MS 23917c20485 < conniption/SM --- > conniption/MS 23921,23922c20489 < connoisseur/MS < connoisseurship --- > connoisseur/SM 23937,23938c20504 < conscionable/U < conscious/UPY --- > conscious/UYP 23946a20513 > consensual 23949c20516 < consequence/MS --- > consequence/SM 23953c20520 < conservation/MS --- > conservation/M 23957c20524 < conservative/PMYS --- > conservative/MYS 23964c20531 < considerate/IYNP --- > considerate/IPYN 23966c20533 < consideration/IAM --- > consideration/AIM 23971c20538 < consignment/SM --- > consignment/MS 23978c20545 < consolation/SM --- > consolation/MS 23980,23981c20547 < consoled/U < consolidate/GNXDS --- > consolidate/XDSGN 23984c20550 < consolidator/SM --- > consolidator/MS 23986a20553 > consommé/M 23989d20555 < consonantal 23996c20562 < conspirator/SM --- > conspirator/MS 24004d20569 < consternating 24006c20571 < constipate/DSGN --- > constipate/GNDS 24009c20574 < constituent/MS --- > constituent/SM 24014d20578 < constitutionalists 24018,24020c20582,20584 < constraint/MS < constrict/SGVD < constriction/MS --- > constraint/SM > constrict/GVSD > constriction/SM 24023,24025c20587,20589 < construct/CADVGSM < constructable < construction/CASM --- > construct's > construct/CADVGS > construction/CAMS 24030,24032c20594 < constructivism < constructivist < constructor/SM --- > constructor/MS 24038c20600 < consult/AGD --- > consult/GSD 24041c20603 < consultation/SM --- > consultation/MS 24043,24044c20605 < consults < consumable/MS --- > consumable/SM 24049,24050c20610,20611 < consumerist/SM < consummate/YGNDSX --- > consumerist/MS > consummate/YGNXDS 24052c20613 < consumption/SM --- > consumption/M 24061d20621 < containable/U 24064c20624 < containerize/GDS --- > containerize/DSG 24070c20630 < contaminator/MS --- > contaminator/SM 24073c20633 < contemplate/XGNVDS --- > contemplate/DSGNV 24087c20647 < contention/MS --- > contention/SM 24106d20665 < continuable 24108,24109c20667,20668 < continuance/ESM < continuation/ESM --- > continuance/EMS > continuation/EMS 24117d20675 < contra/S 24118a20677 > contrabassoon/S 24126c20685 < contradict/DGS --- > contradict/SDG 24128d20686 < contradictorily 24130c20688 < contradistinction/SM --- > contradistinction/MS 24133c20691 < contraindicate/GNDSX --- > contraindicate/GNXDS 24137a20696,20697 > contrarian/SM > contrarianism 24142,24145c20702,20703 < contrary/SMP < contrast/MDGVS < contrasting/Y < contrasty --- > contrary/PSM > contrast/MDGS 24149c20707 < contribute/GNDX --- > contribute/XGND 24151c20709 < contributor/SM --- > contributor/MS 24154c20712 < contrivance/SM --- > contrivance/MS 24157c20715,20716 < control/CSM --- > control's > control/CS 24162c20721 < controversial/UY --- > controversial/Y 24164c20723 < controvert/DGS --- > controvert/DSG 24173,24174c20732,20733 < conurbation/SM < convalesce/GDS --- > conurbation/MS > convalesce/DSG 24177d20735 < convect/GVSD 24179a20738 > convective 24184a20744 > convenor/MS 24186,24187c20746,20747 < conventicle/SM < convention/MS --- > conventicle/MS > convention/SM 24189,24190d20748 < conventionalism < conventionalist 24194c20752 < convergence/SM --- > convergence/MS 24200d20757 < conversazione 24202c20759,20760 < convert/AGSDM --- > convert's > convert/AGSD 24210c20768 < convey/SBDRZG --- > convey/SBDG 24212d20769 < conveyer/M 24215c20772 < conviction/SM --- > conviction/MS 24224d20780 < convolve/D 24231c20787,20788 < cook/ADGSM --- > cook's > cook/ADGS 24237c20794 < cookie/SM --- > cookie/M 24254c20811 < cooperative/PSMY --- > cooperative/PMYS 24256,24257c20813,20814 < cooperator/MS < coordinate/MYGNDS --- > cooperator/SM > coordinate/DSMYGN 24260c20817 < coordinator/SM --- > coordinator/MS 24267c20824 < copier/M --- > copier/SM 24272d20828 < coplanar 24275c20831 < copperhead/MS --- > copperhead/SM 24278d20833 < coppice/DSMG 24281,24283d20835 < coprocessor/S < coprolite < coprophagous 24287c20839 < copulate/XGNVDS --- > copulate/GNVDS 24290,24291c20842,20843 < copulatory < copy/DRSMZGB --- > copy's > copy/ADSG 24297,24299c20849,20851 < copyleft/S < copyright/SGMDB < copywriter/SM --- > copyleft > copyright/GSMD > copywriter/MS 24306d20857 < coralline 24322c20873 < corespondent/SM --- > corespondent/MS 24325c20876,20877 < cork/UDGSM --- > cork's > cork/UDGS 24342d20893 < cornflake/S 24345c20896 < cornflower/MS --- > cornflower/SM 24366,24367c20917 < corporate/SN < corporately --- > corporate/XYN 24369d20918 < corporations 24371d20919 < corporatist 24388d20935 < correctable/U 24390c20937 < correction/MS --- > correction/SM 24392c20939 < corrective/MS --- > corrective/SM 24394,24395c20941,20942 < corrector/S < correlate/DSXMGNV --- > corrector > correlate/XDSMGNV 24398c20945 < correlative/SM --- > correlative/MS 24400c20947 < correspondence/MS --- > correspondence/SM 24405d20951 < corrigenda 24408c20954 < corroborate/GNVXDS --- > corroborate/GNVDSX 24419d20964 < corrupted/U 24423c20968 < corruption/SM --- > corruption/MS 24432,24433d20976 < corticosteroid/S < cortisol 24434a20978 > cortège/SM 24445d20988 < cosiness/M 24448c20991 < cosmetician/SM --- > cosmetician/MS 24452c20995 < cosmical/Y --- > cosmically 24455,24456c20998,20999 < cosmological/Y < cosmologist/MS --- > cosmological > cosmologist/SM 24459c21002 < cosmopolitan/SM --- > cosmopolitan/MS 24462,24463c21005,21006 < cosponsor/SGMD < cossacks --- > cosplay > cosponsor/GSMD 24467c21010 < cost/MYGSJ --- > cost/MDYGSJ 24471d21013 < costless 24490,24491c21032,21033 < cottonseed/SM < cottontail/SM --- > cottonseed/MS > cottontail/MS 24505a21048 > coulée/SM 24515,24516c21058 < count/ERBZGDMS < countability/E --- > count/EASMDG 24518c21060 < countably/U --- > countably 24521,24523c21063,21065 < countenance/EGDSM < counter/EM < counteract/GVSD --- > countenance/EMGDS > counter/EMS > counteract/SGVD 24526,24527c21068,21069 < counterattack/MDGS < counterbalance/DSMG --- > counterattack/GMDS > counterbalance/MGDS 24529c21071 < counterclaim/SGMD --- > counterclaim/GSMD 24534a21077 > counterfactual 24542c21085 < countermand/MDGS --- > countermand/GMDS 24545c21088 < counteroffensive/MS --- > counteroffensive/SM 24547,24548c21090,21092 < counterpane/MS < counterpart/MS --- > counterpane/SM > counterpart/SM > counterpetition 24552c21096 < counterrevolution/MS --- > counterrevolution/SM 24554c21098 < countersign/GMDS --- > countersign/GSMD 24556c21100 < countersink/GMS --- > countersink/GSM 24558d21101 < counterstrike 24561c21104 < countervail/GDS --- > countervail/GSD 24575c21118,21119 < coup/ASM --- > coup's > coup/AS 24577,24578c21121,21122 < couple/CUDSGM < coupler/S --- > couple's > couple/UCGSD 24605c21149 < cousin/SMY --- > cousin/SM 24608,24609d21151 < covalent/Y < covariance/S 24613,24614c21155,21157 < cover/AEUGDSM < coverage/MS --- > cover's > cover/AEUGDS > coverage/M 24616c21159,21160 < covering/MS --- > covering's > coverings 24618d21161 < coversheet 24639c21182 < cowl/MDGSJ --- > cowl/MGSJ 24677,24678c21220 < crack/SMDRYZGBJ < crackable/U --- > crack/SMDRYZGJ 24685d21226 < crackly/TR 24713c21254 < crank/SMDRTG --- > crank/SMDG 24724c21265 < crappie/RSMT --- > crappie/M 24726c21267 < crappy --- > crappy/RSPT 24728,24730c21269,21270 < crapshooter/SM < crash/MDRSZG < crashing/Y --- > crapshooter/MS > crash/MDSG 24744c21284 < crawlspace/MS --- > crawlspace/SM 24765,24769c21305,21306 < creased/U < creatable < create/KADSGNV < created/U < creation/ASMK --- > create/AKVNGSDX > creation/KAM 24780c21317 < credential/GSMD --- > credential/SGMD 24786d21322 < creditability 24788d21323 < credited/U 24807c21342 < crematorium/SM --- > crematorium/MS 24810c21345 < crenelate/GNXDS --- > crenelate/XGNDS 24849d21383 < criminalization/C 24851d21384 < criminological 24863c21396 < crippleware/S --- > crippleware 24872c21405 < crisscross/MDSG --- > crisscross/GMDS 24907c21440 < croquet/MDG --- > croquet/M 24910c21443,21444 < cross/AUGTSDM --- > cross's > cross/AUGTSD 24918,24920c21452,21454 < crossbreed/SMG < crosscheck/SGMD < crosscurrent/SM --- > crossbreed/SGM > crosscheck/SMDG > crosscurrent/MS 24925c21459 < crosshatch/DSG --- > crosshatch/GDS 24934d21467 < crosstalk 24937d21469 < crossways 24943,24944c21475 < crotchety/P < crotchless --- > crotchety 24954,24955c21485 < crowdfunded < crowdfunding --- > crowdfund/SDG 24957c21487 < crowfoot/M --- > crowfoot/SM 24960a21491 > croûton/MS 24962d21492 < cruciate 24964d21493 < crucifiable 24966c21495 < crucifixion/MS --- > crucifixion/SM 24974a21504 > crudités/M 24979,24980c21509,21510 < cruft/SDG < crufty/S --- > cruft/SD > crufty 24993c21523 < crunch/ZGMDRS --- > crunch/GMDRS 25003c21533 < crust/ISDGM --- > crust/SMDG 25015,25017c21545 < cryonic < cryonics < cryostat --- > cryonic/S 25019,25022c21547 < crypt/CSM < cryptanalysis < cryptanalyst < cryptanalytic --- > crypt/SM 25026,25028c21551 < cryptographer/MS < cryptographic < cryptographically --- > cryptographer/SM 25031d21553 < cryptology 25037d21558 < crystallographer/S 25039a21561 > crèche/MS 25044c21566 < cub/ZGSJMDR --- > cub/ZGSMDR 25049c21571 < cubical/Y --- > cubical 25051d21572 < cubing/GD 25062c21583 < cuddly/TRP --- > cuddly/TR 25066d21586 < cufflink/SM 25072c21592 < culminate/DSXGN --- > culminate/XDSGN 25083,25084c21603,21604 < cultivar/MS < cultivate/DSBXGN --- > cultivar/SM > cultivate/BDSGN 25093,25094c21613,21614 < cumber/ISDG < cumbersome/PY --- > cumber/SDG > cumbersome/P 25100d21619 < cumquat/MS 25115d21633 < cupidinously 25131c21649 < curatorships --- > curaçao 25138c21656,21657 < cure/KZGBDRSM --- > cure's > cure/KZGBDRS 25145d21663 < curial 25149c21667 < curious/RYTP --- > curious/YP 25152c21670,21671 < curl/UDGSM --- > curl's > curl/UDGS 25159d21677 < curlycue/MS 25163,25164c21681,21682 < current/FAYSM < curricle --- > current's > current/FSY 25170,25172c21688,21692 < curse/DSMGV < cursed/TRY < cursive/EAYM --- > curse's > curse/ADSGV > cursed/Y > cursive's > cursive/EAY 25179c21699 < curtailment/MS --- > curtailment/SM 25182d21701 < curtsey/MDGS 25186d21704 < curvacious 25189d21706 < curvilinear 25196c21713,21714 < cuss/FEGSDM --- > cuss's > cuss/EFGSD 25207,25209c21725,21727 < customhouse/MS < customization/MS < customize/DSGB --- > customhouse/SM > customization/M > customize/DSG 25216d21733 < cutesie 25221d21737 < cutlas/M 25231d21746 < cuttle 25239d21753 < cyanogen 25240a21755 > cyberbully/S 25241a21757 > cybercafé/S 25244a21761 > cybersex 25249d21765 < cycleway/S 25253d21768 < cycloid 25257c21772 < cyclopaedia/SM --- > cyclopaedia/MS 25262d21776 < cyder/SM 25265c21779 < cylindrical/Y --- > cylindrical 25272c21786 < cypher/MDSG --- > cypher/M 25275d21788 < cysteine/M 25278,25281c21791,21792 < cytochrome < cytokine/MS < cytological < cytologist/MS --- > cytokine/SM > cytologist/SM 25286d21796 < cytotoxic 25291,25292c21801,21802 < d'Arezzo < d'Estaing --- > d'Arezzo/M > d'Estaing/M 25310c21820 < dado/M --- > dado/SM 25341d21850 < dalesman 25351d21859 < damaging/Y 25360,25361c21868 < damned/TR < damning/Y --- > damned/T 25371d21877 < danceable 25382c21888 < dangerous/PY --- > dangerous/Y 25401,25402d21906 < darkish < darkly/TR 25420d21923 < databank/SM 25422,25423c21925,21927 < datasheet/MS < date/DRSBMZGV --- > datasheet/SM > datatype > date/DRSMZGV 25430c21934 < datum/MS --- > datum/M 25453d21956 < daysack 25468c21971 < dead/PXTMNRY --- > dead/XTMNRY 25480d21982 < deadweight/MS 25488c21990 < dealership/MS --- > dealership/SM 25506d22007 < deathly/RT 25522c22023 < debilitate/GNDS --- > debilitate/DSGN 25527d22027 < debonaire 25529a22030 > debridement 25535d22035 < debutant 25542c22042 < decaffeinate/GDS --- > decaffeinate/DSG 25546c22046 < decapitate/XDSGN --- > decapitate/XGNDS 25554c22054 < deceitful/PY --- > deceitful/YP 25559c22059 < decelerate/XDSGN --- > decelerate/GNDS 25561c22061 < decelerator/MS --- > decelerator/SM 25564c22064 < decent/ITRY --- > decent/IY 25568d22067 < decertify/DSGNX 25570d22068 < decidability/U 25575d22072 < deciles 25579d22075 < decimalize 25583,25584c22079 < decipherable/IU < decipherment/S --- > decipherable/UI 25593c22088 < declamation/SM --- > declamation/MS 25595c22090 < declaration/SM --- > declaration/MS 25602c22097 < declination/MS --- > declination/M 25606,25607c22101 < deco < decolletage/MS --- > decolletage/SM 25609d22102 < decompose/B 25611d22103 < deconstruct/V 25613,25614d22104 < deconvolution < deconvolve 25617d22106 < decorated/U 25631,25632c22120,22121 < decrement/GDS < decremental --- > decremented > decrements 25637d22125 < decrypt/GD 25639d22126 < decustomised 25645a22133 > deduct/GVD 25654d22141 < deepish 25656c22143 < deer/SM --- > deer/M 25659d22145 < deerstalking 25663,25664c22149 < defaecate < defalcate/XDSGN --- > defalcate/DSXGN 25680c22165 < defective/MYSP --- > defective/MPYS 25685c22170 < defenestrate/NDX --- > defenestration/S 25687c22172 < defenseless/PY --- > defenseless/YP 25689d22173 < defensibility 25701a22186 > defibrillation 25706d22190 < defiled/U 25709,25710c22193 < definably/I < define/AGDRS --- > define/AGDS 25715,25718c22198,22201 < definition/ASM < definitional < definitive/PY < deflate/GNBDS --- > definition/AM > definitions > definitive/Y > deflate/GNDS 25729d22211 < deform/B 25741,25743c22223,22224 < degauss/GD < degeneracy/SM < degenerate/MV --- > degeneracy/M > degenerate/MVX 25745d22225 < degrease 25750d22229 < deictic 25765,25766c22244,22245 < delete/BXGNDRS < deleterious/Y --- > delete/XGNDS > deleterious 25771c22250 < deliberate/YVPX --- > deliberate/XYVP 25777c22256 < delicious/YP --- > delicious/PY 25781,25782c22260,22261 < deliminator/S < delineate/GNDSX --- > deliminator > delineate/GNXDS 25786c22265 < deliquesce/GDS --- > deliquesce/DSG 25788c22267 < delirious/PY --- > delirious/YP 25792c22271,22272 < deliverable/US --- > deliverable/S > deliverables/U 25799d22278 < deltoids 25808d22286 < demagog/MS 25816c22294 < demarcate/XDSGN --- > demarcate/DSGNX 25834c22312 < democratically/U --- > democratically 25836c22314 < democratize/DSG --- > democratize/GDS 25838,25840c22316,22317 < demodulator < demographer/MS < demographic/MS --- > demographer/SM > demographic/SM 25844c22321 < demolish/DRSG --- > demolish/DSG 25857c22334 < demonstrate/GNVXDS --- > demonstrate/XGNVDS 25859c22336 < demonstrative/SMYP --- > demonstrative/MYSP 25861c22338 < demonstrator/SM --- > demonstrator/MS 25864c22341 < demount/BG --- > demount 25874a22352 > denaturation 25877,25878d22354 < dendrochronological < dendrochronology 25879a22356 > deniability 25883c22360 < denigrate/DSXGN --- > denigrate/DSGN 25885a22363 > denitrification 25888d22365 < denotational 25890,25891c22367,22368 < denouement/SM < denounce/DSGL --- > denouement/MS > denounce/LDSG 25908c22385 < denunciation/MS --- > denunciation/SM 25923d22399 < dependance/M 25938c22414 < deportation/SM --- > deportation/MS 25942d22417 < depositary 25947c22422 < deprecate/GNXDS --- > deprecate/GNDS 25953,25954c22428,22429 < depredation/MS < depressant/MS --- > depredation/SM > depressant/SM 25956,25957c22431,22432 < depression/MS < depressive/MS --- > depression/SM > depressive/SM 25961d22435 < deprogram/S 25965c22439 < deputation/SM --- > deputation/MS 25969,25971c22443,22444 < dequeue/DSG < derailleur/MS < derailment/MS --- > derailleur/SM > derailment/SM 25975,25976c22448,22449 < dereliction/MS < deride/D --- > dereliction/M > deride/GDS 25982c22455 < derivative/MYS --- > derivative/MS 25987c22460 < dermatologist/MS --- > dermatologist/SM 25996a22470 > derrière/SM 25999c22473 < desalinate/DSGN --- > desalinate/GNDS 26005,26007c22479,22480 < descendant/SM < descendent/SM < descender/S --- > descendant/MS > descender 26009c22482,22483 < describer/MS --- > describe/BZGDR > describer/M 26011c22485 < descriptive/YP --- > descriptive/PY 26013d22486 < descriptivism 26032,26033c22505 < design/MRZB < designate/XDSGN --- > designate/DSGNX 26036,26038d22507 < designational < designator/S < designed/Y 26040d22508 < desirabilia 26051c22519 < desolate/DSPYGN --- > desolate/PDSYGN 26054d22521 < desorption 26059c22526 < desperate/PYN --- > desperate/YNP 26067d22533 < despond 26077,26079c22543 < dessicated < dessication < destination/MS --- > destination/SM 26084c22548 < destroy/SBZGDR --- > destroy/SZGDR 26094c22558 < desultory/P --- > desultory 26096c22560 < detachment/SM --- > detachment/MS 26101d22564 < detectability/U 26103d22565 < detectably/U 26105,26106c22567 < detectible < detection/SM --- > detection/M 26117d22577 < determinacy/I 26119c22579 < determinate/YV --- > determinate 26125d22584 < determinist 26127d22585 < deterministically 26132d22589 < detest/RZB 26135c22592 < dethrone/GL --- > dethrone/DSLG 26138d22594 < detonated/U 26150d22605 < deuteron 26177c22632 < devoted/PY --- > devoted/Y 26181c22636 < devour/SDRZG --- > devour/SDG 26184c22639 < dew/SM --- > dew/M 26195c22650 < dextrous/Y --- > dharma 26202,26203d22656 < diabolism < diachronic 26205c22658 < diacritical/S --- > diacritical 26209,26211c22662 < diagnosable/U < diagnose/DSBG < diagnosed/U --- > diagnose/DSG 26215c22666 < diagnostician/MS --- > diagnostician/SM 26218d22668 < diagonalize/DSG 26228c22678 < dialectical/Y --- > dialectical 26230d22679 < dialer 26232,26233c22681,22683 < dialog/SMGD < dialogue/SMRGD --- > dialog/SDG > dialogue/DRSMG > dialyses 26237a22688 > diamanté 26242c22693 < diamondback/SM --- > diamondback/MS 26263a22715 > dices/I 26265d22716 < dichloride 26274c22725 < dicky/RMT --- > dicky/SM 26298c22749 < dido/M --- > dido/MS 26303d22753 < dieing 26317c22767,22768 < difference/MGS --- > difference/IM > differences 26319,26322c22770,22771 < differentiability < differentiable < differential/MYS < differentiate/DSGNX --- > differential/SM > differentiate/DSGN 26325d22773 < differentiators 26332c22780 < diffuse/DRSYZGNVP --- > diffuse/DSYGNVP 26335,26336d22782 < diffusional < diffusivity 26348a22795 > digicam/S 26353c22800 < digitize/ZGDRS --- > digitize/GDS 26361,26362c22808 < digression/SM < dihedral --- > digression/MS 26382,26383c22828 < dillydally/GDS < diluent --- > dillydally/DSG 26387c22832 < dim/ZPSRY --- > dim/PSRY 26389,26391c22834,22835 < dimension/SGMD < dimensional/Y < dimensionality --- > dimension/SM > dimensional 26393c22837 < diminish/GBDS --- > diminish/GDS 26395a22840 > diminuendoes 26404,26405d22848 < dimorphic < dimorphism 26407c22850 < dimply/RT --- > dimply 26422c22865 < dingo/SM --- > dingo/M 26426c22869 < dink/RT --- > dink/R 26434c22877 < dint/MS --- > dint/M 26438d22880 < diopter/S 26445d22886 < diplexers 26453c22894,22895 < diplomatist/SM --- > diplomatist/MS > diplopia 26466c22908 < dire/YTPR --- > dire/YTR 26468d22909 < directed/U 26470,26472c22911,22912 < direction/ISM < directional/Y < directionality --- > direction/IM > directional 26473a22914 > directions 26495,26496c22936 < disaggregation < disambiguate/DGN --- > disambiguate/N 26499d22938 < disassemble/R 26505,26506c22944,22945 < disburse/LDSG < disbursement/SM --- > disburse/DSGL > disbursement/MS 26516c22955 < disciplinarian/MS --- > disciplinarian/SM 26520c22959 < disclose/DSG --- > disclose/DSBG 26527c22966 < discomfit/GD --- > discomfit/DG 26529c22968 < discommode/GD --- > discommode/DG 26533c22972 < disconsolate/YN --- > disconsolate/Y 26536c22975 < discotheque/MS --- > discotheque/SM 26538c22977 < discouragement/MS --- > discouragement/SM 26541d22979 < discoverable 26549c22987 < discrete/YNP --- > discrete/PYN 26553,26555c22991,22992 < discriminant/S < discriminate/DSGNV < discriminated/U --- > discriminant > discriminate/GNDS 26562,26565c22999,23000 < discuss/B < discussant/MS < discussed/A < discussion/MS --- > discussant/SM > discussion/SM 26568c23003 < disembowel/GLSD --- > disembowel/SDLG 26570c23005 < disfigurement/MS --- > disfigurement/SM 26573c23008 < disgruntle/LDSG --- > disgruntle/LGDS 26575a23011 > disguised/U 26584c23020 < dishevel/DGSL --- > dishevel/DGLS 26590c23026 < dishwasher/SM --- > dishwasher/MS 26593c23029 < disillusion/DGL --- > disillusion/GLD 26595c23031 < disinfectant/SM --- > disinfectant/MS 26596a23033 > disinterested/PY 26598,26600c23035 < disinvest < disjoint/P < disjointed/PY --- > disjointed/YP 26602d23036 < disjunction/S 26607d23040 < dislike/DSMG 26609c23042 < dismal/RYT --- > dismal/Y 26615d23047 < dismissible 26619c23051 < disparage/LDSG --- > disparage/DSGL 26632,26633c23064 < dispersant < disperse/XZGNVDRS --- > disperse/GNDS 26635d23065 < dispersive/Y 26637,26639d23066 < dispirited/Y < displace/R < displayed/AU 26642a23070 > disposed/I 26645a23074,23075 > disproportional > disprove/B 26649c23079 < disputation/MS --- > disputation/SM 26655c23085 < disquisition/SM --- > disquisition/MS 26662,26663d23091 < disruptor < diss/DSG 26664a23093 > dissed 26668c23097 < disseminate/DSGN --- > disseminate/GNDS 26670c23099 < dissension/MS --- > dissension/SM 26674c23103 < dissertation/MS --- > dissertation/SM 26679,26680c23108,23109 < dissipate/GNVDS < dissipated/U --- > dissing > dissipate/GNDS 26682c23111 < dissociate/GNVDS --- > dissociate/GNDS 26684d23112 < dissociative/Y 26700,26701c23128,23129 < distention/MS < distil/S --- > distemper/M > distention/SM 26708c23136 < distinctive/PY --- > distinctive/YP 26713d23140 < distinguishably/I 26716d23142 < distorted/U 26718,26719c23144,23145 < distracted/YP < distracting/Y --- > distract/DG > distracted/Y 26726c23152 < distribute/AGNVDSB --- > distribute/AGNVDS 26732,26733c23158,23159 < distributivity < distributor/SM --- > distributor's > distributor/AS 26735c23161,23162 < district/ASM --- > district's > district/AS 26741d23167 < disulphide 26744d23169 < disyllable 26749c23174 < ditsy/RT --- > ditsy 26750a23176 > dittoes 26753,26754c23179 < ditzy/RT < diuresis --- > ditzy/R 26769c23194 < diversify/NGDS --- > diversify/GNDS 26776c23201 < divestiture/SM --- > divestiture/MS 26796c23221,23222 < divorcement/SM --- > divorcement/MS > divorcée/MS 26805d23230 < djellabah/M 26807,26808c23232,23233 < djinn/M < do/SJRHZG --- > djinn > do/SJMRHZG 26814a23240 > dobro 26823c23249 < dockworker/SM --- > dockworker/MS 26829c23255 < doctrinal/Y --- > doctrinal 26839,26841d23264 < dodecahedra < dodecahedral < dodecahedron 26872a23296 > doglike 26877a23302 > dognapper 26884d23308 < dogy/SM 26889c23313,23314 < dole/FGDSM --- > dole's > dole/FGDS 26891,26892d23315 < dolefuller < dolefullest 26894d23316 < dolerite 26912c23334 < domesticate/GNDS --- > domesticate/DSGN 26935c23357 < done/AU --- > done/FAU 26942c23364 < donnybrook/SM --- > donnybrook/MS 26944c23366 < donuts/S --- > donuts 26957c23379,23380 < door/ISM --- > door's > door/IS 26959d23381 < doorhandles 26967d23388 < doornail 26980a23402,23403 > dopier > dopiest 26984c23407 < dopy/RTP --- > doppelgänger/S 27000c23423 < doss/DRZG --- > doss/DRSZG 27006a23430 > dotcom/SM 27012,27013c23436,23438 < dotty/RPT < double/ADSGM --- > dotty/RT > double's > double/ADSG 27015d23439 < doubler 27018,27019d23441 < doubletalk < doublethink 27024c23446 < doubtful/YP --- > doubtful/PY 27031d23452 < doughs 27053a23475 > downfield 27055c23477 < downhearted/YP --- > downhearted/PY 27058,27060c23480 < downland/S < download/MDSG < downloadable --- > download/MDBSG 27062d23481 < downpipes 27084c23503 < downward/YS --- > downward/S 27097a23517 > dpi 27105,27106c23525,23526 < draft/ASDGM < draftboard --- > draft's > draft/ASDG 27129c23549 < drainboard/MS --- > drainboard/SM 27139c23559 < dramatization/MS --- > dramatization/SM 27149,27152c23569,23570 < draughtboards < draughtswoman < draughtswomen < draw/MRZGSBJ --- > draughtboard/S > draw/MRZGSJ 27155d23572 < drawcord 27159c23576 < drawn/AI --- > drawn/A 27166d23582 < dreadnaught/SM 27177c23593 < dreamworld/MS --- > dreamworld/SM 27206c23622 < drillmaster/MS --- > drillmaster/SM 27215c23631 < drive/RSMZGBJ --- > drive/RSMZGJ 27219a23636 > driveshaft/SM 27222c23639 < drizzly/TR --- > drizzly 27234d23650 < drooping/Y 27248,27250c23664 < drouth/M < drouths < drove/RSMZG --- > drove/RSMZ 27266c23680 < druggie/M --- > druggie/SM 27269c23683 < druggy/SM --- > druggy 27289d23702 < dryish 27292d23704 < drystone 27294c23706 < dual/YS --- > dual 27296,27298c23708 < dualist < dualistic < duality/SM --- > duality/M 27311c23721 < duck/JMDGS --- > duck/MDGS 27316d23725 < duckpond 27319c23728,23729 < duct/CIFDGM --- > duct's/K > duct/CKIFS 27321a23732 > ducting 27323d23733 < ducts/IKC 27327c23737,23738 < due/ISM --- > due's > due/IS 27334d23744 < duffel 27347d23756 < dulness/M 27357d23765 < dumfound/GDS 27361a23770 > dumpsite/S 27366c23775 < dunderhead/SM --- > dunderhead/MS 27383d23791 < duologue 27389,27390c23797,23798 < duplicability < duplicate/AGNDSM --- > duplicate's > duplicate/AGNDS 27392d23799 < duplications 27395c23802 < duplicity/SM --- > duplicity/M 27397c23804 < durable/S --- > durable 27400c23807 < duration/MS --- > duration/M 27412d23818 < dustcover 27414d23819 < dustily 27429c23834 < dwarf/STGMDR --- > dwarf/SGMD 27438d23842 < dyad 27445c23849 < dyestuff/SM --- > dyestuff/M 27457d23860 < dyne 27459c23862 < dysfunction/SM --- > dysfunction/MS 27464d23866 < dyslexically 27466a23869 > dysphagia 27468c23871 < dystrophy --- > dystonia 27469a23873,23880 > débridement > débutante/SM > décolletage/SM > décolleté > démodé > dérailleur/MS > déshabillé/M > détente/M 27475a23887 > eMusic/M 27483a23896 > earbud/SM 27505c23918,23919 < earth/UDYGM --- > earth's > earth/UDYG 27527c23941 < east/MG --- > east/M 27544c23958 < eavesdropper/MS --- > eavesdropper/SM 27554a23969 > ecclesial 27559c23974,23975 < echo/ADGM --- > echo's > echo/ADG 27579c23995 < econometric/S --- > econometric 27584d23999 < economization 27588a24004,24005 > ecotourism/M > ecotourist/MS 27593,27594d24009 < ectopic < ectoplasm 27600a24016 > edamame 27605d24020 < edgeless 27622c24037,24038 < edit/ADGSM --- > edit's > edit/ADGS 27628,27629c24044,24045 < editorialize/GDS < editorship/MS --- > editorialize/DSG > editorship/M 27642d24057 < eduction 27646c24061 < eerie --- > eerie/RT 27649d24063 < eery/RTP 27654c24068 < effective/IYP --- > effective/IPY 27656d24069 < effector/S 27658c24071 < effectuate/GDS --- > effectuate/DSG 27670c24083 < efficiency/ISM --- > efficiency/IM 27680c24093 < effortless/PY --- > effortless/YP 27699d24111 < egis/M 27722,27724d24133 < eidetic < eigenfunction/S < eigenstate/S 27730d24138 < eightfold 27735d24142 < eightpence 27744d24150 < ejecta 27748c24154 < elaborate/PYGNDSX --- > elaborate/YGNDSPX 27757c24163 < elasticity/SM --- > elasticity/M 27759d24164 < elastodynamics 27767c24172 < elderflower --- > eldercare/M 27769,27772c24174,24177 < elect/ASDGVM < electability < electable/U < elected/U --- > eldritch > elect's > elect/ASDGV > electable 27774c24179 < electioneer/DSG --- > electioneer/DGS 27785,27786c24190,24191 < electrify/NZGDRS < electrocardiogram/SM --- > electrify/ZGNDRS > electrocardiogram/MS 27790,27791c24195 < electrochemical/Y < electrocute/GNDSX --- > electrocute/DSXGN 27794c24198 < electrodynamic/S --- > electrodynamics 27801d24204 < electroluminescent 27805,27806d24207 < electrolytically < electrolyze/GD 27811,27812d24211 < electromechanical < electromechanics 27815d24213 < electronegative 27816a24215 > electronica/M 27819d24217 < electrophoresis 27836d24233 < elementarily 27858,27859c24255 < eligibly/I < eliminate/DSXGN --- > eliminate/XDSGN 27888c24284 < elucidate/XDSGN --- > elucidate/DSGNX 27893,27894d24288 < eluted < elven 27897,27898c24291,24293 < elvish/S < em/SM --- > elvish > em's > em/S 27904c24299 < emancipate/GNDS --- > emancipate/DSGN 27906,27908c24301,24302 < emancipator/SM < emancipatory < emasculate/DSGN --- > emancipator/MS > emasculate/GNDS 27919c24313 < embarrass/LGDS --- > embarrass/GLDS 27926d24319 < embeddable 27928,27929c24321,24322 < embedding/S < embellish/LDSG --- > embedding > embellish/LGDS 27935c24328 < embitter/GDLS --- > embitter/GLDS 27943d24335 < embodiments 27947c24339 < embosom --- > embolization 27963c24355 < embryologist/SM --- > embryologist/MS 27969c24361 < emendation/SM --- > emendation/MS 27990d24381 < emissivity/S 27994a24386,24387 > emo/SM > emoji 28002,28003c24395 < emotionality < emotionalize/DSG --- > emotionalize/GDS 28008,28009d24399 < empathetical < empathic 28024,28025c24414,24416 < emplacement/MS < employ/ADGLSM --- > emplacement/SM > employ's > employ/ADGLS 28027d24417 < employe/RSMZB 28029c24419 < employer/M --- > employer/SM 28060c24450 < encapsulate/GNXDS --- > encapsulate/XGNDS 28066d24455 < encephalopathy 28076,28077c24465,24466 < encircle/LDSG < encirclement/SM --- > encircle/DSGL > encirclement/M 28089c24478 < encourage/DRSGL --- > encourage/DSLG 28092c24481 < encroach/GDSL --- > encroach/GLDS 28095c24484 < encrustation/MS --- > encrustation/SM 28097d24485 < encrypted/U 28101c24489 < encumbrance/SM --- > encumbrance/MS 28105d24492 < encyclopaedic 28124a24512 > endocarditis 28129,28131c24517,24520 < endomorphism/S < endoplasmic < endorphin/MS --- > endometrial > endometriosis > endometrium > endorphin/M 28133c24522 < endorsement/SM --- > endorsement/MS 28137a24527 > endothelial 28141d24530 < endpapers 28144d24532 < endungeoned 28149d24536 < endwise 28152c24539 < energetic/S --- > energetic 28163,28164c24550 < enforce/AGDS < enforceability --- > enforce/LZGDRS 28167,28169c24553,24555 < enforcement/MS < enforcer/MS < enfranchise/ELGDS --- > enforcement/M > enforcer/M > enfranchise/EGDSL 28171d24556 < enfranchiser 28173,28174c24558 < engaged/U < engagement/ESM --- > engagement/EMS 28177c24561 < engine/DSM --- > engine/SM 28182d24565 < engrained 28192d24574 < enhanceable 28194d24575 < enharmonic 28198d24578 < enjambement/SM 28202d24581 < enjoyability 28209c24588 < enlighten/LSGD --- > enlighten/SGLD 28211d24589 < enlightening/U 28226c24604 < enormous/YP --- > enormous/PY 28237d24614 < enrobed 28242c24619 < enshrine/GDSL --- > enshrine/GLDS 28256c24633 < entangle/EDSGL --- > entangle/EDSLG 28259d24635 < entangler 28262c24638 < entered/U --- > enteric 28264c24640 < enterprise/SMG --- > enterprise/MGS 28266c24642 < entertain/DRSZGL --- > entertain/ZGDRSL 28270d24645 < enthalpy/S 28273c24648 < enthrone/LGDS --- > enthrone/GDSL 28279c24654 < enthusiastically/U --- > enthusiastically 28291c24666 < entomologist/SM --- > entomologist/MS 28296,28297c24671 < entrain/DL < entrance/DSLMG --- > entrance/LDSMG 28311c24685 < entrepreneur/MS --- > entrepreneur/SM 28314d24687 < entropic 28319a24693 > entrée/MS 28338d24711 < environ/SL 28342c24715 < environmentalist/MS --- > environmentalist/SM 28352a24726,24727 > eosinophil/S > eosinophilic 28354d24728 < epaulette/MS 28359d24732 < ephemeris 28361d24733 < epically 28365,28366d24736 < epicycles < epicycloid 28370c24740 < epidemiologist/MS --- > epidemiologist/SM 28380d24749 < epigraphical 28385d24753 < epilog/MS 28387d24754 < epinephrin/M 28390,28391d24756 < epiphenomena < epiphenomenon 28394d24758 < episcopalian 28406,28407d24769 < epitaxial < epitaxy 28411d24772 < epithetic 28424c24785 < equality/ISM --- > equality/IM 28437d24797 < equiangular 28439,28441c24799 < equilateral/MS < equilibrating < equilibration --- > equilateral/SM 28448,28449c24806 < equipartition < equipment/MS --- > equipment/M 28458c24815 < equivalence/SM --- > equivalence/MS 28463c24820 < equivocate/XGNDS --- > equivocate/GNXDS 28465,28466c24822,24823 < equivocator/MS < er --- > equivocator/SM > er/C 28486d24842 < ergodic 28490d24845 < ergophobia 28498d24852 < erosional 28504d24857 < erotics/S 28524c24877,24878 < erythrocyte/MS --- > erythrocyte/SM > erythromycin 28530d24883 < escalop/GDS 28535c24888 < escapement/MS --- > escapement/SM 28542c24895 < escarpment/SM --- > escarpment/MS 28548d24900 < escorted/U 28552c24904 < escutcheon/MS --- > escutcheon/SM 28555c24907 < esophagus/M --- > esophagus/MS 28557d24908 < esoterica 28560c24911 < espadrille/SM --- > espadrille/MS 28576d24926 < essentialist 28578,28579c24928 < establish/EASDGL < established/U --- > establish/AESDGL 28585d24933 < esthete/SM 28587,28588d24934 < esthetically < esthetics/M 28595c24941 < estrangement/SM --- > estrangement/MS 28599d24944 < estuarine 28613d24957 < etherized 28616d24959 < ethicist 28628c24971 < ethnologist/MS --- > ethnologist/SM 28653d24995 < eukaryote 28665d25006 < euphonium/S 28680c25021 < evade/DRSZGB --- > evade/DRSZG 28682d25022 < evaluable 28684d25023 < evaluated/U 28686,28687d25024 < evaluational < evaluator/S 28709c25046 < event/SMG --- > event/SM 28719,28720c25056 < everlasting/SMY < everliving --- > everlasting/MYS 28725d25060 < everyman 28734d25068 < evidential 28747d25080 < evolute/NX 28749d25081 < evolutionarily 28751,28752c25083 < evolutionism < evolutionist/MS --- > evolutionist/SM 28760c25091 < exact/SPDRYTGB --- > exact/SBPDRYTG 28762,28763c25093,25094 < exacting/YP < exaction/MS --- > exacting/PY > exaction/SM 28767c25098 < exaggerate/DSGNX --- > exaggerate/XDSGN 28770c25101 < exaggerator/SM --- > exaggerator/MS 28774d25104 < examinable 28777,28778d25106 < examined/U < examinees 28799c25127 < exception/SMB --- > exception/BSM 28801a25130 > exceptionalism 28805c25134 < exchange/DRSMZG --- > exchange/DSMG 28812c25141 < excitation/SM --- > excitation/M 28818,28819c25147 < exciton < excl/S --- > excl 28821c25149 < exclamation/MS --- > exclamation/SM 28826c25154 < exclusive/MYPS --- > exclusive/PMYS 28829c25157 < excommunicate/GNXDS --- > excommunicate/GNDSX 28831c25159 < excoriate/DSXGN --- > excoriate/DSGNX 28842d25169 < excruciation 28847c25174 < excursionist/SM --- > excursionist/MS 28855,28856d25181 < execked < execking 28862c25187 < execution/MRZ --- > execution/ZMR 28875c25200 < exemplify/XGDSN --- > exemplify/GDSXN 28878c25203 < exercise/DRSBMZG --- > exercise/DRSMZG 28892c25217 < exhibition/ZMRS --- > exhibition/MS 28896c25221 < exhilarate/GNDS --- > exhilarate/DSGN 28899c25224 < exhortation/SM --- > exhortation/MS 28913,28914c25238 < existentialist/SM < existentialistic --- > existentialist/MS 28917d25240 < exocrine 28922a25246 > exoplanet/MS 28928,28929c25252 < exorcize/DSG < exoskeleton/MS --- > exoskeleton/SM 28932d25254 < exothermically 28938,28940c25260 < expand/BGSDR < expandability < expanded/U --- > expand/BGSD 28947c25267 < expansive/PY --- > expansive/YP 28952c25272 < expatriate/MGNDS --- > expatriate/DSMGN 28955c25275 < expectancy/SM --- > expectancy/M 28957,28960c25277,25279 < expectation/MS < expectational < expectorant/MS < expectorate/GNDS --- > expectation/SM > expectorant/SM > expectorate/DSGN 28971c25290 < expeditious/YP --- > expeditious/PY 28973d25291 < expeditor/SM 28979c25297 < expenditure/MS --- > expenditure/SM 28981c25299 < expensive/IPY --- > expensive/IYP 28983c25301 < experience/IDM --- > experience/IMD 28987c25305 < experiment/ZGSMDR --- > experiment/MDRSZG 28990d25307 < experimentalist/S 28995d25311 < expertize 29001d25316 < expiratory 29006c25321 < explainable/U --- > explainable 29012c25327 < explicate/XGNVDS --- > explicate/XGNDS 29016,29017c25331 < explode/ZGDRS < exploded/U --- > explode/GDS 29019c25333 < exploitation/MS --- > exploitation/M 29025c25339 < explore/BZGDRS --- > explore/ZGDRS 29029c25343 < explosive/SMYP --- > explosive/SPMY 29036d25349 < exportability 29052c25365 < expression/MS --- > expression/SM 29057c25370 < expressive/YP --- > expressive/PY 29059,29060c25372,25373 < expressway/MS < expropriate/XGNDS --- > expressway/SM > expropriate/GNXDS 29062c25375 < expropriator/MS --- > expropriator/SM 29065c25378 < expurgate/XDSGN --- > expurgate/DSGNX 29072c25385 < extemporaneous/YP --- > extemporaneous/PY 29078d25390 < extendability 29081,29082c25393 < extensibility < extensible/I --- > extensible 29084c25395 < extensional/Y --- > extensional 29087d25397 < extensors 29092c25402 < exterminate/GNDSX --- > exterminate/DSXGN 29094c25404 < exterminator/SM --- > exterminator/MS 29097c25407 < externalize/GDS --- > externalize/DSG 29100c25410 < extinguish/BZGDRS --- > extinguish/ZGBDRS 29106c25416,25417 < extoll/SGD --- > extolled > extolling 29108c25419 < extortion/ZMR --- > extortion/MRZ 29111c25422 < extortionist/SM --- > extortionist/MS 29114,29115c25425,25426 < extract/BMDGVS < extraction/MS --- > extract/MDGS > extraction/SM 29118c25429 < extradite/GNDSBX --- > extradite/GNBXDS 29120d25430 < extragalactic 29123d25432 < extralinguistic 29130c25439 < extrapolate/GNXDS --- > extrapolate/XGNDS 29133,29134c25442 < extrasolar < extraterrestrial/SM --- > extraterrestrial/MS 29137c25445 < extravagance/SM --- > extravagance/MS 29139c25447 < extravaganza/SM --- > extravaganza/MS 29141,29143d25448 < extravert/MS < extrema < extremal 29161d25465 < exudate/N 29167d25470 < exulting/Y 29170c25473 < exurbanite/MS --- > exurbanite/SM 29177a25481 > eyeing 29186d25489 < eyeshadow 29194,29195d25496 < eyrie/M < eyry/SM 29201c25502 < fabricate/DSXGN --- > fabricate/DSGNX 29203,29204c25504 < fabricator/MS < fabulists --- > fabricator/SM 29207c25507,25508 < face/ACSDGM --- > face's > face/ACSDG 29212d25512 < faceplate 29218c25518 < facilitate/GNVDS --- > facilitate/GNDS 29220c25520 < facilitator/SM --- > facilitator/MS 29232c25532,25533 < factor/SMDG --- > factor's > factor/ASDG 29234,29235c25535 < factorisable < factorization/S --- > factorization 29246d25545 < fadeout 29248,29249c25547 < faerie/M < faery/SM --- > faerie/SM 29256d25553 < fagoting/M 29267c25564 < fairground/SM --- > fairground/MS 29269,29270d25565 < fairings/S < fairish 29275d25569 < fairytale 29277c25571,25572 < faithful/UPYM --- > faithful's > faithful/UPY 29291c25586 < fall/MNRZGS --- > fall/MNGS 29300d25594 < fallopian 29308,29309c25602 < falsifiability < falsifiable/U --- > falsifiable 29312c25605 < falsify/DRSZGXN --- > falsify/DRSZGNX 29316c25609,25610 < fame/DM --- > fame's > fame/D 29319d25612 < familiarities 29330a25624 > fanboy/SM 29333c25627 < fanciful/PY --- > fanciful/YP 29339a25634 > fandom 29356c25651 < faradize/DSG --- > faradize/DG 29388c25683 < fascinate/XGNDS --- > fascinate/GNDSX 29397a25693 > fashionista/MS 29404c25700 < fastidious/YP --- > fastidious/PY 29419d25714 < fatheaded/P 29426d25720 < fathomed/U 29429d25722 < fatigued/U 29433d25725 < fatted 29445c25737 < faultfinder/MS --- > faultfinder/SM 29449c25741 < faultless/YP --- > faultless/PY 29461d25752 < favored/U 29466d25756 < fawning/Y 29470a25761 > faïence/M 29474,29475d25764 < fearfuller < fearfullest 29479c25768 < fearsome/YP --- > fearsome 29482c25771 < feasibly/U --- > feasibly 29489d25777 < featherlight 29521,29522d25808 < feedstock < feedstuffs 29532d25817 < felafel/S 29534c25819 < felicitate/XGNDS --- > felicitate/GNXDS 29545c25830 < fellowship/SM --- > fellowship/MS 29562,29563d25846 < fenced/U < fencepost 29569d25851 < fenland 29576d25857 < fermion/S 29580c25861 < ferocious/YP --- > ferocious/PY 29585d25865 < ferrite 29619d25898 < fetich/MS 29627c25906,25907 < fetter/USGDM --- > fetter's > fetter/USGD 29647c25927,25929 < fiasco/M --- > fiancé/SM > fiancée/MS > fiasco/SM 29654c25936 < fiber/MD --- > fiber/M 29662d25943 < fibroblast/S 29669d25949 < fices 29676,29677c25956,25957 < fictionalization/MS < fictionalize/GDS --- > fictionalization/SM > fictionalize/DSG 29681c25961 < fiddle/DRSJMZG --- > fiddle/DRSMZG 29698c25978 < fieldwork/ZMR --- > fieldwork/MRZ 29704d25983 < fierily 29718c25997 < fig/SLM --- > fig/FSM 29724d26002 < figural 29727c26005,26006 < figure/FEGSDM --- > figure's > figure/EFGSD 29731d26009 < filamentary 29735,29738c26013,26017 < file/CAKGDSM < filer/CSM < filesystem/MS < filet/GSMD --- > file/KCSRDGZM > filename/S > filer/KCM > filesystem/SM > filet 29740c26019 < filibuster/ZGSMDR --- > filibuster/MDRSZG 29744,29745c26023,26026 < filing/SM < fill/AIDGSM --- > filing's > filings > fill's > fill/AIDGS 29766,29767c26047,26048 < filtrable < filtrate/IGNDSM --- > filtrate's > filtrate/IGNDS 29778,29780c26059,26061 < finance/ADSGM < financial/Y < financials --- > finance's > finance/ADSG > financial/YS 29784c26065 < find/BJMRZGS --- > find/JMRZGS 29788c26069,26070 < fine/CAFTGDSM --- > fine's/F > fine/CAFTGDS 29795c26077 < fingerboard/MS --- > fingerboard/SM 29797d26078 < fingerless 29801c26082 < fingerprint/MDSG --- > fingerprint/SGMD 29808c26089,26090 < finish/ADSGM --- > finish's > finish/ADSG 29811c26093 < finite/PY --- > finite/IY 29814,29815c26096 < finny/TR < fiord/SM --- > finny 29827d26107 < fired/U 29829c26109 < firefight/MRSJZG --- > firefight/MRSZG 29843d26122 < firesafe 29853d26131 < firkin 29857c26135 < firmware/MS --- > firmware/M 29883,29884c26161,26162 < fission/BSM < fissure/DSM --- > fission/BM > fissure/SM 29902d26179 < fivefold 29918c26195 < flabbergast/GSD --- > flabbergast/SGD 29949,29950c26226 < flam < flamage/S --- > flamage 29956a26233 > flambé/MD 29959,29960c26236,26237 < flameproof/DSG < flamethrower/MS --- > flameproof/DGS > flamethrower/SM 29965c26242 < flange/MDS --- > flange/MS 29969d26245 < flannelet/M 29994a26271 > flatbread 30021d26297 < flautist/SM 30032c26308 < flay/DRZGS --- > flay/DGS 30039d26314 < fledgeling/SM 30052d26326 < fleshless 30059d26332 < flexibilities 30064c26337 < flexitime/M --- > flexion 30066c26339 < flibbertigibbet/MS --- > flibbertigibbet/SM 30069d26341 < flickery 30071c26343 < flight/MDS --- > flight/MS 30074d26345 < flightpath 30088c26359,26361 < flippable --- > flipflop/S > flipflopped > flipflopping 30097c26370 < flirtation/SM --- > flirtation/MS 30105d26377 < floatation 30107,30108d26378 < floaty < flocculation 30118c26388 < floodlight/MDGS --- > floodlight/MDSG 30121c26391 < floodwater/M --- > floodwater/MS 30125,30126c26395 < floorspace < floorwalker/MS --- > floorwalker/SM 30132d26400 < flopper 30152c26420 < flouncy/TR --- > flouncy 30156c26424 < floury/RT --- > floury 30159c26427 < flow/IMGS --- > flow/MDGS 30161,30162c26429,26430 < flowed < flower/CSDGM --- > flower's > flower/CSDG 30175c26443 < fluctuate/XGNDS --- > fluctuate/GNDSX 30185c26453 < fluidize/DSG --- > fluidize/GS 30187d26454 < flukey 30193d26459 < flunkey/MS 30203,30204c26469,26470 < fluorocarbon/SM < fluoroscope/MS --- > fluorocarbon/MS > fluoroscope/SM 30215,30216c26481,26484 < flux/ADGM < fluxes --- > flux's/A > flux/IMS > fluxed > fluxing 30223c26491 < flyer/MS --- > flyer/SM 30237,30238c26505 < fo'c's'le < fo'c'sle --- > fo'c'sle/MS 30248c26515,26516 < focus/ADSGM --- > focus's > focus/ADSG 30252,30253c26520,26521 < foetid < fog/CSM --- > fog's > fog/CS 30267c26535,26536 < fold/IAUSGDM --- > fold's > fold/AUSGD 30272c26541 < foliate --- > folic 30281d26549 < folksong 30287,30288c26555 < follicular < follow/SDRZGBJ --- > follow/SDRZGJ 30299d26565 < fondu/M 30305c26571 < foobar/S --- > foobar 30313,30314c26579,26580 < foolhardy/PTR < foolish/TRYP --- > foolhardy/TPR > foolish/YP 30322c26588 < footbridge/MS --- > footbridge/SM 30334d26599 < footmarks 30337d26601 < footpads 30377d26640 < fordable/U 30387c26650 < foreclosure/SM --- > foreclosure/MS 30389d26651 < foredeck 30396,30397c26658,26660 < foregather/SGD < foregoing --- > foregather/GDS > forego/G > foregoes 30399c26662 < foreground/MDGS --- > foreground/GMDS 30421c26684 < foreordain/GDS --- > foreordain/GSD 30423d26685 < forepaws 30426c26688 < forequarter/SM --- > forequarter/MS 30431d26692 < foreseeability 30436c26697 < foreshadow/SGD --- > foreshadow/GDS 30438c26699 < foreshorten/SDG --- > foreshorten/DSG 30442c26703,26704 < forest/ACGDSM --- > forest's > forest/ACGDS 30448,30450d26709 < foreswear/GS < foreswore < foresworn 30470c26729 < forgetful/PY --- > forgetful/YP 30477c26736 < forgiven/U --- > forgiven 30490,30492c26749,26752 < forlorn/PTRY < form/CAIFDGSM < forma --- > forlorn/Y > form's > form/CAIFDGS > forma/K 30496c26756 < formalism/MS --- > formalism/M 30498d26757 < formalistic 30501c26760 < formalization/MS --- > formalization/M 30503d26761 < formant 30509c26767 < former/AIFMS --- > former/FIAM 30517a26776 > formulae 30537c26796 < forthright/PY --- > forthright/YP 30545c26804 < fortify/DRSZGNX --- > fortify/DRSNZGX 30550c26809 < fortuitous/PY --- > fortuitous/YP 30562a26822 > fossa 30564d26823 < fossiliferous 30575d26833 < foundational 30585,30587c26843 < fourpence < fourpenny < fourposter/MS --- > fourposter/SM 30613,30614c26869 < frack/DRGS < fracker/S --- > frack/SDRZG 30616c26871 < fraction/IASM --- > fraction/ISM 30618d26872 < fractionate/GND 30638c26892,26893 < franchise/EDSGM --- > franchise's > franchise/EDSG 30652a26908 > frappé/M 30661c26917,26918 < fraud/SM --- > fraud's > fraud/S 30666c26923,26924 < fray/CDGSM --- > fray's > fray/CDGS 30674c26932 < freckly/TR --- > freckly 30703c26961 < freeware/SM --- > freeware/M 30705c26963 < freewheel/DSG --- > freewheel/DGS 30708c26966,26967 < freeze/UAGSM --- > freeze's > freeze/UAGS 30710c26969 < freezing/M --- > freezing's 30718d26976 < freon/S 30736d26993 < fretboard 30751d27007 < frictionless 30754,30755c27010,27012 < friend/SM < friendless/P --- > friend's > friend/US > friendless 30757d27013 < friendlily 30759,30760c27015,27017 < friendly/UTPRM < friendship/SM --- > friendly's > friendly/UPTR > friendship/MS 30767c27024 < frighten/DZG --- > frighten/DG 30776c27033,27034 < fringe/IDSGM --- > fringe's > fringe/IDSG 30786c27044 < frivolous/YP --- > frivolous/PY 30788d27045 < friz/M 30791d27047 < frizzly/TR 30794c27050,27051 < frock/CUSM --- > frock's > frock/CUS 30796c27053 < frogging/DGS --- > frogging/S 30808c27065,27066 < front/FSDGM --- > front's > front/FSDG 30817,30818c27075 < frontispiece/SM < frontrunner/SM --- > frontispiece/MS 30821c27078,27079 < frost/CSDGM --- > frost's > frost/CSDG 30837,30838d27094 < frowning/Y < frowsty 30852,30854c27108 < fruitful/PY < fruitfuller < fruitfullest --- > fruitful/YP 30858c27112 < fruitless/YP --- > fruitless/PY 30864,30865c27118 < frustrate/GNDSX < frustrated/Y --- > frustrate/GNXDS 30869c27122 < fry/ZGDRSM --- > fry/GDSM 30872c27125 < ftp/ZGSR --- > ftp/ZGS 30875c27128 < fucker/SM! --- > fucker/M! 30880c27133,27134 < fuel/ADGSM --- > fuel's > fuel/ADGS 30889a27144 > fulfilling/U 30894d27148 < fullish 30896d27149 < fullstops 30900d27152 < fulness/M 30904d27155 < fumarole/S 30913d27163 < fuming/Y 30920c27170 < functionality --- > functionality/S 30922d27171 < functionless 30926c27175 < fundamentalist/MS --- > fundamentalist/SM 30928,30929d27176 < fundholders < fundholding 30961c27208,27209 < furl/UDGSM --- > furl's > furl/UDGS 30987c27235,27236 < fuse/CAIFGDSM --- > fuse's/A > fuse/CAIFGDS 30997c27246 < fussbudget/SM --- > fussbudget/MS 31017d27265 < fuze/MGDS 31025c27273,27274 < g/SNXB --- > fête/SM > g/SNXVB 31055c27304,27305 < gain/ADGSM --- > gain's > gain/ADGS 31067c27317,27318 < gale/ASM --- > gale's > gale/AS 31071,31072c27322,27323 < gallantry/SM < gallbladder/SM --- > gallantry/M > gallbladder/MS 31075c27326 < gallery/DSM --- > gallery/SM 31087d27337 < galoshe/M 31095d27344 < galvanometric 31101c27350 < game/MYZTGDRSP --- > game/MYTGDRSP 31103c27352 < gamekeeper/SM --- > gamekeeper/MS 31106d27354 < gamesmen 31111c27359 < gamify/NGDS --- > gamify/DSNG 31122c27370 < gang/MDYGS --- > gang/MDGS 31129d27376 < gangly/RT 31135d27381 < gangsterism 31141,31142d27386 < gaolbirds < gaolbreak/S 31145d27388 < gaping/Y 31173,31174c27416 < garnishment/MS < garote/DSMG --- > garnishment/SM 31182c27424 < garrulous/YP --- > garrulous/PY 31185c27427,27429 < gas/CSM --- > garçon/SM > gas's > gas/CS 31215c27459 < gateau/S --- > gateau 31224d27467 < gathered/I 31236c27479 < gaunt/RYPT --- > gaunt/RPT 31251,31252c27494 < gay/TSPMRY < gayety/M --- > gay/TSPMR 31267d27508 < gearstick 31272d27512 < geegaw/SM 31277d27516 < geez/RZ 31282d27520 < gelatine/M 31299d27536 < genderless 31302c27539 < genealogist/SM --- > genealogist/MS 31306c27543 < generalissimo/SM --- > generalissimo/MS 31310c27547 < generalize/GBDS --- > generalize/GDS 31313c27550,27551 < generation/ASMC --- > generation's/A > generation/CSM 31319c27557 < generous/UY --- > generous/PY 31325c27563 < geneticist/SM --- > geneticist/MS 31328a27567 > geniculate 31342,31343c27581 < genomic/S < genotype/S --- > genomics 31346c27584 < genteel/RYTP --- > genteel/YP 31352c27590 < gentlefolk/SM --- > gentlefolk/MS 31368a27607 > geocache/DSG 31371d27609 < geochemical 31376a27615 > geoengineering 31388d27626 < geomagnetically 31390c27628 < geometer/S --- > geometer 31394d27631 < geomorphology 31400d27636 < geoscientific 31403c27639 < geosyncline/SM --- > geosyncline/MS 31418d27653 < germinated/U 31420d27654 < gerontocracy 31422c27656 < gerontologist/SM --- > gerontologist/MS 31424c27658 < gerrymander/SMDG --- > gerrymander/GMDS 31426c27660 < gerund/VMS --- > gerund/MS 31432c27666 < gesticulate/XDSGN --- > gesticulate/DSGNX 31437c27671 < get/SM --- > get/S 31439,31440d27672 < gettable < getter 31453d27684 < ghostlike 31461c27692 < ghoulish/PY --- > ghoulish/YP 31465d27695 < giantkiller 31478c27708 < gigabit/MS --- > gigabit/SM 31481c27711 < gigajoule/MS --- > gigajoule/SM 31485,31486c27715 < gigavolt < gigawatt/MS --- > gigawatt/SM 31509c27738 < gimpy/RT --- > gimpy 31517,31518c27746 < gingko/M < ginkgo/M --- > ginkgo/SM 31524d27751 < gipsy/SM 31530c27757 < girlfriend/SM --- > girlfriend/MS 31540d27766 < gismo/SM 31544c27770 < give/MZGJRS --- > give/ZGJRS 31558,31560c27784 < glaciological < glaciologist/S < glaciology --- > glacé/SDG 31571d27794 < gladly/TR 31573c27796 < gladsome/RT --- > gladsome 31578a27802 > glamour/GMDS 31594d27817 < glassless 31599d27821 < glazed/U 31609a27832,27833 > glenohumeral > glenoid 31646c27870 < glockenspiel/MS --- > glockenspiel/SM 31652c27876 < gloppy/TR --- > gloppy 31654c27878 < glorify/GNDS --- > glorify/GDSN 31669a27894 > glucagon 31680d27904 < gluon 31682d27905 < glutamate 31694d27916 < glycine 31696d27917 < glycol 31698d27918 < glyphs 31710,31711d27929 < gnostic < gnosticism 31713c27931 < go/SJMRHZG --- > go/JMRHZG 31717c27935 < goalkeeper/SM --- > goalkeeper/MS 31724,31725c27942 < goalscoring < goaltender/SM --- > goaltender/MS 31735d27951 < gobbledegook/M 31745,31746c27961,27962 < godchildren < goddam --- > godchildren/M > goddam/D 31749c27965 < goddaughter/SM --- > goddaughter/MS 31772,31773c27988,27989 < gold/MNRTS < goldbrick/SZGMDR --- > gold/MNS > goldbrick/ZGSMDR 31794c28010 < gonk/DGS --- > gonk/S 31818a28035 > google/DSMG 31834c28051,28052 < gorge/EDSGM --- > gorge's > gorge/EDSG 31879c28097 < governorship/MS --- > governorship/M 31890,31891d28107 < gracefuller < gracefullest 31893c28109 < graceless/YP --- > graceless/PY 31898c28114 < grad/MRZSBJ --- > grad/MRZSB 31900,31901c28116,28118 < gradation/CSM < grade/CADSGM --- > gradation/CM > grade's > grade/CADSG 31907d28123 < gradualist 31909d28124 < graduand/S 31917c28132 < grail/S --- > grail 31924a28140 > grammatically/K 31930,31931c28146 < grandad/S < grandaddy/S --- > grandad/MS 31935c28150 < grandchildren --- > grandchildren/M 31938c28153 < granddaughter/MS --- > granddaughter/SM 31942c28157 < grandfather/SMDYG --- > grandfather/GMDYS 31948d28162 < grandmaster/S 31956c28170 < grandstand/SMDG --- > grandstand/SGMD 31959c28173 < granite/MS --- > granite/M 31967d28180 < grantor/MS 31975c28188 < grapefruit/SM --- > grapefruit/MS 31982c28195 < graphologist/SM --- > graphologist/MS 31987c28200 < grasp/SMDRBG --- > grasp/SMDBG 31989c28202 < grasshopper/SM --- > grasshopper/MS 31995,31996d28207 < gratefuller < gratefullest 31999d28209 < graticule 32001c28211 < gratify/XNGDS --- > gratify/GNXDS 32012c28222 < gravedigger/MS --- > gravedigger/SM 32020c28230 < gravimeter/SM --- > gravimeter/MS 32024,32026c28234,28235 < gravitational/Y < graviton/S < gravity/SM --- > gravitational > gravity/M 32036d28244 < greaseproof 32056,32057c28264 < greengrocer/MS < greengrocery --- > greengrocer/SM 32079,32080c28286,28288 < grey/MDRTGSP < greybeard/SM --- > grey/MDRTGS > greybeard's > greybeards 32082,32083c28290 < greyish < greyness/M --- > greyness's 32086d28292 < gridded 32095c28301 < grievous/YP --- > grievous/PY 32112c28318 < grindstone/SM --- > grindstone/MS 32115d28320 < grinner 32126d28330 < gristly/RT 32137c28341 < groan/SZGMDR --- > groan/SGMD 32157c28361 < grope/DRSJMZG --- > grope/DRSMZG 32159d28362 < groping/Y 32164c28367 < grotesque/SMYP --- > grotesque/SPMY 32177d28379 < grounded/U 32212d28413 < groyne/S 32240d28440 < gryphon/SM 32245a28446 > guaranies 32251c28452 < guarded/YP --- > guarded/Y 32262c28463 < gudgeon --- > guerilla/SM 32265d28465 < guessable/U 32270c28470 < guestbook/MS --- > guestbook/SM 32287c28487 < guileless/PY --- > guileless/YP 32306d28505 < gulley/MS 32324d28522 < gumtree/S 32333c28531 < gunky/TR --- > gunky 32375c28573 < guttersnipe/SM --- > guttersnipe/MS 32377c28575 < guttural/MYS --- > guttural/MS 32395c28593 < gynecologist/MS --- > gynecologist/SM 32409d28606 < gyromagnetic 32416c28613 < haberdasher/MS --- > haberdasher/SM 32419c28616,28617 < habit/ISBM --- > habit's > habit/ISB 32427a28626 > habitué/SM 32429c28628 < hack/BMDRZGS --- > hack/MDRZGS 32432,32434c28631 < hackish/SP < hackishness/S < hackitude/S --- > hackish 32437a28635 > hacktivist/S 32441,32443d28638 < hadj/M < hadjes < hadji/SM 32445d28639 < hadron/S 32470d28663 < haircare 32474c28667 < hairdresser/MS --- > hairdresser/SM 32476c28669 < hairdrier/S --- > hairdrier/MS 32488c28681 < hairsplitter/MS --- > hairsplitter/SM 32491,32493c28684,28686 < hairspring/SM < hairstyle/MGS < hairstylist/MS --- > hairspring/MS > hairstyle/MS > hairstylist/SM 32506,32507c28699 < halfbreed < halfhearted/YP --- > halfhearted/PY 32511d28702 < halfpennyworth 32517d28707 < halide/S 32521,32522d28710 < halleluiah/M < halleluiahs 32525d28712 < halliard/MS 32527d28713 < hallo/M 32531c28717 < hallucinate/DSXGN --- > hallucinate/GNXDS 32535c28721 < hallucinogenic/MS --- > hallucinogenic/SM 32539,32540c28725 < halogenated < halon/S --- > halon 32563c28748 < hamstring/SGM --- > hamstring/GSM 32565c28750,28751 < hand/UDGSM --- > hand's > hand/UDGS 32569d28754 < handbasin 32585c28770 < handicapper/SM --- > handicapper/MS 32591c28776 < handkerchief/SM --- > handkerchief/MS 32641c28826 < happenstance/MS --- > happenstance/SM 32670,32671c28855 < hardline/ZR < hardliner/M --- > hardliner/MS 32690,32691c28874 < hark/DNXGS < harken/DG --- > hark/DGS 32695c28878 < harm/MDRGS --- > harm/MDGS 32712c28895,28896 < harness/UDSGM --- > harness's > harness/UDSG 32717,32718c28901,28902 < harpsichord/SM < harpsichordist/MS --- > harpsichord/MS > harpsichordist/SM 32733d28916 < hasheesh/M 32735c28918 < hashtag/S --- > hashtag/SM 32784d28966 < havering 32796d28977 < hayfield 32804d28984 < haywain 32814a28995 > hazmat 32850d29030 < headmastership 32853d29032 < headnote 32857c29036 < headquarter/SGD --- > headquarter/SDG 32865c29044 < headshrinker/MS --- > headshrinker/SM 32870d29048 < headstock 32874c29052 < headwaiter/MS --- > headwaiter/SM 32884c29062 < healthcare/M --- > healthcare 32889d29066 < healths 32898c29075,29076 < hearse/ASM --- > hearse's > hearse/AS 32902c29080 < heartbreak/MSG --- > heartbreak/SMG 32910c29088 < hearthstone/MS --- > hearthstone/SM 32914c29092 < heartless/YP --- > heartless/PY 32924c29102,29103 < heat/ADGSM --- > heat's > heat/ADGS 32928c29107 < heath/MNRXZ --- > heath/MNRX 32934,32935d29112 < heathery < heathland 32952c29129 < heavyweight/SM --- > heavyweight/MS 32961d29137 < hectoliters 33001c29177 < helicopter/SMDG --- > helicopter/SGMD 33003,33004d29178 < heliography < heliosphere 33010c29184 < hell/MS --- > hell/M 33014d29187 < hellfire 33033c29206 < helpline/S --- > helpline/SM 33035d29207 < helpmeet/SM 33041c29213 < hematologist/SM --- > hematologist/MS 33054c29226 < hemophiliac/SM --- > hemophiliac/MS 33067d29238 < henge 33070c29241 < hentai/! --- > hentai 33074a29246 > hepatocyte/S 33079d29250 < heptane 33081d29251 < her/M 33090d29259 < herbalism 33116d29284 < hereunder 33120d29287 < heritability 33125d29291 < hermeneutic/S 33164d29329 < heterozygous 33176c29341,29342 < hexane/SM --- > hexane's > hexanes 33187c29353 < hibernator/SM --- > hibernator/MS 33188a29355,29356 > hiccough/DG > hiccoughs 33194c29362 < hidden/U --- > hidden 33208d29375 < hieratic 33210c29377 < hieroglyphic/SM --- > hieroglyphic/MS 33219d29385 < highfaluting 33222,33223d29387 < highish < highjack/SGMD 33229,33230d29392 < highpoint < highrise/MS 33241d29402 < hijinks 33254d29414 < hillwalking 33257c29417 < him/SM --- > him/S 33266c29426,29427 < hinge/UDSGM --- > hinge's > hinge/UDSG 33269c29430 < hinterland/MS --- > hinterland/SM 33279c29440 < hippie/SM --- > hippie/M 33284a29446 > hippy/SM 33286c29448,29450 < hire/AGDSM --- > hiragana > hire's > hire/AGDS 33288d29451 < hirer 33291c29454 < hiss/MDSGJ --- > hiss/MDSG 33295d29457 < histological 33301d29462 < historicist 33304d29464 < historiographical 33311c29471,29472 < hitch/UDSGM --- > hitch's > hitch/UDSG 33317d29477 < hittable 33325,33327c29485 < hoagie/M < hoagy/SM < hoar --- > hoagie/MS 33350a29509 > hoboes 33365d29523 < hogger 33379c29537 < hold/MRBJSZG --- > hold/MRJSZG 33427d29584 < homeomorphism/S 33447a29605 > homewrecker/SM 33451a29610 > homie/RSMT 33455a29615 > hominoid/S 33459d29618 < homogenates 33464d29622 < homogenous 33467d29624 < homological 33469,33471d29625 < homologue < homology/S < homomorphism/S 33473d29626 < homophobes 33477,33478c29630 < homophony < homosexual/SMY --- > homosexual/SM 33480,33483d29631 < homotopy < homozygous < homunculus < homy/RPT 33493c29641 < honeycomb/GMDS --- > honeycomb/MDSG 33496c29644 < honeymoon/MDRSZG --- > honeymoon/ZGMDRS 33510d29657 < honored/U 33515a29663 > hoodie/MS 33521,33522c29669,29670 < hook/UDSGM < hooka/SM --- > hook's > hook/UDSG 33526d29673 < hookey/M 33534c29681 < hooray/MDSG --- > hooray/MS 33544d29690 < hoped/U 33547c29693 < hopeless/PY --- > hopeless/YP 33552c29698 < hopscotch/GMDS --- > hopscotch/MDSG 33557,33558c29703,29704 < horizontal/MYS < hormonal/Y --- > horizontal/SMY > hormonal 33561d29706 < hornbeam 33583c29728,29729 < horse/UDSGM --- > horse's > horse/UDSG 33621a29768 > hospholipase 33627,33628c29774,29775 < hospitalization/MS < hospitalize/GDS --- > hospitalization/SM > hospitalize/DSG 33644d29790 < hotchpotch 33654a29801 > hotkey/S 33662d29808 < hotspot/MS 33665a29812 > hottie/S 33667,33668d29813 < houmous < houmus 33673c29818,29819 < house/ADSGM --- > house's > house/ADSG 33682,33683c29828 < housebuilding < houseclean/DGS --- > houseclean/DSG 33690c29835 < househusband/MS --- > househusband/SM 33701d29845 < housemoving 33708c29852 < housewarming/MS --- > housewarming/SM 33715c29859 < hover/SGDR --- > hover/SGD 33716a29861,29862 > how'd > how're 33758d29903 < hullo/M 33766c29911 < humanitarian/SM --- > humanitarian/MS 33794c29939 < humiliate/XDSGN --- > humiliate/DSGNX 33798d29942 < hummable 33807a29952 > humoresque 33809c29954 < humorless/PY --- > humorless/YP 33817d29961 < humungous 33825c29969 < hundredweight/MS --- > hundredweight/SM 33847,33848c29991,29993 < hurrah/M < hurray/GSMD --- > hurrah/GMD > hurrahs > hurray 33873,33874d30017 < hutzpa/M < hutzpah/M 33888c30031,30032 < hydrate/CGNDSM --- > hydrate's > hydrate/CGNDS 33893,33894d30036 < hydrazine < hydride 33896c30038 < hydrocarbon/SM --- > hydrocarbon/MS 33898,33900d30039 < hydrocephaly/M < hydrochloric < hydrochloride 33902d30040 < hydrodynamical 33907d30044 < hydrofluoric 33910c30047 < hydrogenate/CDSGN --- > hydrogenate/CGDS 33913d30049 < hydrological 33915a30052 > hydrolyses 33918,33919d30054 < hydromagnetic < hydromechanics 33924,33925c30059,30060 < hydrophone/MS < hydroplane/MGDS --- > hydrophone/SM > hydroplane/GDSM 33930d30064 < hydrostatic/S 33932d30065 < hydrothermal 33941d30073 < hygroscopic 33954d30085 < hyperboloid/S 33956,33957d30086 < hypercube/S < hyperfine 33960c30089 < hyperlink/SM --- > hyperlink/GSMD 33963c30092 < hyperplane/S --- > hyperparathyroidism 33967d30095 < hypersonic 33969d30096 < hypersphere 33971c30098 < hypertensive/MS --- > hypertensive/SM 33975c30102 < hypertrophy/GDSM --- > hypertrophy/DSMG 33980d30106 < hyphenated/U 33993d30118 < hypocaust 33995c30120 < hypochondriac/MS --- > hypochondriac/SM 33999c30124 < hypodermic/SM --- > hypodermic/MS 34002c30127 < hypotenuse/SM --- > hypotenuse/MS 34008c30133 < hypothesize/GDRS --- > hypothesize/DSG 34012d30136 < hypoxia 34020a30145 > iPad/M 34028d30152 < iatrogenic 34034c30158,30159 < ice/CDSGM --- > ice's > ice/CDSG 34039c30164 < icebreaker/MS --- > icebreaker/SM 34043,34045d30167 < icepack < icepick/S < ichneumon 34056c30178 < iconoclast/MS --- > iconoclast/SM 34058d30179 < iconographic 34060,34062d30180 < icosahedra < icosahedral < icosahedron 34072c30190 < idealization/SM --- > idealization/MS 34078d30195 < identifiably 34086d30202 < ideographic 34089c30205 < ideologist/MS --- > ideologist/SM 34094d30209 < idiolect 34116d30230 < idyl/MS 34127d30240 < ignitible 34136c30249 < ignore/GDSB --- > ignore/GDS 34140d30252 < ikon/MS 34160d30271 < illiquid 34166,34167c30277 < illuminant < illuminate/XDSGN --- > illuminate/GNXDS 34175,34176c30285 < illustrate/GNVDSX < illustrated/U --- > illustrate/GNVXDS 34182d30290 < ilmenite 34186a30295 > imaginal 34188c30297 < imagination/SM --- > imagination/MS 34191d30299 < imagined/U 34199,34201d30306 < imbed/S < imbedded < imbedding 34227c30332 < immediate/YP --- > immediate/PY 34230c30335 < immense/RYTP --- > immense/Y 34236c30341 < immigrate/DSGNX --- > immigrate/DSGN 34240d30344 < immiscible 34242d30345 < immobilisers 34255c30358 < immortalize/GDS --- > immortalize/DSG 34259d30361 < immoveable 34261,34262c30363,30364 < immunity/SM < immunization/MS --- > immunity/M > immunization/SM 34264d30365 < immunoassay 34266a30368 > immunoglobulin/S 34268c30370 < immunological/Y --- > immunological 34277d30378 < impaction 34280c30381 < impairment/SM --- > impairment/MS 34282c30383 < impale/DRSGL --- > impale/DSGL 34296c30397 < impassive/PY --- > impassive/YP 34315c30416 < impediment/MS --- > impediment/SM 34327c30428 < imperative/MYS --- > imperative/SMY 34333,34334c30434,30435 < imperfect/SPMY < imperfection/SM --- > imperfect/SMYP > imperfection/MS 34354,34355c30455 < impersonality < impersonate/XDSGN --- > impersonate/GNXDS 34357c30457 < impersonator/MS --- > impersonator/SM 34384c30484 < implement/BZGMDRS --- > implement/GBMDRS 34387,34388c30487 < implemented/UA < implementing/A --- > implemented/U 34393d30491 < implied/Y 34403c30501 < imponderable/SM --- > imponderable/MS 34407c30505 < importation/SM --- > importation/MS 34409d30506 < importing/A 34413d30509 < imposable 34418c30514 < imposition/SM --- > imposition/MS 34430c30526 < impoverish/LGDS --- > impoverish/DSLG 34436c30532 < impracticality/SM --- > impracticality/M 34452c30548 < impression/MSB --- > impression/BSM 34457c30553 < impressive/YP --- > impressive/PY 34459c30555 < imprimatur/MS --- > imprimatur/SM 34462,34463c30558,30559 < imprison/SDGL < imprisonment/MS --- > imprison/SDLG > imprisonment/SM 34470c30566 < improve/GBDRSL --- > improve/GBDSL 34472c30568 < improvement/SM --- > improvement/MS 34477d30572 < improvisatory 34485c30580 < impugn/ZGBSDR --- > impugn/ZGSDR 34496a30592 > inaccuracy/S 34498d30593 < inactivity 34509d30603 < inapplicability 34515c30609 < inaugurate/GNDSX --- > inaugurate/XGNDS 34518,34519c30612,30613 < inbound/s < inbox/M --- > inbound > inbox/MS 34525d30618 < incant 34527,34530c30620,30621 < incantatory < incapable < incapacitate/DSGN < incarcerate/GNXDS --- > incapacitate/GDS > incarcerate/XDSGN 34532c30623 < incarnadine/GDS --- > incarnadine/DSG 34537,34538c30628,30630 < incentive/ESM < incentivize/SDG --- > incentive's > incentive/ES > incentivize/DSG 34541c30633 < incest/MS --- > incest/M 34552c30644 < incinerator/SM --- > incinerator/MS 34557c30649 < incisive/YP --- > incisive/PY 34566c30658,30659 < incline/EGDSM --- > incline's > incline/EGDS 34572d30664 < incoherency 34577c30669,30670 < incompetent/SM --- > incompatibility/S > incompetent/MS 34586c30679 < incontinent/Y --- > incontinent 34588,34590c30681,30682 < inconvenience/DG < incorporable < incorporate/AGNDS --- > inconvenience/GD > incorporate/ADSGN 34595c30687 < incorrigibleness --- > incorrigible/P 34598c30690 < increment/SMDG --- > increment/SMD 34600c30692,30693 < incrementation --- > incrementalism > incrementalist/SM 34604c30697 < incrustation/MS --- > incrustation/SM 34626,34627d30718 < indecent/T < indeclinable 34632a30724 > indefinably 34636c30728 < indemnify/XGNDS --- > indemnify/GDSXN 34638c30730 < indentation/SM --- > indentation/MS 34649d30740 < indicant/S 34654d30744 < indices 34658d30747 < indifference/M 34673d30761 < indispose/D 34675a30764 > indistinguishably 34680c30769 < individualist/SM --- > individualist/MS 34685c30774 < individualize/DSG --- > individualize/GDS 34689c30778 < indoctrinate/DSXGN --- > indoctrinate/GNDS 34691d30779 < indoctrinator/S 34696d30783 < indorse/GDS 34702c30789 < inducible --- > induct/DGV 34707d30793 < inductor/S 34709,34710c30795,30796 < indulge/DRSG < indulgence/MS --- > indulge/DSG > indulgence/SM 34714c30800 < industrialist/MS --- > industrialist/SM 34716c30802 < industrialize/GDS --- > industrialize/DSG 34727c30813 < ineffectual/P --- > inefficiency/S 34729a30816 > ineligibly 34735c30822 < ineradicably --- > inequality/S 34747d30833 < inexactitude/S 34756d30841 < inexpressibility 34765c30850 < infanticide/SM --- > infanticide/MS 34774,34775c30859 < infeasibility < infect/AESDVG --- > infect/AESDG 34782c30866 < inferential/Y --- > inferential 34790c30874 < infestation/SM --- > infestation/MS 34793d30876 < infiltrate/X 34795c30878 < infinite/MYV --- > infinite/MV 34798c30881 < infinitive/SM --- > infinitive/MS 34816,34817c30899,30900 < inflict/SDRGV < infliction/MS --- > inflict/SDGV > infliction/M 34818a30902 > inflow/SM 34823d30906 < influx/MS 34825c30908,30909 < infomercial/MS --- > infomercial/SM > inform/Z 34828d30911 < informatics 34831c30914 < informative/UY --- > informative/PY 34833d30915 < informatory 34840c30922 < infrastructure/MS --- > infrastructure/SM 34856d30937 < ingoing 34865d30945 < ingression 34866a30947 > ingénue/SM 34872c30953 < inhalation/SM --- > inhalation/MS 34886,34887d30966 < inhomogeneity/S < inhomogeneous 34895,34898c30974,30977 < initialization/S < initialize/ADG < initialized/U < initializes --- > initialism > initialization > initialize/DSG > initialized/AU 34911c30990 < injurious/Y --- > injurious 34915c30994 < inkjet/MS --- > inkjet/SM 34937c31016 < innocent/MRYST --- > innocent/MYS 34944a31024 > innuendoes 34956c31036 < inquisition/SM --- > inquisition/MS 34960,34961c31040,31041 < inquisitor/MS < inquisitorial/Y --- > inquisitor/SM > inquisitorial 34964d31043 < insanity/S 34967,34968c31046,31048 < inscriber/SM < inscription/SM --- > inscribe/ZGDR > inscriber/M > inscription/MS 34975c31055 < insecticide/SM --- > insecticide/MS 34979c31059 < inseminate/GNDS --- > inseminate/DSGN 34984,34985c31064,31066 < inseparable/SM < insert/AGSDM --- > inseparable/MS > insert's > insert/AGSD 34992c31073 < insidious/PY --- > insidious/YP 34996d31076 < insigne/M 34998,34999c31078 < insinuate/GNVXDS < insinuating/Y --- > insinuate/GNVDSX 35023,35024c31102,31103 < inspectorate/SM < inspiration/SM --- > inspectorate/MS > inspiration/MS 35030,35034c31109,31111 < instal/S < install/UBZRSDG < installation/SM < installer/UM < installment/MS --- > installation/MS > installer/UMS > installment/SM 35038c31115,31116 < instantiate/GNDSX --- > instantiate/DSG > instar 35043,35044c31121 < instigator/SM < instil/S --- > instigator/MS 35049c31126 < institute/MZGNXDRS --- > institute/XMZGNDRS 35053d31129 < institutionalism 35055,35056c31131,31132 < institutionalize/GDS < institutor/SM --- > institutionalize/DSG > institutor/MS 35060c31136 < instruction/SM --- > instruction/MS 35064,35066c31140,31142 < instrument/GMDS < instrumental/SMY < instrumentalist/MS --- > instrument/MDSG > instrumental/MYS > instrumentalist/SM 35075d31150 < insulated/U 35079c31154 < insult/SMDRG --- > insult/SMDG 35091,35092c31166,31167 < insurrection/MS < insurrectionist/MS --- > insurrection/SM > insurrectionist/SM 35097,35098d31171 < integrability < integrable 35100,35104c31173,31175 < integrand/S < integrate/EAVNGSD < integration/AEM < integrations < integrator/S --- > integrate/AEVNGSD > integration/EAM > integrator 35108c31179 < intellectual/SMY --- > intellectual/MYS 35110d31180 < intellectuality 35112c31182 < intelligence/MS --- > intelligence/M 35122c31192 < intensify/ZGDRSN --- > intensify/DRSZGN 35124c31194 < intensive/PMYS --- > intensive/MYPS 35127c31197 < intention/MDS --- > intention/MS 35129d31198 < intentionality 35134c31203 < interactive/PY --- > interactive/Y 35136d31204 < interbank 35138c31206 < interbreed/SG --- > interbreed/GS 35143,35144c31211,31212 < intercession/MS < intercessor/SM --- > intercession/SM > intercessor/MS 35153c31221 < intercommunicate/GNDS --- > intercommunicate/DSGN 35155,35156c31223 < interconnect/GSD < interconnected/P --- > interconnect/GDS 35159d31225 < interconversion 35165d31230 < interdependency 35171c31236 < interested/UEY --- > interested/U 35175,35179c31240,31241 < interfere/GDRS < interference/MS < interferometer/S < interferometric < interferometry --- > interfere/GDS > interference/M 35183d31244 < interglacial 35188,35190c31249,31250 < interject/DGS < interjection/MS < interjectional --- > interject/GDS > interjection/SM 35192,35193c31252,31253 < interlard/GDS < interleave/GDS --- > interlard/DGS > interleave/DSG 35195c31255 < interline/JGDS --- > interline/GDSJ 35197d31256 < interlingual 35199c31258 < interlink/GDS --- > interlink/DSG 35201c31260 < interlocutor/MS --- > interlocutor/SM 35206,35207c31265,31266 < intermarriage/MS < intermarry/DSG --- > intermarriage/SM > intermarry/GDS 35210,35212c31269,31271 < intermediate/SMYPGD < intermediation/SE < intermediator/SM --- > intermediate/XMYGNPDS > intermediation/ES > intermediator/MS 35219c31278 < intermission/MS --- > intermission/SM 35222,35223d31280 < intermolecular < intern/GDL 35226c31283 < internalize/DSG --- > internalize/GDS 35229c31286 < internationalist/MS --- > internationalist/SM 35231,35232c31288,31289 < internationalize/GDS < interne/MGDS --- > internationalize/DSG > interne/GDL 35234a31292 > interneship/S 35237c31295 < internment/MS --- > internment/M 35239,35240d31296 < internuclear < interocular 35242,35244c31298 < interoperability < interoperable < interpenetrate/GNDS --- > interpenetrate/DSGN 35247,35248c31301,31302 < interplay/MS < interpolate/BXGNDS --- > interplay/M > interpolate/XDSGN 35253,35254c31307 < interpretable/U < interpretation/ASM --- > interpretation/AMS 35258d31310 < interpretive/Y 35261,35263c31313,31314 < interregnum/MS < interrelate/XGNDS < interrelated/P --- > interregnum/SM > interrelate/XDSGN 35267c31318 < interrogate/GNVDSX --- > interrogate/DSGNVX 35274d31324 < interruptibility 35280c31330 < intersession/MS --- > intersession/SM 35290,35291c31340 < interstitial/Y < intertidal --- > interstitial 35299c31348 < interview/MDRZGS --- > interview/ZGMDRS 35304c31353 < interweave/SG --- > interweave/GS 35311d31359 < intifada 35318d31365 < intimidatory 35320,35322c31367,31368 < intonational < intoxicant/MS < intoxicate/GNDS --- > intoxicant/SM > intoxicate/DSGN 35324c31370 < intracellular --- > intracranial 35327c31373 < intranet/S --- > intranet/MS 35329c31375 < intransigent/SMY --- > intransigent/MYS 35344c31390,31391 < introduction/ASM --- > introduction/AM > introductions 35347c31394 < introspect/DGVS --- > introspect/GVDS 35359,35360c31406 < intuitionist < intuitive/YP --- > intuitive/PY 35371c31417 < invariance --- > invariant 35374c31420 < invective/SM --- > invective/M 35380d31425 < invented/U 35385c31430 < inventory/GDSM --- > inventory/DSMG 35387,35388c31432 < invert/SMDRZG < invertible --- > invert/SMDG 35390c31434 < investigate/DSXGNV --- > investigate/GNVDSX 35392c31436 < investigator/MS --- > investigator/SM 35395c31439 < investment/EAM --- > investment/AEM 35399c31443 < invidious/PY --- > invidious/YP 35411,35412c31455,31456 < invitation/MS < invitational/MS --- > invitation/SM > invitational/SM 35417c31461 < invoke/DRSZGB --- > invoke/DSG 35420d31463 < involute/XN 35423d31465 < involved/U 35434d31475 < ionized/C 35443c31484 < irate/RYTP --- > irate/YP 35467c31508 < ironwork/MS --- > ironwork/M 35472c31513 < irrationality/SM --- > irrationality/M 35481d31521 < irreducibility 35489,35490c31529,31530 < irrelevance/SM < irrelevancy/SM --- > irrelevance/MS > irrelevancy/MS 35491a31532 > irreligion 35508,35509c31549 < irresolvable < irrespective/Y --- > irrespective 35517d31556 < irreversibility 35530d31568 < irritated/Y 35551,35552c31589 < isolationist/MS < isolator/S --- > isolationist/SM 35560,35561d31596 < isomorphism/S < isoperimetrical 35563d31597 < isostatic 35565,35566d31598 < isothermal/Y < isotonic 35570,35572d31601 < isotropically < isotropy < issuable 35575d31603 < issued/U 35595d31622 < iterative/Y 35622c31649 < jackrabbit/SM --- > jackrabbit/MS 35625d31651 < jacuzzi 35633c31659 < jaggies/S --- > jaggies 35640d31665 < jailor/SM 35641a31667 > jalapeño/MS 35648,35649c31674,31675 < jammed/U < jamming/U --- > jammed > jamming 35653d31678 < jangly 35661a31687 > jardinière/SM 35670d31695 < jaundiced/U 35679c31704 < jawbreaker/SM --- > jawbreaker/MS 35697d31721 < jehad/SM 35711c31735 < jeopardize/DSG --- > jeopardize/GDS 35720a31745 > jerrican/S 35724d31748 < jessamine/MS 35738,35739c31762 < jewelery/S < jewellery/M --- > jewellery 35748c31771,31772 < jig/ASM --- > jig's > jig/AS 35750c31774,31775 < jigger/ASDGM --- > jigger's > jigger/ASDG 35753c31778 < jiggly/RT --- > jiggly 35755a31781 > jihadist/SM 35760,35761c31786 < jingly/TR < jingo --- > jingly 35768c31793 < jinricksha/MS --- > jinricksha/SM 35770d31794 < jinriksha/MS 35773d31796 < jitter/S 35780d31802 < jiujitsu/M 35812c31834,31835 < join/AFDSGM --- > join's > join/AFDSG 35815c31838,31839 < joint/EGSDM --- > joint's > joint/EGSD 35817d31840 < jointures 35823c31846,31847 < jokily --- > jokier > jokiest 35825d31848 < joky/RT 35843c31866 < jouncy/TR --- > jouncy 35880,35881c31903,31906 < judge/ADSGM < judgement/MS --- > judge's > judge/ADSG > judgement/SM > judgemental 35889c31914 < judicious/IPY --- > judicious/IYP 35908d31932 < jujutsu/M 35926d31949 < juniority 35942d31964 < jurisprudential 35951,35953c31973 < jussive < just/UYPT < juster --- > just/RYPT 35955d31974 < justifiability 35959,35961c31978,31979 < justificatory < justified/AU < justify/NGDSX --- > justified/U > justify/XGDSN 35969c31987 < juxtaposition/MS --- > juxtaposition/SM 35973a31992,31993 > kabbala > kabbalah 35980d31999 < kaftan/MS 35984c32003 < kaleidoscope/SM --- > kaleidoscope/MS 35987a32007 > kana 35988a32009 > kanji 35999a32021 > katakana 36019c32041 < kelp/MZ --- > kelp/M 36028a32051 > keratitis 36032d32054 < kerned 36034d32055 < kerning 36036d32056 < kerosine/M 36042d32061 < kettleful 36043a32063 > keybinding/S 36046c32066 < keyboardist/MS --- > keyboardist/SM 36049c32069 < keylogging/MS --- > keylogging/SM 36055d32074 < keyring 36061d32079 < khalif/S 36084,36086c32102 < kiddy/SM < kidnap/ZSR < kidnaper/M --- > kidnap/S 36102d32117 < kilobits 36107d32121 < kilojoules 36115c32129 < kin/SM --- > kin/M 36117c32131,32132 < kind/UPRYTM --- > kind's > kind/UPRYT 36119,36120c32134 < kindergarten/MRSZ < kindergartener/M --- > kindergarten/MS 36121a32136 > kindergärtner/SM 36142c32157 < kingfisher/MS --- > kingfisher/SM 36162d32176 < kirk/MS 36166d32179 < kissagram/S 36173c32186 < kitchenette/SM --- > kitchenette/MS 36183d32195 < kittiwakes 36188a32201 > kleptocracy 36190c32203 < kleptomaniac/MS --- > kleptomaniac/SM 36192c32205 < kluge/DSG --- > kluge/DS 36200c32213 < knackwurst/SM --- > knackwurst/MS 36234c32247 < knock/JSZGMDR --- > knock/SZGMDR 36248,36249c32261 < knowing/UTYS < knowinger --- > knowing/UYS 36266d32277 < kookie 36276,36277c32287 < kraut/MS! < kriegspiel --- > kraut/SM! 36283a32294,32295 > króna/M > krónur 36288d32299 < kulaks 36292d32302 < kyle/S 36296c32306,32307 < label/ASDGM --- > label's > label/ASDG 36299d32309 < labellings/A 36315c32325,32326 < lace/UGDSM --- > lace's > lace/UGDS 36360d32370 < lagnappe/MS 36393d32402 < lamented/U 36403c32412 < lamplight/ZMR --- > lamplight/MRZ 36406d32414 < lampoonery 36418,36420c32426,32427 < landforms < landholder/MS < landholding/SM --- > landholder/SM > landholding/MS 36424c32431 < landlines --- > landline/MS 36457a32465,32467 > laparoscopic > laparoscopy > laparotomy 36481d32490 < largesse/M 36509c32518,32519 < latch/UDSGM --- > latch's > latch/UDSG 36513c32523 < latency/SM --- > latency/M 36517d32526 < lateralization 36550c32559 < launderette/MS --- > launderette/SM 36552,36553c32561 < laundrette/SM < laundromat/SM --- > laundromat/MS 36563c32571 < lava/MS --- > lava/M 36565d32572 < lavalier/MS 36614d32620 < lazuli 36631c32637 < leafy/PRT --- > leafy/RT 36648c32654 < learning/M --- > learning's 36654c32660,32661 < leash/UDSGM --- > leash's > leash/UDSG 36656d32662 < leastways 36668d32673 < lebensraum 36676c32681 < lector/MS --- > lector/SM 36679c32684 < lectureship/MS --- > lectureship/SM 36687d32691 < leering/Y 36692d32695 < leftie/M 36702c32705 < legalese/MS --- > legalese/M 36711c32714 < legation/ACM --- > legation's/AC 36732c32735 < legislator/SM --- > legislator/MS 36736,36737c32739,32740 < legitimate/DSYGN < legitimatize/DSG --- > legitimate/DSYG > legitimatize/GDS 36744d32746 < legstraps 36770d32771 < lengthways 36777,36778c32778,32779 < lens/MSG < lent/N --- > lens/MS > lent 36784d32784 < leopardskin 36787c32787 < lepidopterist/SM --- > lepidopterist/MS 36802d32801 < letch/S 36805d32803 < lethality 36825c32823 < level/PSZTGMDRY --- > level/PSZGMDRY 36831c32829,32830 < leverage/DSMG --- > leverage's > leverage/CDSG 36840d32838 < lexeme/S 36842,36843c32840,32841 < lexical/Y < lexicographer/SM --- > lexical > lexicographer/MS 36845c32843 < lexicographical/Y --- > lexicographical 36850c32848,32849 < liability/ASM --- > liabilities > liability/AM 36865c32864 < liberalize/DSG --- > liberalize/GDS 36869d32867 < liberationists 36871,36873c32869 < libero < libertarian/MS < libertarianism --- > libertarian/SM 36888c32884 < licentiate/MS --- > licentiate/SM 36891,36892c32887 < lichee/MS < lichen/MDS --- > lichen/MS 36895d32889 < lickerish 36909c32903 < lieutenant/SM --- > lieutenant/MS 36914d32907 < lifeboatmen 36918c32911 < lifeless/PY --- > lifeless/YP 36928d32920 < lifetaking 36935d32926 < ligand/S 36939c32930,32931 < light/CASTGDM --- > light's/C > light/CASTGD 36946c32938 < lighthearted/PY --- > lighthearted/YP 36949c32941 < lighting/M --- > lighting's 36959a32952 > likable/P 36961,36963c32954,32957 < like/MYTGPDRSBJ < likeability < likeable/U --- > like/EMGDST > likeability/M > likeable/P > likeableness/M 36970a32965 > liker 36979,36980c32974 < limber/UDSTG < limberer --- > limber/UDSG 36986d32979 < limekiln 36992c32985,32986 < limit/CSZGDRM --- > limit's > limit/CSZGDR 36996c32990 < limiter/M --- > limiter's 37015d33008 < linctus 37023,37024c33016 < linearized < linebacker/SM --- > linebacker/MS 37044c33036 < linguini/M --- > linguini/SM 37051c33043 < link/MDRBSZG --- > link/MDRSG 37060c33052,33053 < lint/CDSGM --- > lint's > lint/CDG 37061a33055 > lints 37069d33062 < lipase 37073c33066 < lippy/TR --- > lippy 37089d33081 < liquify/DSG 37091,37092d33082 < liquorice/MS < liquorish 37098,37099c33088 < lissom/P < lissome/P --- > lissome 37115,37116d33103 < literalism < literalistic 37127c33114 < lithograph/ZGMDR --- > lithograph/MDRZG 37133,37134d33119 < lithological < lithology 37150a33136 > littérateur/SM 37157,37158c33143 < liveable < livelihood/MS --- > livelihood/SM 37163c33148,33149 < liver/MS --- > liver's > liver/S 37172c33158 < liveware/S --- > liveware 37180,37181c33166,33168 < lo/H < load/AUGSDM --- > lo > load's > load/AUGSD 37184,37186c33171 < loading/MS < loadstar/MS < loadstone/SM --- > loading's 37189c33174 < loam/MS --- > loam/M 37191c33176 < loan/MDRSBZG --- > loan/MDRSZG 37199c33184 < loathsome/YP --- > loathsome/PY 37210,37211c33195 < lobotomist < lobotomize/GDS --- > lobotomize/DSG 37217c33201 < localization/MS --- > localization/M 37219,37222c33203,33204 < locatable/A < locate/EAGNVDS < location/ESMA < locational --- > locate/AESDNGX > location/EAM 37224,37225c33206 < loch/M < lochs --- > locavore/SM 37228d33208 < locked/A 37248c33228 < lodge/DRSLJMZG --- > lodge/DRSJMZG 37256c33236 < log/KSM --- > log/SM 37260d33239 < logarithmically 37271a33251 > login/S 37276a33257,33258 > logoff/S > logon/S 37277a33260 > logout/S 37285a33269 > lolcat/SM 37300c33284,33285 < long/KDSTGM --- > long's > long/KDSTG 37317d33301 < longsword 37321d33304 < longwise 37328a33312 > lookup 37331c33315 < looney/M --- > loonie/M 37347d33330 < lopper/S 37351c33334 < loquacious/YP --- > loquacious/PY 37363,37364c33346 < lorryload/S < lose/ZGRSBJ --- > lose/ZGRSJ 37367a33350 > lossless 37377d33359 < loudly/TR 37381c33363 < loudspeaker/SM --- > loudspeaker/MS 37387c33369,33370 < louse/CDSGM --- > louse's > louse/CDSG 37397d33379 < loveable 37409d33390 < lovestruck 37453c33434 < lucrative/PY --- > lucrative/YP 37470c33451 < lugubrious/PY --- > lugubrious/YP 37486,37487d33466 < lumen < luminance 37491c33470 < luminosity/SM --- > luminosity/M 37505,37506c33484 < luncheonette/MS < lunchpack --- > luncheonette/SM 37509d33486 < lune 37519d33495 < lurex 37540,37541d33515 < luv/S < luvvie/S 37564c33538 < lymphocyte/MS --- > lymphocyte/SM 37570d33543 < lynchpin/SM 37578c33551,33552 < lysine --- > lysosomal > lysosomes 37604c33578 < mack/S --- > mack/MS 37608a33583 > macramé/M 37616,37617d33590 < macromolecular < macromolecules 37619c33592 < macrophage/S --- > macrophages 37621d33593 < macroscopically 37632c33604 < mademoiselle/SM --- > mademoiselle/MS 37637a33610,33612 > madrasa/S > madrassah > madrassahs 37648c33623 < mage/SM --- > mage/MS 37651c33626 < maggoty/RT --- > maggoty 37661,37662c33636 < magma/SM < magmatic --- > magma/M 37664d33637 < magnanimosity 37678,37680d33650 < magnetodynamics < magnetohydrodynamical < magnetohydrodynamics 37683d33652 < magnetron 37687d33655 < magnified/U 37689c33657 < magnify/NZGDRSX --- > magnify/ZGXDRSN 37695a33664 > magus/M 37711,37712c33680,33681 < maidservant/MS < mail/BJMDRSZG --- > maidservant/SM > mail/JMDRSZG 37724d33692 < mainbrace 37730c33698 < mainspring/SM --- > mainspring/MS 37732,37733c33700,33701 < mainstream/SGMD < maintain/ZGDRBS --- > mainstream/SMDG > maintain/ZGBDRS 37735,37736d33702 < maintainable/U < maintained/U 37739d33704 < maiolica/M 37748a33714,33715 > majoritarian/SM > majoritarianism 37750c33717,33718 < make/UAGSM --- > make's/A > make/UAGS 37759d33726 < maladaptive 37773c33740 < malcontent/SM --- > malcontent/MS 37775,37776c33742,33743 < malediction/MS < malefaction/SM --- > malediction/SM > malefaction/M 37785c33752 < malformation/MS --- > malformation/SM 37787c33754 < malfunction/GSMD --- > malfunction/MDSG 37791c33758 < malign/DSZG --- > malign/DSG 37804d33770 < malnourishment 37815c33781 < malware/MS --- > malware/SM 37820,37821c33786 < mamma/SM < mammae --- > mamma/M 37832c33797,33798 < man/USYMF --- > man's/F > man/UFY 37840,37841c33806 < managerial/Y < managership --- > managerial 37844d33808 < manciple 37855d33818 < mandril/SM 37859c33822 < maneuver/BJMDGS --- > maneuver/MDGSBJ 37862c33825 < manga --- > manga/M 37865d33827 < manged/S 37886c33848 < manifestation/MS --- > manifestation/SM 37891d33852 < manilla/M 37894c33855 < manipulate/GNVXDS --- > manipulate/XGNVDS 37897c33858 < manipulator/SM --- > manipulator/MS 37902c33863 < manly/UTR --- > manly/URT 37908,37910c33869 < mannerist < mannerly/P < mannikin/SM --- > mannerly/U 37914d33872 < manoeuvrings 37919a33878,33879 > manqué > mans 37927c33887 < mantelpiece/MS --- > mantelpiece/SM 37934,37935c33894,33895 < mantle/EGDSM < mantlepiece/S --- > mantle's > mantle/EGDS 37937d33896 < mantrap/S 37939c33898 < manufacture/MZGDRS --- > manufacture/DRSMZG 37947c33906 < manuscript/SM --- > manuscript/MS 37949c33908,33910 < map/ASM --- > manège/M > map's > map/AS 37952,37953c33913 < mappable < mapped/UA --- > mapped/A 37960c33920 < maraschino/SM --- > maraschino/MS 37978d33937 < marginality 37980c33939 < marginalize/DSG --- > marginalize/GDS 37984d33942 < marihuana/M 37994c33952 < marionette/SM --- > marionette/MS 38017c33975 < marl/MS --- > marl/M 38019,38020c33977 < marlinespike/MS < marlinspike/SM --- > marlinespike/SM 38043d33999 < marshaller 38045,38046c34001,34002 < marshmallow/MS < marshy/PRT --- > marshmallow/SM > marshy/RT 38049a34006 > martensite 38069c34026,34028 < mask/UDSGM --- > mashup/MS > mask's > mask/UDSG 38091c34050,34051 < master/ADGSM --- > master's > master/ADGS 38095,38097c34055,34056 < mastermind/MDSG < masterpiece/SM < mastership --- > mastermind/SGMD > masterpiece/MS 38112c34071 < mat/SZGMDRJ --- > mat/SZGMDR 38114,38115c34073 < match/AGMS < matchable/U --- > match/AMS 38119c34077 < matcher --- > matching 38122c34080 < matchmaker/SM --- > matchmaker/MS 38124d34081 < matchplay 38133d34089 < materiality 38135,38137c34091 < materialize/CDS < materialized/A < materializing --- > materialize/DSG 38149a34104 > matinée/SM 38157c34112 < matriculate/GNDS --- > matriculate/DSGN 38159c34114 < matrimonial/Y --- > matrimonial 38166d34120 < mattins/M 38173c34127 < matzo/SM --- > matzo/SMH 38176a34131 > matériel/M 38185d34139 < mavin/SM 38196d34149 < maximality 38198c34151 < maximize/GDRS --- > maximize/GDS 38216d34168 < mazourka/SM 38217a34170 > mañana/M 38219c34172 < me/DS --- > me/DSH 38222d34174 < meadowland 38226d34177 < meagreness 38236c34187 < meanie/MS --- > meanie/M 38238c34189 < meaningful/YP --- > meaningful/PY 38240c34191 < meaningless/PY --- > meaningless/YP 38250c34201 < measurable/U --- > measurable 38252c34203,34204 < measure/ADSGM --- > measure's > measure/ADSG 38255c34207 < measurement/SM --- > measurement/MS 38257d34208 < meataxe 38258a34210 > meathead/MS 38270d34221 < mechanist 38274,38275c34225 < mechanize/DSBG < mechanized/U --- > mechanize/DSG 38300c34250 < medievalist/SM --- > medievalist/MS 38308a34259,34260 > medusa > medusae 38313c34265 < meet/MRJSG --- > meet/MJSG 38321a34274 > megachurch/MS 38323c34276,34277 < megadeath/SM --- > megadeath/M > megadeaths 38325c34279 < megajoule/SM --- > megajoule/M 38332d34285 < megaparsec 38334c34287 < megapixel/MS --- > megapixel/SM 38337a34291 > meh 38343c34297 < melancholy/SM --- > melancholy/M 38347d34300 < melatonin 38352c34305 < mellifluous/YP --- > mellifluous/PY 38366c34319,34320 < melt/ADSGM --- > melt's > melt/ADSG 38368,38369c34322,34323 < melter < member/EASM --- > member's > member/EAS 38386d34339 < memorized/U 38394d34346 < menarche 38431c34383 < mention/BGSMD --- > mention/GSMD 38441c34393 < merchandise/DRSMZG --- > merchandise/MZGDRS 38444,38446c34396 < merchandize/DSG < merchant/MSB < merchantability --- > merchant/MBS 38450c34400 < merciless/YP --- > merciless/PY 38456,38457c34406,34407 < mere/MYTRS < meretricious/PY --- > mere/MYTS > meretricious/YP 38463d34412 < meridional 38471,38472c34420 < meritocrats < meritorious/YP --- > meritorious/PY 38477d34424 < meromorphic 38498c34445 < mesosphere/MS --- > mesosphere/SM 38500,38501d34446 < mesozoic < mesquit/MS 38529,38530d34473 < metalinguistic < metalized 38541c34484 < metamorphose/DSG --- > metamorphose/GDS 38548,38549d34490 < metastability < metastable 38552c34493 < metastasize/GDS --- > metastasize/DSG 38554c34495 < metatarsal/SM --- > metatarsal/MS 38559d34499 < metathesizes 38573,38574d34512 < meth < methadon/M 38580d34517 < methionine 38585a34523 > methotrexate 38590,38591d34527 < methylated < methylene 38595d34530 < metonymy 38603d34537 < metronomic 38622d34555 < micelles 38626d34558 < microanalyses 38630c34562 < microbiologist/SM --- > microbiologist/MS 38636c34568 < microcomputer/SM --- > microcomputer/MS 38639d34570 < microdensitometer 38644d34574 < microfarad 38648,38655c34578,34582 < microfloppies/S < micrograms < micrograph < microgravity < microgroove/MS < microhydrodynamics < microlight/SM < micromanage/GLDS --- > microfloppies > microgroove/SM > microlight/MS > microloan/MS > micromanage/GDSL 38657c34584 < micrometeorite/MS --- > micrometeorite/SM 38662,38663c34589 < microprocessor/SM < microprogram --- > microprocessor/MS 38667d34592 < microscopist 38669c34594 < microsecond/SM --- > microsecond/MS 38682c34607 < middleweight/SM --- > middleweight/MS 38691c34616 < midnight/SM --- > midnight/M 38699c34624 < midsize/D --- > midsize 38707d34631 < midwicket 38710a34635 > midwived 38711a34637 > midwiving 38716c34642 < might/SM --- > might/M 38726c34652 < migrator/SM --- > migrator/MS 38735d34660 < mildewy 38739d34663 < mileometer/S 38742a34667 > milf/MS 38769d34693 < millenarian 38771,38773c34695,34696 < millennial < millennium/SM < millepede/MS --- > millennial/MS > millennium/MS 38785c34708 < millionaire/MS --- > millionaire/SM 38790c34713 < millisecond/MS --- > millisecond/SM 38795c34718 < millwright/MS --- > millwright/SM 38800c34723 < mimeograph/MDG --- > mimeograph/GMD 38815c34738,34739 < mind/ADRSZGM --- > mind's > mind/ADRSZG 38827d34750 < mineralization 38829c34752 < mineralogist/SM --- > mineralogist/MS 38831d34753 < mineshaft 38833,38834c34755 < minesweeper/MS < mineworkers --- > minesweeper/SM 38839c34760 < miniaturist/SM --- > miniaturist/MS 38841c34762 < miniaturize/DSG --- > miniaturize/GDS 38847,38848c34768,34769 < minicomputer/MS < minifloppies/S --- > minicomputer/SM > minifloppies 38853,38854d34773 < minimalistic < minimality 38856c34775 < minimize/DRSG --- > minimize/DSG 38860d34778 < miniscule/MS 38864,38865c34782,34783 < ministerial/Y < ministrant/SM --- > ministerial > ministrant/MS 38870,38871c34788 < minke < minnesinger/SM --- > minnesinger/MS 38875d34791 < minotaur/S 38896c34812 < miraculous/YP --- > miraculous/Y 38906c34822 < misadventure/SM --- > misadventure/MS 38910c34826,34827 < misanalysed --- > misandrist/MS > misandry 38914c34831 < misanthropist/SM --- > misanthropist/MS 38918c34835 < misapprehend/SDG --- > misapprehend/GSD 38920c34837 < misappropriate/DSXGN --- > misappropriate/XDSGN 38926c34843 < miscalculate/GNXDS --- > miscalculate/DSXGN 38929c34846 < miscarriage/SM --- > miscarriage/MS 38933d34849 < miscellanea 38942d34857 < misclassified 38944,38945c34859 < miscomprehended < misconceive/DSG --- > misconceive/GDS 38948,38951c34862,34863 < misconfiguration < misconstruction/SM < misconstrue/DSG < miscopying --- > misconstruction/MS > misconstrue/GDS 38962,38963c34874,34875 < misdirect/GSD < misdirection/SM --- > misdirect/SDG > misdirection/M 38975d34886 < misfield 38983c34894 < misgovern/SDLG --- > misgovern/SDGL 39000,39002c34911,34913 < misjudge/DSG < misjudgement/MS < misjudgment/MS --- > misjudge/LDSG > misjudgement/SM > misjudgment/SM 39014c34925 < misogamist/SM --- > misogamist/MS 39020c34931 < misplace/GDSL --- > misplace/GLDS 39023d34933 < mispositioned 39026c34936 < mispronounce/GDS --- > mispronounce/DSG 39032,39035c34942,34944 < misremember/DG < misreport/MDSG < misrepresent/SDG < misrepresentation/SM --- > misreport/MDGS > misrepresent/GDS > misrepresentation/MS 39037c34946,34947 < miss/EDSGVM --- > miss's > miss/EDSGV 39038a34949 > missed/U 39043d34953 < missilry/M 39050c34960 < misspell/GDSJ --- > misspell/GDJS 39056,39057c34966,34967 < misstate/LGDS < misstatement/MS --- > misstate/GDSL > misstatement/SM 39060c34970,34971 < mist/CDRSZGM --- > mist's > mist/CDRSZG 39064c34975 < mister/M --- > mister's 39072,39074d34982 < mistranslates < mistranslating < mistranslation/S 39082,39083c34990,34991 < mistype/JGDS < misunderstand/GSJ --- > mistype/GS > misunderstand/SGJ 39086c34994 < misuse/DRSMG --- > misuse/DSMG 39089c34997 < mitigate/DSGN --- > mitigate/XDSGN 39091,39092c34999 < mitigation/MS < mitigatory --- > mitigation/M 39094a35002 > mitochondrion 39115c35023,35024 < mob/CSM --- > mob's > mob/CS 39119,39120c35028 < mobility/SM < mobilizable --- > mobility/M 39132,39133c35040 < mockingbird/MS < mockup/MS --- > mockingbird/SM 39150c35057 < modern/MRYPTS --- > modern/MYPS 39155c35062 < modernization/SM --- > modernization/M 39159c35066 < modest/RYT --- > modest/Y 39162c35069 < modifiable/U --- > modifiable 39166c35073 < modify/NDRSZGX --- > modify/DRSXZGN 39170,39172d35076 < modularity < modularization < modularize/DG 39178d35081 < moduli 39181,39182c35084 < moggie < moggy/S --- > moggy 39197d35098 < molarity/S 39212c35113 < molestation/SM --- > molestation/M 39217c35118 < mollify/NDSG --- > mollify/DSNG 39221c35122 < molluskan/SM --- > molluskan/S 39223c35124 < mollycoddle/MGDS --- > mollycoddle/DSMG 39233c35134 < momentous/YP --- > momentous/PY 39236,39237d35136 < momma/SM < mommie/M 39239d35137 < monadic 39244c35142 < monarchist/SM --- > monarchist/MS 39255c35153 < monetarist/SM --- > monetarist/MS 39261d35158 < moneychangers 39264,39265c35161 < moneylender/MS < moneyless --- > moneylender/SM 39274,39275d35169 < monicker/MS < monied 39282d35175 < monitored/U 39286c35179 < monkeyshine/MS --- > monkeyshine/SM 39291c35184 < monochrome/SM --- > monochrome/MS 39294c35187 < monocotyledon/MS --- > monocotyledon/SM 39297d35189 < monoculture 39309d35200 < monolayers 39314d35204 < monolog/SM 39317c35207 < monologuist/MS --- > monologuist/SM 39322,39324d35211 < monomeric < monomial/S < monomolecular 39327d35213 < monophthongs 39329d35214 < monopole/S 39337d35221 < monostable 39346,39347c35230 < monotonicity < monotonous/YP --- > monotonous/PY 39381d35263 < moonrise 39394c35276 < moot/DRSG --- > moot/DSG 39399a35282,35283 > mopier > mopiest 39404d35287 < mopy/RT 39430,39431c35313 < moribund/Y < moribundity --- > moribund 39446,39449c35328,35329 < morphism/S < morphogenesis < morphological/Y < morphology/SM --- > morphological > morphology/M 39456,39458c35336,35338 < mortarboard/MS < mortgage/AGDSM < mortgageable --- > mortarboard/SM > mortgage's > mortgage/AGDS 39460d35339 < mortgager/MS 39462d35340 < mortice/DSMG 39479c35357,35358 < mote/KCXSVNM --- > mote's > mote/KCXSVN 39486c35365 < motherfucker/SM! --- > motherfucker/MS! 39503c35382 < motivation/MS --- > motivation/SM 39526c35405 < motorsport/MS --- > motorsport/SM 39532,39533d35410 < moulder/DGS < moult/SGMD 39535c35412 < mount/AEDMGS --- > mount/EASGMD 39538c35415 < mountaineer/GMDS --- > mountaineer/SMDG 39542c35419 < mountaintop/MS --- > mountaintop/SM 39544c35421 < mounted/UC --- > mounted/U 39546,39547c35423 < mounties < mounting/MS --- > mounting/SM 39548a35425 > mourned/U 39551,39552d35427 < mournfuller < mournfullest 39564d35438 < moustachioed 39569d35442 < mouthorgan 39584,39585c35457 < moving/U < movingly --- > moving/Y 39597c35469 < much/MP --- > much/M 39604d35475 < mucosa 39615d35485 < mudflow/S 39617d35486 < mudlarks 39637a35507 > muggle/MS 39650c35520 < muleskinner/SM --- > muleskinner/MS 39661a35532 > multi 39663,39664c35534 < multichannel < multicolor/D --- > multicolored 39674,39675d35543 < multifunction < multifunctional 39677c35545 < multilayer --- > multilayered 39682,39685c35550,35551 < multimeter < multimillion < multimillionaire/MS < multinational/MS --- > multimillionaire/SM > multinational/SM 39687c35553 < multiphase --- > multiplayer/M 39691,39692c35557 < multiplexor/MS < multiplicand/SM --- > multiplicand/MS 39697c35562 < multiply/NXZGDRS --- > multiply/NZGDRSX 39700d35564 < multiprogramming 39705c35569 < multitask/SG --- > multitask/GS 39709d35572 < multivalued 39711c35574,35576 < multivitamin/SM --- > multiverse/SM > multivitamin/MS > multiyear 39713c35578 < mumble/JMZGDRS --- > mumble/MZGDRS 39719c35584 < mummify/NGDS --- > mummify/GNDS 39723c35588 < munch/ZGDRS --- > munch/GDS 39733d35597 < muons 39780c35644 < muskellunge/SM --- > muskellunge/MS 39815d35678 < mutilated/U 39833d35695 < muzzled/U 39836d35697 < mySimon 39841,39842c35702 < mynah/M < mynahs --- > mynah/MS 39843a35704 > myocardium 39853c35714 < mysterious/YP --- > mysterious/PY 39866,39867c35727,35728 < mythologist/MS < mythologize/GDS --- > mythologist/SM > mythologize/DSG 39870a35732,35733 > métier/MS > mêlée/MS 39888c35751 < nagware/S --- > nagware 39897c35760,35761 < naked/TPRY --- > naiveté/M > naked/PY 39899c35763,35764 < name/AGDSM --- > name's > name/AGDS 39908,39910c35773 < namespace/MS < naming/S < nan/S --- > namespace/SM 39914d35776 < nanometer/S 39916c35778 < nanotechnology/S --- > nanotechnology/SM 39941c35803 < nark/MDSG --- > nark 39946d35807 < narratology 39967c35828 < nationalist/MS --- > nationalist/SM 39971,39973c35832,35833 < nationalization/SM < nationalize/CGDS < nationalized/A --- > nationalization/MS > nationalize/CDSG 39976c35836 < native/MSY --- > native/MYS 39983c35843,35844 < natural/UPYM --- > natural's > natural/UPY 39985c35846 < naturalist/MS --- > naturalist/SM 39988c35849 < naturalize/GDS --- > naturalize/DSG 39991c35852,35853 < nature/CSM --- > nature's > nature/CS 40001c35863 < nauseous/YP --- > nauseous/PY 40009c35871 < navigable/U --- > navigable 40019c35881 < neanderthal/SM --- > neanderthal/MS 40023d35884 < nearly/TR 40024a35886 > nearshore 40026c35888 < nearsighted/PY --- > nearsighted/YP 40035,40036c35897 < nebulosity < nebulous/YP --- > nebulous/PY 40040c35901 < necessitate/GDS --- > necessitate/DSG 40051c35912 < necromancer/MS --- > necromancer/SM 40053d35913 < necromantic 40057d35916 < necropsy 40069d35927 < needlecraft 40071c35929 < needless/PY --- > needless/YP 40078c35936 < nefarious/PY --- > nefarious/YP 40088c35946 < neglectful/PY --- > neglectful/YP 40090d35947 < neglige/SM 40094d35950 < negligibility 40120a35977 > neocon/S 40128c35985 < neophilia/S --- > neophilia 40144,40145c36001,36003 < nerve/UDSGM < nerveless/PY --- > nerve's > nerve/UDSG > nerveless/YP 40151c36009 < nest/BMDSG --- > nest/MDSG 40155a36014 > netbook/MS 40160c36019,36020 < nett/DRZG --- > netted > netter/S 40173d36032 < neurobiology 40175c36034 < neurologist/MS --- > neurologist/SM 40179,40180c36038,36040 < neurophysiology/M < neuroscience/MS --- > neurophysiology's > neuroscience's > neurosciences 40212c36072 < newish --- > newfound 40226c36086 < newsletter/SM --- > newsletter/MS 40233a36094 > newspeak 40244c36105 < newsworthy/PRT --- > newsworthy/P 40260c36121 < nickelodeon/MS --- > nickelodeon/SM 40263d36123 < nicknack/SM 40269d36128 < niftily 40270a36130 > nigga/S 40272a36133 > niggaz 40287,40288c36148,36149 < nightie/SM < nightingale/MS --- > nightie/M > nightingale/SM 40317d36177 < ninepence 40348,40349d36207 < nitric < nitride/S 40358d36215 < nitrous 40391c36248 < noisemaker/SM --- > noisemaker/MS 40400,40401c36257,36258 < nominate/ACGNVDS < nomination/CSMA --- > nominate/CASDXVNG > nomination/ACM 40418c36275 < nonagenarian/SM --- > nonagenarian/MS 40424c36281 < nonappearance/SM --- > nonappearance/MS 40442c36299 < nonclerical/SM --- > nonclerical/MS 40447c36304 < noncombatant/SM --- > noncombatant/MS 40449c36306 < noncommercial/SM --- > noncommercial/MS 40458c36315 < nonconductor/SM --- > nonconductor/MS 40461c36318 < nonconformist/SM --- > nonconformist/MS 40475c36332 < noncriminal/MS --- > noncriminal/SM 40487c36344 < nondescript/Y --- > nondescript 40495c36352 < nondrinker/SM --- > nondrinker/MS 40506c36363 < nonequivalent/SM --- > nonequivalent/MS 40516c36373 < nonexplosive/SM --- > nonexplosive/MS 40545c36402 < nonintellectual/SM --- > nonintellectual/MS 40551a36409 > nonissue 40581,40582c36439 < nonparallel/SM < nonparametric --- > nonparallel/MS 40586c36443 < nonpartisan/MS --- > nonpartisan/SM 40588c36445 < nonpayment/MS --- > nonpayment/SM 40605,40606c36462,36463 < nonprofessional/MS < nonprofit/SBM --- > nonprofessional/SM > nonprofit/SMB 40614c36471 < nonreciprocal/MS --- > nonreciprocal/SM 40625c36482 < nonresident/SM --- > nonresident/MS 40631c36488 < nonreturnable/SM --- > nonreturnable/MS 40642c36499 < nonsense/MS --- > nonsense/M 40653c36510 < nonspecialist/SM --- > nonspecialist/MS 40656c36513 < nonspiritual/MS --- > nonspiritual/SM 40659c36516 < nonstarter/SM --- > nonstarter/MS 40666c36523 < nonsupport/MG --- > nonsupport/GM 40705c36562 < noon/MS --- > noon/M 40713,40716c36570,36571 < noradrenalin < noradrenaline < norm/MDS < normal/MYS --- > norm/MS > normal/MY 40719,40720c36574,36575 < normalization/MS < normalize/DRSBZG --- > normalization/M > normalize/DSG 40733d36587 < northmen 40765d36618 < notational/Y 40767c36620,36621 < note/FCSDGM --- > note's > note/FCSDG 40784c36638 < notify/NXDRSZG --- > notify/NDRSXZG 40791a36646 > nought/MS 40793d36647 < nounal 40802,40803c36656 < novelistic < novelization/SM --- > novelization/MS 40817c36670 < noxious/YP --- > noxious 40826d36678 < nuclease 40828d36679 < nucleated/A 40835c36686,36687 < nucleotide/S --- > nucleoside > nucleotide 40851c36703,36704 < number/ASDGM --- > number's > number/ASDG 40853d36705 < numbering/S 40855,40857d36706 < numberplate < numbers/S < numbing/Y 40868,40869c36717 < numerological < numerologist/SM --- > numerologist/MS 40875c36723 < numismatist/MS --- > numismatist/SM 40882c36730 < nurseling/MS --- > nurselings 40893d36740 < nutation 40906c36753 < nutritionist/MS --- > nutritionist/SM 40918,40919c36765 < nybble/DSG < nyetwork/S --- > nybble/S 40925d36770 < nympholepsy 40927c36772 < nymphomaniac/MS --- > nymphomaniac/SM 40928a36774 > née 40964c36810 < obfuscate/GNDSX --- > obfuscate/GNXDS 40966d36811 < obfuscatory 40972,40974c36817,36819 < objectify/GDSN < objection/BSM < objectionable/P --- > objectify/NGDS > objection/SMB > objectionable/U 40976c36821 < objective/PSMY --- > objective/SMYP 40979d36823 < objectless 40990,40992c36834,36835 < obliging/U < obligingly < oblique/DSMYP --- > obliging/Y > oblique/SMYP 40995c36838 < obliterate/GNDS --- > obliterate/DSGN 40998c36841 < oblivious/PY --- > oblivious/YP 41009,41011c36852,36853 < obscurantist/MS < obscuration < obscure/DRSLPYTG --- > obscurantist/SM > obscure/DRSYTG 41017,41018d36858 < observability < observable/S 41020c36860 < observance/SM --- > observance/MS 41022,41023c36862,36863 < observation/MS < observational/Y --- > observation/SM > observational 41031c36871 < obsessive/SMYP --- > obsessive/PSMY 41041c36881 < obstetrician/MS --- > obstetrician/SM 41045c36885 < obstreperous/PY --- > obstreperous/YP 41049c36889 < obstruction/MS --- > obstruction/SM 41051c36891 < obstructionist/SM --- > obstructionist/MS 41059c36899 < obtrusive/UYP --- > obtrusive/UPY 41072d36911 < occipital 41076c36915 < occult/MS --- > occult/M 41079c36918 < occupancy/SM --- > occupancy/M 41092c36931 < oceanfront/MS --- > oceanfront/SM 41100c36939 < och/ZR --- > och/R 41105,41106d36943 < octahedral < octahedron 41109d36945 < octant 41113,41114c36949 < octette/MS < octogenarian/MS --- > octogenarian/SM 41144d36978 < offcuts 41148c36982,36983 < offensive/IYPM --- > offensive's > offensive/IPY 41155c36990 < offhanded/YP --- > offhanded/PY 41158c36993 < officeholder/MS --- > officeholder/SM 41160,41161c36995 < officership/S < official/MYSP --- > official/MYS 41168c37002 < officious/YP --- > officious/PY 41178c37012 < offshore --- > offshore/G 41184c37018 < oft/TNR --- > oft 41193d37026 < ogrish 41196d37028 < ohmic 41210d37041 < oilseed 41217c37048 < okay/MSG --- > okay/MDSG 41220d37050 < olde 41228d37057 < olefin 41238c37067 < oligonucleotide --- > oligonucleotide/S 41241c37070 < olivine --- > olé/M 41246a37076 > omelette/MS 41256d37085 < omnidirectional 41269c37098 < oncologist/MS --- > oncologist/SM 41284d37112 < only/T 41298c37126 < ontological/Y --- > ontological 41301c37129 < onward/S --- > onward 41306d37133 < oolitic 41317a37145 > opcode/S 41340c37168 < ophthalmic/S --- > ophthalmic 41347d37174 < opioid 41354c37181 < opportunist/MS --- > opportunist/SM 41358c37185 < oppose/DSGRB --- > oppose/DRSBG 41362d37188 < oppositional 41364,41365c37190,37191 < oppression/SM < oppressive/PY --- > oppression/M > oppressive/YP 41377d37202 < optimality 41383,41384c37208 < optimize/DRSZG < optimized/U --- > optimize/DRSG 41388,41389d37211 < optionality < optoelectronic 41403d37224 < orangutang/MS 41414a37236 > orc/S 41418c37240 < orchestrate/XGNDS --- > orchestrate/DSXGN 41420d37241 < orchestrator 41426d37246 < ordered/U 41428d37247 < orderless 41433d37251 < ordinands 41436c37254 < ordinary/RSMPT --- > ordinary/SMP 41445d37262 < organdie/M 41453d37269 < organizable 41465,41466c37281,37282 < orient/AEDGSM < orientable --- > orient's > orient/AEDGS 41470,41471d37285 < orientated/A < orientates/A 41483c37297 < originator/MS --- > originator/SM 41495c37309 < ornithologist/SM --- > ornithologist/MS 41508c37322 < orthogonal/Y --- > orthogonal 41511c37325 < orthographical/Y --- > orthographically 41513d37326 < orthonormal 41517d37329 < orthorhombic 41519c37331 < oscillate/XGNDS --- > oscillate/GNDSX 41521c37333 < oscillator/MS --- > oscillator/SM 41532c37344 < ossify/GNDS --- > ossify/NGDS 41566c37378 < outbalance/GDS --- > outbalance/DSG 41581c37393 < outcropping/MS --- > outcropping/SM 41585c37397 < outdistance/DSG --- > outdistance/GDS 41626c37438 < outlandish/YP --- > outlandish/PY 41630d37441 < outlawry 41633d37443 < outlier/S 41638c37448 < outmaneuver/SGD --- > outmaneuver/GDS 41643,41644c37453,37454 < outpatient/SM < outperform/DSG --- > outpatient/MS > outperform/GSD 41666a37477 > outré 41675c37486 < outsize/MDS --- > outsize/MS 41683c37494 < outspoken/PY --- > outspoken/YP 41689c37500 < outstretch/GDS --- > outstretch/DSG 41727d37537 < overallocation 41736c37546 < overbalance/DSMG --- > overbalance/MGDS 41751c37561 < overburden/SDG --- > overburden/GSD 41755c37565 < overcapitalize/GDS --- > overcapitalize/DSG 41759,41761c37569,37571 < overcharge/MGDS < overclock/SDG < overcloud/SDG --- > overcharge/DSMG > overclock/GD > overcloud/SGD 41764,41765c37574 < overcommitment/S < overcompensate/GNDS --- > overcompensate/DSGN 41767,41768d37575 < overcomplexity < overcomplicated 41774c37581 < overcrowd/GSD --- > overcrowd/SDG 41778,41779c37585 < overdetermined < overdevelop/SGD --- > overdevelop/SDG 41799c37605 < overemphasize/DSG --- > overemphasize/GDS 41801c37607 < overestimate/DSMGN --- > overestimate/MGNDS 41803,41805c37609,37611 < overexcite/GDS < overexercise/DSG < overexert/GSD --- > overexcite/DSG > overexercise/GDS > overexert/SDG 41809c37615 < overextend/GDS --- > overextend/DGS 41813d37618 < overfishing 41838d37642 < overincredulous 41842d37645 < overinflated 41863,41864c37666 < overmaster/SGD < overmatching --- > overmaster/SDG 41874c37676 < overpay/LGS --- > overpay/GS 41878,41879c37680 < overpopulous < overpower/GSD --- > overpower/SDG 41883d37683 < overpressure 41885,41886c37685,37686 < overprint/GSMD < overproduce/DSG --- > overprint/SMDG > overproduce/GDS 41892c37692 < overreach/DSG --- > overreach/GDS 41896d37695 < overrepresented 41904d37702 < oversampled 41915d37712 < oversensitivity 41917c37714,37715 < overshadow/GDS --- > overshadow/DSG > overshare/DSG 41919c37717 < overshoot/SG --- > overshoot/GS 41924,41926c37722,37724 < oversimplify/NXDSG < oversize < oversleep/SG --- > oversimplify/DSNGX > oversize/D > oversleep/GS 41931c37729 < overspend/GS --- > overspend/SG 41933d37730 < overspill/GSM 41936,41937c37733,37734 < overstate/LDSG < overstatement/SM --- > overstate/DSLG > overstatement/MS 41944,41945c37741 < overstress/D < overstretch/DSG --- > overstretch/GDS 41951c37747 < oversupply/DSG --- > oversupply/GDS 41953,41954c37749,37750 < overt/YP < overtake/ZGRS --- > overt/Y > overtake/GS 41956a37753,37754 > overthink/SG > overthought 41958c37756 < overthrow/GSM --- > overthrow/SMG 41960d37757 < overtightened 41973c37770 < overwhelm/GSD --- > overwhelm/SGD 41996d37792 < owned/U 41998,42001c37794,37795 < ownership/SM < ox/MNS < oxalate < oxalic --- > ownership/M > ox/MN 42030d37823 < pacemen 42032c37825 < pacesetter/MS --- > pacesetter/SM 42035c37828 < pachysandra/SM --- > pachysandra/MS 42044,42046c37837,37840 < pack/UADSGM < packable < package/AGDSM --- > pack's > pack/AUGSD > package's > package/AGDS 42051,42053c37845,37846 < packhorse < packing/M < packinghouse/MS --- > packing's > packinghouse/SM 42068d37860 < paeony 42075d37866 < pageful 42089c37880 < painkiller/SM --- > painkiller/MS 42112,42114d37902 < palaeolithic < palaeontologist/S < palaeontology 42124a37913,37914 > palazzi > palazzo 42128,42129c37918 < paleographer/SM < paleographic --- > paleographer/MS 42132,42133c37921 < paleontological < paleontologist/MS --- > paleontologist/SM 42138c37926 < palimpsest/SM --- > palimpsest/MS 42150c37938 < palliative/MS --- > palliative/SM 42166c37954 < palpitate/GNDSX --- > palpitate/XGNDS 42171d37958 < paludal 42175,42176c37962,37963 < pamphleteer/SM < pan/SMD --- > pamphleteer/MS > pan/SM 42184a37972 > pancreatitis 42190c37978 < pane/MS --- > pane/KM 42194a37983 > panes 42196d37984 < pangolin 42202,42204c37990 < panicky/TR < panier/MS < panjandrum --- > panicky 42222,42223d38007 < pantiled < pantiles 42225,42226d38008 < pantograph < pantographs 42229c38011 < pantomimist/MS --- > pantomimist/SM 42236d38017 < panzer 42253c38034 < paperhanger/MS --- > paperhanger/SM 42273d38053 < paraboloid/S 42276c38056 < parachutist/SM --- > parachutist/MS 42292d38071 < paralinguistic 42296,42299c38075,38077 < parallelepiped < parallelism/SM < parallelization/SM < parallelize/SGD --- > parallelism/MS > parallelization/MS > parallelize/GDS 42304d38081 < paralytically 42307,42308d38083 < paramagnetic < paramagnetism 42312c38087 < paramedical/SM --- > paramedical/MS 42315,42317d38089 < parametrically < parametrization < parametrize/DS 42328c38100 < paraphrase/MGDS --- > paraphrase/DSMG 42330c38102 < paraplegic/MS --- > paraplegic/SM 42332c38104 < parapsychologist/SM --- > parapsychologist/MS 42334a38107 > parasailing 42340,42341d38112 < parasitologist < parasitology 42364d38134 < parenteral 42367c38137 < parenthesize/GDS --- > parenthesize/DSG 42379c38149 < parimutuel/SM --- > parimutuel/MS 42382c38152 < parishioner/SM --- > parishioner/MS 42395c38165 < parliamentarian/MS --- > parliamentarian/SM 42398d38167 < parlormaid 42404,42405d38172 < parochiality < parodied/U 42420c38187 < parse/DRSJZG --- > parse/DRSG 42428c38195,38196 < part/CDSGM --- > part's > part/CDSG 42436,42437c38204,38205 < participant/MS < participate/GNVDS --- > participant/SM > participate/DSGN 42439c38207 < participator/SM --- > participator/MS 42442c38210 < participle/SM --- > participle/MS 42446d38213 < particularism 42450c38217 < particulate/MS --- > particulate/SM 42454c38221,38222 < partition/ADGMS --- > partition/GMDS > partitions/A 42455a38224 > partizan/SM 42471c38240 < passageway/SM --- > passageway/MS 42483,42484c38252 < passionateness < passionflower/MS --- > passionflower/SM 42486d38253 < passivated 42489,42490d38255 < passivisation < passivise/DSG 42495,42496c38260 < passmark < passover --- > passphrase/S 42498a38263 > passé 42503d38267 < pasted/U 42507c38271 < pasteurize/DRSZG --- > pasteurize/ZGDRS 42515d38278 < pastis 42518d38280 < pastoralism 42526c38288 < pat/SZMR --- > pat/SM 42528d38289 < patchable 42537c38298 < patent/GMDYBS --- > patent/GMDYS 42544c38305 < paternoster/SM --- > paternoster/MS 42551d38311 < pathogenesis 42554,42555c38314,38315 < pathologist/MS < pathology/SM --- > pathologist/SM > pathology/M 42571c38331 < patriarchate/SM --- > patriarchate/MS 42592d38351 < patronization 42601d38359 < patten/S 42604d38361 < patternless 42623c38380 < pawnbroker/SM --- > pawnbroker/MS 42627c38384,38385 < pay/ASGBLM --- > pay's > pay/ASGBL 42643c38401,38402 < payware/S --- > paywall/SM > payware 42651,42652d38409 < peacefuller < peacefullest 42654c38411 < peacekeeper/MS --- > peacekeeper/SM 42656c38413 < peacemaker/SM --- > peacemaker/MS 42665c38422 < peaky/P --- > peaky 42671d38427 < peartrees 42674c38430 < peashooter/MS --- > peashooter/SM 42678c38434 < pebbly/TR --- > pebbly 42689c38445 < peculate/GNXDS --- > peculate/GNDS 42691c38447 < peculator/M --- > peculator/SM 42695d38450 < pedagog/SM 42713c38468 < pedestrianize/DSG --- > pedestrianize/GDS 42722,42723d38476 < pedlar/MS < pedology 42767d38519 < pellmell 42790c38542 < penetrate/XDSGNV --- > penetrate/DSGNVX 42807d38558 < penlite/MS 42817c38568 < pennyweight/SM --- > pennyweight/MS 42830,42832c38581,38582 < pentameter/MS < pentasyllabic < pentathlete/SM --- > pentameter/SM > pentathlete/MS 42834,42835d38583 < pentatonic < pentecostal 42838c38586 < penultimate/SMY --- > penultimate/SM 42841c38589 < penurious/YP --- > penurious/PY 42849d38596 < peperoni 42853c38600 < peppermint/MS --- > peppermint/SM 42863c38610 < perambulate/DSGNX --- > perambulate/XGNDS 42865c38612 < perambulator/SM --- > perambulator/MS 42872d38618 < perceptibility 42875c38621 < perception/MS --- > perception/SM 42877c38623 < perceptive/YP --- > perceptive/PY 42879d38624 < percepts 42883d38627 < perchlorate 42889d38632 < percuss/GVDS 42891,42892c38634,38635 < percussionist/SM < percussive/Y --- > percussionist/MS > percussive 42895c38638 < peregrinate/GNXDS --- > peregrinate/DSXGN 42899c38642 < peremptory/P --- > peremptory 42908c38651 < perfectionist/MS --- > perfectionist/SM 42912c38655 < perforate/GNDSX --- > perforate/GNXDS 42915c38658 < perform/BSDRZG --- > perform/SDRZG 42916a38660 > performative 42924d38667 < perfused 42928d38670 < periastron 42929a38672,38673 > pericardial > pericarditis 42932d38675 < periglacial 42948,42949c38691,38692 < peripatetic/SM < peripheral/SMY --- > peripatetic/MS > peripheral/MYS 42975c38718 < permalink/MS --- > permalink/SM 42979d38721 < permanganate 42984d38725 < permissibility 42987c38728 < permission/SM --- > permission/MS 42994,42995c38735 < permittivity < permutation/MS --- > permutation/SM 42997c38737 < pernicious/PY --- > pernicious/YP 42999d38738 < pernickety 43001d38739 < peroxidase 43003c38741 < perpendicular/MYS --- > perpendicular/SMY 43005c38743 < perpetrate/GNDS --- > perpetrate/DSGN 43007c38745 < perpetrator/SM --- > perpetrator/MS 43009c38747 < perpetuate/GNDS --- > perpetuate/DSGN 43016,43017c38754 < perry < persecute/GNDSX --- > persecute/GNXDS 43022d38758 < persevering/Y 43030c38766 < persona/M --- > persona/SM 43036,43038c38772 < personalization/C < personalize/CGDS < personalized/U --- > personalize/CDSG 43041c38775 < personify/XDSGN --- > personify/GDSNX 43043c38777 < perspective/SM --- > perspective/MS 43048c38782 < perspicuous/Y --- > perspicuous 43055c38789 < persuasive/YP --- > persuasive/PY 43065c38799 < perturbation/MS --- > perturbation/SM 43086c38820 < pessimal/SDYG --- > pessimal 43106d38839 < pethidine 43110c38843 < petitioner/MS --- > petitioner/M 43113c38846 < petrify/NDSG --- > petrify/DSG 43115,43117c38848 < petrodollar/SM < petrographic < petrographical --- > petrodollar/MS 43121d38851 < petrological 43134c38864 < pettish/YP --- > pettish/Y 43160d38889 < phantasy/GDSM 43167c38896 < pharmaceutical/MS --- > pharmaceutical/SM 43169c38898 < pharmacist/SM --- > pharmacist/MS 43171c38900 < pharmacologist/MS --- > pharmacologist/SM 43174c38903 < pharmacopoeia/SM --- > pharmacopoeia/MS 43186,43188c38915 < phenol/MS < phenolic < phenolphthalein --- > phenol/M 43192c38919 < phenomenological/Y --- > phenomenological 43195,43196c38922 < phenotype/S < phenylalanine --- > phenotype 43201c38927 < philander/DRSZG --- > philander/ZGDRS 43206c38932 < philanthropist/SM --- > philanthropist/MS 43209c38935 < philatelist/SM --- > philatelist/MS 43213c38939 < philistine/SM --- > philistine/MS 43219c38945 < philosopher/SM --- > philosopher/MS 43222c38948 < philosophize/ZGDRS --- > philosophize/DRSZG 43226d38951 < philtre/MS 43230,43232c38955,38956 < phlebotomist/SM < phlebotomize/SGD < phlebotomy --- > phlebotomist/MS > phlebotomize/GDS 43237d38960 < phlogiston 43252d38974 < phoneticist 43254c38976,38977 < phoney/GMDS --- > phoneyed > phoneying 43263c38986 < phonologist/SM --- > phonologist/MS 43265d38987 < phonon 43268d38989 < phosphatase 43269a38991 > phosphodiesterase 43277a39000 > photobomb/DGS 43279,43280d39001 < photochemical/Y < photochemistry 43285c39006 < photoengrave/ZGDRSJ --- > photoengrave/DRSJZG 43298,43300c39019 < photojournalist/MS < photolysis < photolytic --- > photojournalist/SM 43302,43305d39020 < photometric < photometrically < photometry < photomultiplier 43307d39021 < photoreceptor 43309d39022 < photosphere 43317c39030,39031 < photosynthetically --- > phototropic > phototropism 43320d39033 < photovoltaic 43322c39035,39036 < phrase/AGDSM --- > phrase's > phrase/AGDS 43326,43327c39040 < phreaking/S < phrenological/Y --- > phreaking 43332d39044 < phylogenetic 43349c39061 < physiologist/SM --- > physiologist/MS 43351c39063 < physiotherapist/SM --- > physiotherapist/MS 43354d39065 < phytoplankton 43358d39068 < pianistic 43368a39079 > picante 43374d39084 < pickaback 43376d39085 < pickaxe/M 43382c39091 < pickpocket/SMG --- > pickpocket/SM 43384c39093 < picky/TRP --- > picky/PTR 43389d39097 < picoseconds 43391d39098 < pictogram 43393d39099 < pictographic 43397c39103 < picturesque/YP --- > picturesque/PY 43406,43407c39112 < piecewise < piecework/ZMR --- > piecework/MRZ 43408a39114 > piecrust/SM 43411c39117 < pierce/JZGDRS --- > pierce/JGDS 43418c39124 < pigeonhole/MGDS --- > pigeonhole/DSMG 43431d39136 < pigmy/SM 43436c39141 < pigtail/MDS --- > pigtail/MS 43439a39145 > pikestaves 43441d39146 < pilaff/MS 43443d39147 < pilau/SM 43453c39157 < pill/MS --- > pill/MDSG 43476,43477c39180,39181 < pincer/MDS < pinch/GMDRS --- > pincer/MS > pinch/GMDS 43479,43480c39183,39184 < pine/AGDSM < pineal --- > pine's > pine/AGDS 43496c39200 < pinnacle/DSM --- > pinnacle/SM 43502d39205 < pinocle/M 43539a39243 > pirozhki/M 43566d39269 < piths 43571,43572d39273 < pitifuller < pitifullest 43587,43588c39288 < pixie/M < pixy/SM --- > pixie/MS 43594a39295,39296 > piñata/MS > piñon/SM 43605c39307,39308 < place/EAGLDSM --- > place's > place/AESDLG 43608c39311 < placeholder/SM --- > placeholder/MS 43611d39313 < placemen 43620,43622c39322,39324 < plagiarism/MS < plagiarist/MS < plagiarize/ZGDRS --- > plagiarism/SM > plagiarist/SM > plagiarize/DRSZG 43645c39347,39348 < plane/CGDSM --- > plane's > plane/CGDS 43649c39352 < planetarium/MS --- > planetarium/SM 43651,43652d39353 < planetesimals < planetoids 43664c39365 < plantation/SM --- > plantation/MS 43670,43671c39371 < plasma/SM < plasmid/S --- > plasma/M 43675d39374 < plasterwork 43677d39375 < plasticine 43679c39377,39378 < plasticize/DSZG --- > plasticize/DSG > plastique 43697a39397 > platys 43703d39402 < playability/U 43720d39418 < playings 43756c39454 < plenteous/Y --- > plenteous 43764d39461 < pleural 43787c39484 < plotted/A --- > plotted 43791c39488 < plow/ZGMDS --- > plow/GMDS 43795,43796c39492,39494 < ploy/SM < pluck/MDRSG --- > ploy's > ploy/S > pluck/MDSG 43800,43802c39498,39501 < plug/USM < plugged/UA < plugging/UA --- > plug's > plug/US > plugged/U > plugging/U 43804c39503 < plugin/MS --- > plugin/SM 43808d39506 < plumbago 43812a39511,39512 > plummer > plummest 43840c39540 < ply/AZGDSM --- > ply/AGDSM 43843c39543 < pneumatic/S --- > pneumatic 43844a39545,39547 > pneumococcal > pneumococci > pneumococcus 43857c39560 < podcast --- > podcast/SM 43860d39562 < podgy 43872d39573 < pogo 43877d39577 < poikilothermic 43882c39582 < pointed/PY --- > pointed/Y 43886c39586 < pointless/YP --- > pointless/PY 43901c39601 < polarization/CMS --- > polarization/CM 43911d39610 < poleward/S 43918c39617 < policyholder/SM --- > policyholder/MS 43922c39621 < polish/ZGMDRSJ --- > polish/ZGMDRS 43931c39630 < politician/MS --- > politician/SM 43939c39638 < poll/XGMDNS --- > poll/GMDNS 43945c39644 < pollinator/MS --- > pollinator/SM 43948c39647 < pollock/MS --- > pollock/M 43951c39650 < pollute/ZGNDRSX --- > pollute/ZGNDRS 43961a39661,39662 > polyacrylamide > polyamory/S 43964,43967d39664 < polyatomic < polycarbonate < polychromatic < polychrome 43969,43970d39665 < polycrystalline < polycyclic 43986d39680 < polymerase/S 43991d39684 < polymorphism/S 43993,43994c39686,39687 < polynomial/SMY < polynucleotide/MS --- > polynomial/MS > polynucleotide/SM 43996c39689 < polypeptide/MS --- > polypeptide's 44000c39693 < polysaccharides --- > polys 44005c39698 < polytechnic/SM --- > polytechnic/MS 44010d39702 < polytopes 44012c39704 < polyurethane/SM --- > polyurethane/MS 44024d39715 < pompon/SM 44029d39719 < poncey 44035c39725 < ponderous/PY --- > ponderous/YP 44043c39733 < pontificate/MGNDSX --- > pontificate/DSMG 44072d39761 < poppadum/S 44082c39771 < popularization/SM --- > popularization/M 44085d39773 < populated/U 44116c39804,39805 < port/CAEGDSM --- > port's/A > port/CAEGDS 44126,44127c39815 < porterage < porterhouse/MS --- > porterhouse/SM 44133a39822 > portière/MS 44136c39825 < portmanteau/SM --- > portmanteau/MS 44138c39827 < portraitist/MS --- > portraitist/SM 44143c39832,39833 < pose/CAKEGDSM --- > pose's/A > pose/CAKEGDS 44148,44154c39838,39842 < position/ACKESM < positionable < positional/KC < positionally < positioned/KA < positioning/AK < positive/PMYTRS --- > position/CKEMS > positional/K > positioned/K > positioning/K > positive/MYPS 44158d39845 < positivity 44164c39851 < possessive/SPMY --- > possessive/SMYP 44168c39855 < possible/RSMT --- > possible/SM 44177a39865 > postcolonial 44180c39868 < postdoc --- > postdoc/MS 44185,44186c39873 < postfixes < postgraduate/MS --- > postgraduate/SM 44213c39900 < postponement/MS --- > postponement/SM 44240c39927 < potentiometer/S --- > potentiate/GDS 44267c39954,39955 < pound/KDSGM --- > pound's > pound/KDSG 44270c39958 < pour/GDSBJ --- > pour/GDSJ 44280c39968 < powerful/YP --- > powerful/Y 44282c39970 < powerless/YP --- > powerless/PY 44286d39973 < poxy 44291c39978 < practicability/SM --- > practicability/M 44298,44299c39985 < practitioner/MS < praesidium/S --- > practitioner/SM 44305c39991 < pragmatist/SM --- > pragmatist/MS 44328d40013 < prayerbook 44330c40015 < preach/DRSZGJL --- > preach/DRSZGL 44334,44335c40019 < preadolescence/MS < preallocate --- > preadolescence/SM 44337,44338d40020 < preamp < preamplifier 44342,44343d40023 < preauthorize < prebendary 44346c40026 < precarious/YP --- > precarious/PY 44352c40032 < precedence/MS --- > precedence/M 44356,44357d40035 < precess/GD < precession 44360c40038 < precious/PY --- > precious/YP 44363,44364c40041,40042 < precipitant/SM < precipitate/DSXMYGN --- > precipitant/MS > precipitate/XMYGNDS 44368c40046 < precise/XDRSYTGNP --- > precise/DRSYTGNP 44371d40048 < preclinical 44374c40051 < precocious/PY --- > precocious/YP 44377c40054 < precognition/SM --- > precognition/M 44380,44383c40057,40059 < precomputed < preconceive/DSG < preconception/MS < precondition/GSMD --- > preconceive/GDS > preconception/SM > precondition/MDGS 44387c40063 < predate/XDSGN --- > predate/DSG 44392,44394c40068,40069 < predecessor/MS < predeclared < predefine/DG --- > predecessor/SM > predefined 44399c40074 < predetermine/DRSZG --- > predetermine/ZGDRS 44410,44411c40085 < predicted/U < prediction/MS --- > prediction/SM 44413c40087 < predigest/DSG --- > predigest/GDS 44416c40090 < predisposition/SM --- > predisposition/MS 44419c40093 < predominate/DSYG --- > predominate/YGDS 44433c40107 < prefabricate/GNDS --- > prefabricate/DSGN 44453a40128 > prehistorian/S 44457c40132,40133 < prejudge/GDS --- > prehuman > prejudge/LGDS 44459c40135 < prejudgment/MS --- > prejudgment/SM 44470d40145 < preloaded 44473,44474c40148 < premature/YP < prematurity --- > premature/Y 44477c40151 < premeditate/GNDS --- > premeditate/DSGN 44483c40157 < premiership/SM --- > premiership/MS 44485d40158 < premiss/SM 44489c40162 < premonition/SM --- > premonition/MS 44491a40165 > prenup/SM 44493c40167 < preoccupation/MS --- > preoccupation/SM 44496c40170 < preordain/DSG --- > preordain/GDS 44501,44502c40175 < preparation/MS < preparative --- > preparation/SM 44504c40177 < prepare/ZGDRS --- > prepare/GDS 44509d40181 < preplanned 44513c40185 < preposition/MS --- > preposition/SM 44523d40194 < preprocessed 44525c40196 < prepubescent/MS --- > prepubescent/SM 44528,44529c40199,40200 < prerecord/SGD < preregister/DGS --- > prerecord/GSD > preregister/SGD 44531c40202 < prerequisite/SM --- > prerequisite/MS 44538c40209 < preschool/SMRZ --- > preschool/SZMR 44546,44547d40216 < prescriptivism < prescriptivist 44549d40217 < preselect/SD 44554d40221 < presentational/A 44556c40223 < presentiment/MS --- > presentiment/SM 44566c40233 < preshrink/SG --- > preshrink/GS 44575c40242,40243 < press/ACGSDM --- > press's > press/ACGSD 44584,44586c40252,40253 < pressurize/CDSG < pressurized/U < pressurizer/MS --- > pressurize/CGDS > pressurizer/SM 44588,44589d40254 < prestidigitator < prestidigitatorial 44596,44597c40261,40262 < presumptive/Y < presumptuous/PY --- > presumptive > presumptuous/YP 44605d40269 < pretending/U 44616,44617d40279 < pretreated < pretreatment/S 44626,44627c40288,40289 < prevalent/Y < prevaricate/GNXDS --- > prevalent > prevaricate/DSGNX 44632,44634c40294,40295 < preventative/SM < preventible < prevention/SM --- > preventative/MS > prevention/M 44639d40299 < prevue/SM 44644c40304,40305 < price/AGDSM --- > price's > price/AGDS 44646a40308,40309 > pricier > priciest 44652d40314 < pricy/RT 44658c40320 < priesthood/MS --- > priesthood/SM 44660c40322 < priestly/PRT --- > priestly/RTP 44662c40324 < priggish/YP --- > priggish/P 44664c40326 < prim/YP --- > prim/ZGDRYP 44666d40327 < primaeval 44671c40332 < prime/MZGDRSP --- > prime/MS 44675c40336 < primitive/PSMY --- > primitive/SPMY 44680c40341 < primogenitor/MS --- > primogenitor/SM 44697d40357 < printed/U 44722c40382 < privatization/MS --- > privatization/SM 44731c40391 < prizefight/MRSZG --- > prizefight/ZGSMR 44734c40394 < prizewinner/SM --- > prizewinner/MS 44737c40397 < probabilist --- > proactive/Y 44739d40398 < probabilistically 44743c40402 < probate/MNV --- > probate/MN 44751c40410 < problematic/U --- > problematic 44756c40415 < procedural/Y --- > procedural 44761,44762c40420,40421 < process/AGDSM < processable --- > process's > process/AGDS 44764,44765c40423,40424 < procession/DG < processional/SM --- > procession/GD > processional/MS 44767d40425 < proclaim/Z 44770c40428 < procrastinate/GNXDS --- > procrastinate/DSGN 44772c40430 < procrastinator/SM --- > procrastinator/MS 44774,44775d40431 < procreational < procreatory 44777,44778c40433 < proctorial < procurement/SM --- > procurement/M 44784c40439,40440 < produce/AZGDRSM --- > produce's > produce/AZGDRS 44787d40442 < product/M 44789c40444 < productive/UAY --- > productive/UY 44793c40448 < profanation/SM --- > profanation/MS 44798,44799c40453,40454 < profession/MS < professional/SMY --- > profession/SM > professional/MYS 44805c40460 < professorship/MS --- > professorship/SM 44807c40462 < proficiency/SM --- > proficiency/M 44809d40463 < profiler/SM 44814c40468 < profiteer/MDSG --- > profiteer/MDGS 44816c40470 < profiterole/MS --- > profiterole/SM 44820,44821c40474 < proforma/S < profound/PRYT --- > profound/RYTP 44828a40482 > progestin/S 44833c40487 < prognosticate/XDSGN --- > prognosticate/XGNDS 44836,44838c40490,40493 < program/ZGMDRS < programer/M < programmable/SM --- > program/CAS > programed > programing > programmable/MS 44840,44841c40495 < programmatically < programmed/CA --- > programmed/AC 44843c40497 < programming/MS --- > programming/SM 44845,44846c40499,40500 < progression/SM < progressive/SMYP --- > progression/MS > progressive/PMYS 44853,44854c40507 < project/GVMDS < projected/A --- > project/GMDS 44857,44858c40510 < projectionist/MS < projective/Y --- > projectionist/SM 44859a40512 > prokaryotic 44869d40521 < prologize 44871d40522 < prologuize 44874c40525 < promenade/MZGDRS --- > promenade/MGDS 44876c40527 < prominence/MS --- > prominence/M 44885c40536 < promote/BDRZG --- > promote/DRZG 44894c40545 < promulgate/XGNDS --- > promulgate/GNDS 44898c40549 < pronator/MS --- > pronator/SM 44906,44907c40557 < pronounced/Y < pronouncement/MS --- > pronouncement/SM 44911c40561 < proofread/SZGR --- > proofread/SRZG 44915,44916c40565,40566 < propagandist/SM < propagandize/DSG --- > propagandist/MS > propagandize/GDS 44920d40569 < propane/M 44924d40572 < propellent/MS 44947c40595 < proportional/EY --- > proportional/YS 44949d40596 < proportionals 44956c40603 < proprietor/MS --- > proprietor/SM 44958c40605 < proprietorship/MS --- > proprietorship/SM 44961d40607 < proprioceptive 44965d40610 < propylene 44972a40618 > proscribe/DG 44974,44976c40620,40621 < proscriptive < prose/MS < prosecute/DSGNBX --- > prose/M > prosecute/DSXGN 44978c40623 < prosecutor/SM --- > prosecutor/MS 44981c40626 < proselytize/ZGDRS --- > proselytize/DRSZG 44983d40627 < prosodic 44987c40631 < prospector/MS --- > prospector/SM 45002c40646 < protagonist/MS --- > protagonist/SM 45004d40647 < protease 45010c40653 < protective/YP --- > protective/PY 45013c40656 < protectorate/SM --- > protectorate/MS 45018,45019c40661 < protestantism < protestation/SM --- > protestation/MS 45021d40662 < protists 45026c40667 < prototype/MGDS --- > prototype/MGS 45031d40671 < protozoon/M 45036d40675 < protrusive 45038a40678,40679 > protégé/MS > protégée/S 45040c40681 < prov/ZNRB --- > prov/NB 45042d40682 < provable/EU 45051c40691 < provide/BDRSZG --- > provide/DRSZG 45063c40703 < provocative/YP --- > provocative/PY 45076c40716 < proximate/Y --- > proximate 45090d40729 < prussic 45092c40731 < pryer/MS --- > précis/MDG 45095d40733 < psalter 45103,45104d40740 < pseudopod < pseudopodia 45124a40761 > psychoanalyses 45126c40763 < psychoanalyst/MS --- > psychoanalyst/SM 45129c40766 < psychoanalyze/GDS --- > psychoanalyze/DSG 45131c40768 < psychodrama/SM --- > psychodrama/MS 45135,45136d40771 < psycholinguistic/S < psycholinguists 45138c40773 < psychologist/SM --- > psychologist/MS 45147a40783 > psychopharmacology 45150d40785 < psychosocial 45160,45161c40795 < pterodactyl/SM < pterosaurs --- > pterodactyl/MS 45173c40807 < publication/AMS --- > publication/ASM 45177d40810 < publicized/U 45180c40813 < publishable/U --- > publishable 45211c40844 < pugnacious/PY --- > pugnacious/YP 45214d40846 < puissant 45227d40858 < pullup/SM 45248c40879 < punch/MDRSBZG --- > punch/MDRSZG 45250d40880 < punchbowl 45256c40886 < punctilious/YP --- > punctilious/PY 45260c40890 < punctuate/XGNDS --- > punctuate/GNDS 45262d40891 < punctuational 45272c40901 < punishment/SM --- > punishment/MS 45275d40903 < punkin/SM 45289d40916 < pupillage 45312c40939 < purify/DRSZGN --- > purify/NDRSZG 45320c40947 < purity/SM --- > purity/M 45328,45329c40955,40956 < purpose/DSMYGV < purposeful/PY --- > purpose/DSMYG > purposeful/YP 45331c40958 < purposeless/YP --- > purposeless/PY 45347c40974 < push/BZGMDRS --- > push/ZGMDRS 45367c40994 < putative/Y --- > putative 45376d41002 < putridity 45389d41014 < puzzling/Y 45390a41016,41017 > pwn/SGD > pyelonephritis 45400d41026 < pyridine 45404,45405d41029 < pyrolysis < pyrolyze 45407c41031 < pyromaniac/MS --- > pyromaniac/SM 45411d41034 < pyroxene/S 45422d41044 < quackish 45424c41046 < quadrangle/MS --- > quadrangle/SM 45429,45430c41051 < quadratically < quadrature/S --- > quadrature 45432c41053 < quadrennium/SM --- > quadrennium/MS 45434,45435c41055,41056 < quadrilateral/MS < quadrille/MNSX --- > quadrilateral/SM > quadrille/XMNS 45437d41057 < quadripartite 45441d41060 < quadrophonic 45445,45446c41064,41065 < quadruplet/SM < quadruplicate/DSMGN --- > quadruplet/MS > quadruplicate/MGNDS 45448,45449d41066 < quadruply < quadrupole 45452d41068 < quahaug/SM 45458c41074 < quaky/TR --- > quaky 45462c41078 < qualify/EXGNDS --- > qualify/EGXNDS 45470c41086 < quantifiable/U --- > quantifiable 45472d41087 < quantified/U 45477,45478d41091 < quantization < quantize/D 45487d41099 < quarrymen 45490c41102 < quarterback/SGMD --- > quarterback/GMDS 45498,45500d41109 < quartette/MS < quartic/S < quartile/S 45503d41111 < quartzite 45507,45509d41114 < quasilinear < quaternary < quaternion/S 45527d41131 < quern 45531c41135,41136 < ques/S --- > ques > quesadilla/MS 45535c41140 < question/BJSMDRZG --- > question/SMDRZGBJ 45541,45542c41146,41148 < questionnaire/MS < queue/MDSG --- > questionnaire/SM > queue's > queue/CDSG 45556d41161 < quiesce/D 45572d41176 < quincentenary 45576d41179 < quinquennial 45579c41182 < quintessence/MS --- > quintessence/SM 45582,45584d41184 < quintette/MS < quintic < quintillion 45586c41186 < quintuplet/SM --- > quintuplet/MS 45589d41188 < quipper 45592c41191,41192 < quire/IASM --- > quire's > quire/IAS 45605d41204 < quivering/Y 45614a41214 > quo/H 45620c41220 < quot/RB --- > quot/B 45624,45625c41224,41225 < quote/UDSGM < quoth --- > quote's > quote/UDSG 45642c41242 < racecourse/MS --- > racecourse/SM 45659c41259 < racketeer/GSMD --- > racketeer/SMDG 45662c41262 < racoon/MS --- > racoon 45664c41264 < racquetball/MS --- > racquetball/SM 45668,45670c41268 < radarscope/MS < radder < raddest --- > radarscope/SM 45673d41270 < radian/S 45676c41273 < radiate/DSGNVX --- > radiate/DSGNX 45678d41274 < radiative/Y 45689d41284 < radioastronomical 45691d41285 < radiogalaxy/S 45695,45696c41289 < radioisotope/SM < radiological --- > radioisotope/MS 45701c41294 < radiometer/SM --- > radiometer/MS 45704d41296 < radionuclide 45707c41299,41300 < radiosonde/MS --- > radiosonde/SM > radiosurgery 45711,45712c41304,41305 < radiotelephone/SM < radiotherapist/SM --- > radiotelephone/MS > radiotherapist/MS 45717d41309 < radix 45746c41338,41339 < rail/CGDSM --- > rail's > rail/CGDS 45759d41351 < raincloud/S 45763,45764d41354 < rainforest/S < rainless 45769d41358 < rainswept 45775d41363 < raj 45789d41376 < ramequin/SM 45792c41379 < ramify/DSGXN --- > ramify/DSXNG 45796c41383 < ramp/MDS --- > ramp/GMS 45814c41401 < rand/MS --- > rand/M 45823c41410,41411 < range/CGDSM --- > range's > range/CGDS 45860c41448 < rapscallion/SM --- > rapscallion/MS 45868c41456 < rarefaction/SM --- > rarefaction/M 45876c41464 < rasp/GMDRS --- > rasp/GMDS 45881c41469 < rasterize/SGDR --- > rasterize/DRSG 45886,45887c41474 < rate/BJXMZGNDRS < rateable --- > rate/JXMZGNDRS 45892c41479 < rathskeller/MS --- > rathskeller/SM 45895c41482 < ratify/DRSZGNX --- > ratify/NDRSZG 45904c41491 < rationalist/MS --- > rationalist/SM 45906c41493 < rationality/SM --- > rationality/M 45908c41495 < rationalize/GDS --- > rationalize/DSG 45910d41496 < ratlin/SM 45917c41503 < rattlebrain/MDS --- > rattlebrain/SMD 45919c41505 < rattlesnake/MS --- > rattlesnake/SM 45921c41507 < rattly/RT --- > rattly 45933c41519,41520 < ravel/UDSGM --- > ravel's > ravel/UDSG 45938c41525 < raving/MY --- > raving/M 45951c41538 < razor/MSG --- > razor/MS 45953,45954d41539 < razorbills < razorblades 45956d41540 < razzamatazz 45963d41546 < reached/U 45965d41547 < reacquisition 45968a41551 > reactivity/M 45987d41569 < realizable/U 46008d41589 < reasoned/U 46011c41592 < reasonless --- > reassemble/DSG 46022d41602 < rebook 46031d41610 < recalibrate/GN 46041d41619 < received/U 46045,46046c41623 < recension < recent/YTP --- > recent/RYTP 46048c41625 < receptacle/MS --- > receptacle/SM 46050,46051c41627,41628 < receptionist/MS < receptive/YP --- > receptionist/SM > receptive/PY 46056c41633 < recessional/MS --- > recessional/SM 46059d41635 < recharge/R 46060a41637 > recherché 46065,46066c41642,41643 < reciprocal/MYS < reciprocate/DSGN --- > reciprocal/SMY > reciprocate/GNDS 46070,46071c41647,41648 < recitalist/SM < recitative/SM --- > recitalist/MS > recitative/MS 46075c41652 < reckon/SJDRG --- > reckon/SJDG 46077,46078c41654 < reclaim/BR < reclamation/MS --- > reclamation/M 46082d41657 < recognition/S 46084,46086c41659,41660 < recognizably/U < recognizance/S < recognize/BDRSZG --- > recognizably > recognize/DRSGB 46088d41661 < recombinant 46090d41662 < recommended/U 46094,46095c41666 < reconcile/GLDSB < reconciled/U --- > reconcile/GDSB 46098,46099c41669,41671 < reconnaissance/SM < reconnection --- > reconfiguration > reconfigure/D > reconnaissance/MS 46103,46106d41674 < recontribute < reconversion < recopy/DSG < record/RBJZ 46108,46111c41676,41677 < recorder/M < recording/M < recordists < recount/SGMD --- > recorder/MS > recording/MS 46113d41678 < recouple 46119c41684 < recriminate/GNXDS --- > recriminate/DSGNX 46128d41692 < recrystallization 46135c41699 < rectify/NDRSZGX --- > rectify/XNDRSZG 46143c41707 < recuperate/DSGNV --- > recuperate/GNVDS 46147a41712 > recurrent/Y 46149,46153c41714,41716 < recurse/DGSV < recursion/S < recuse/DGS < recyclable/MS < recycle/BZ --- > recurse/XNV > recuse/DSG > recyclable/SM 46169d41731 < redeclaration 46171d41732 < redeemed/U 46173d41733 < redelivery 46176d41735 < redeposition 46180,46182c41739 < redisplay < redistribute/V < redistrict/DG --- > redistrict/GD 46194d41750 < redshift/S 46197d41752 < reduced/U 46199d41753 < reducibility 46203,46204c41757 < reductionism < reductionist/S --- > reductionist 46215c41768,41769 < reel/UGDSM --- > reel's > reel/UGDS 46219d41772 < refactor/SMDG 46225d41777 < refereed/U 46227,46230c41779,41780 < reference/MGDRS < referenced/U < referencing/U < referendum/SM --- > reference/MGDS > referendum/MS 46232c41782 < referential/Y --- > referential 46239c41789,41790 < refill/BJM --- > refile/DSG > refill/BM 46241c41792 < refinement/MS --- > refinement/SM 46248,46253c41799,41800 < reflectance < reflected/U < reflection/SM < reflectional < reflective/PY < reflectivity --- > reflection/MS > reflective/Y 46255,46256c41802 < reflexive/PSMY < reflexivity --- > reflexive/SMY 46258d41803 < reflooring 46260c41805 < reform/MB --- > reform/MZ 46266c41811 < refortify/DSG --- > refortify/GDS 46268c41813 < refractors --- > refraction/M 46271,46272c41816 < refresh/ZGBLDRS < refreshed/U --- > refresh/ZGLDRS 46279d41822 < refrigerated/U 46289d41831 < refuseniks 46298d41839 < regarded/U 46305c41846,41847 < regenerate/VX --- > regenerate/V > regex/M 46319d41860 < registrable 46346c41887 < regurgitate/GNDS --- > regurgitate/DSGN 46351c41892 < rehabilitate/DSGNV --- > rehabilitate/GNVDS 46359d41899 < rehydrate 46361c41901 < reimburse/BLDSG --- > reimburse/BDSGL 46363d41902 < reimplementation 46366,46368c41905,41907 < reinforce/GDSL < reinforcement/MS < reinitialization --- > reinforce/LGDS > reinforcement/SM > reinitialize 46372d41910 < reinvestigation 46379c41917 < rejuvenate/DSXGN --- > rejuvenate/DSGN 46381d41918 < rejuvenatory 46387,46388c41924,41925 < relational/Y < relationship/SM --- > relational > relationship/MS 46393d41929 < relativistically 46395d41930 < relator 46400d41934 < relaxing/Y 46402c41936 < releasable/U --- > release/B 46417d41950 < relict 46426,46427c41959 < relink/GD < relinquish/GLDS --- > relinquish/LDSG 46430a41963,41964 > relist/SGD > relocate/B 46436c41970 < remainder/MDSG --- > remainder/GMDS 46447c41981 < remembrance/SM --- > remembrance/MS 46450c41984 < reminiscence/SM --- > reminiscence/MS 46462,46463c41996,41997 < remonstrant/MS < remonstrate/XGNDS --- > remonstrant/SM > remonstrate/DSG 46470d42003 < remould/SDG 46472c42005 < remunerate/DSGNVX --- > remunerate/GNVXDS 46477d42009 < renationalisation 46490,46491c42022 < renormalization < renounce/DSLG --- > renounce/LDSG 46501a42033 > reorg/DSG 46504,46505c42036,42037 < repairable/U < repairer/MS --- > repair/BZR > repairer/M 46508d42039 < repaper 46510c42041 < reparation/SM --- > reparation/MS 46513c42044 < repatriate/DSXMGN --- > repatriate/XDSMGN 46516d42046 < repeatability/U 46523d42052 < repellant/SM 46526c42055 < repelling/Y --- > repelling 46529c42058 < repentant/UY --- > repentant/Y 46534c42063 < repetitious/PY --- > repetitious/YP 46538c42067 < rephotograph/GD --- > rephotograph/DG 46541c42070 < replenish/DSGL --- > replenish/LGDS 46547,46548c42076 < replicable < replicate/DSG --- > replicate/DSGNX 46551,46553d42078 < replug < reply/XRN < report/MRBZ 46559c42084 < reprehend/DSG --- > reprehend/DGS 46564,46566c42089,42091 < represent/DGSB < representable/U < representative/PSM --- > represent/GDS > representational > representative/MS 46568,46569c42093,42094 < repression/SM < repressive/YP --- > repression/MS > repressive/PY 46574,46575c42099,42100 < reproach/BGMDS < reproachful/PY --- > reproach/GMDSB > reproachful/Y 46577,46581c42102 < reproducibility < reproducible/U < reproducibly < reprogram/S < reprogrammable --- > reproductive 46593,46594c42114,42115 < repulsion/SM < repulsive/PY --- > repulsion/M > repulsive/YP 46603d42123 < requested/U 46606,46607c42126,42127 < requirement/SM < requisite/MNXS --- > requirement/MS > requisite/XMNS 46615,46617d42134 < reredos < reregistration < rerouteing 46619d42135 < res/C 46626,46627c42142 < reselect < reselection --- > resell/SG 46629c42144 < resend/G --- > resend 46633c42148 < resentment/SM --- > resentment/MS 46635c42150 < reservation/SM --- > reservation/MS 46642d42156 < reshow/G 46649d42162 < residuary 46652,46653c42165 < resignal < resignation/MS --- > resignation/SM 46659,46661c42171,42172 < resiny < resist/SMDRZGV < resistance/MS --- > resist/SMDRZG > resistance/SM 46664,46665d42174 < resistive/Y < resistivity 46667a42177 > resit/S 46671c42181 < resolute/XPYTNR --- > resolute/PY 46673,46675c42183 < resolvability < resolvable/U < resolve/M --- > resolve/RBM 46677d42184 < resolvent 46688d42194 < respecify 46703,46704c42209,42210 < respond/SZGDR < respondent/MS --- > respond/SGD > respondent/SM 46709c42215 < responsive/UPY --- > responsive/UYP 46712d42217 < restart/B 46715d42219 < restauranteur/SM 46724c42228 < restless/YP --- > restless/PY 46726,46727c42230,42231 < restoration/MS < restorative/MS --- > restoration/SM > restorative/SM 46734c42238 < restrictive/PY --- > restrictive/YP 46738,46739c42242 < restructuring/MS < resubstitute --- > restructuring/SM 46743c42246 < resumption/SM --- > resumption/MS 46747,46748c42250,42251 < resurrect/SGD < resurrection/SM --- > resurrect/GSD > resurrection/MS 46752d42254 < resynchronization 46766,46767c42268,42269 < retention/MS < retentive/PY --- > retention/M > retentive/YP 46769d42270 < retentivity 46774d42274 < reticular 46776,46778c42276 < reticulation/SM < reticule/S < reticulum --- > reticulation/MS 46781d42278 < retinitis 46792c42289 < retrenchment/SM --- > retrenchment/MS 46805c42302 < retrogress/DSGV --- > retrogress/GVDS 46807,46808c42304,42305 < retrorocket/SM < retrospect/GVSMD --- > retrorocket/MS > retrospect/MDSGV 46813,46814c42310 < retuning < returnable/MS --- > returnable/SM 46816c42312 < rev/VM --- > rev/ZVM 46818,46819c42314 < revanchist < reveal/BGJSD --- > reveal/GJSD 46824,46825c42319 < revelation/MS < revelatory --- > revelation/SM 46830,46831c42324,42325 < reverberant < reverberate/DSXGN --- > reverb > reverberate/DSGNX 46841c42335 < reverse/YR --- > reverse/Y 46847d42340 < revery/SM 46852,46856c42345,42346 < revise/BXRZN < revised/U < reviser/M < revision/M < revisionary --- > reviser/MS > revision/SM 46858c42348 < revisionist/MS --- > revisionist/SM 46862c42352 < revive/DRSG --- > revive/DSG 46865c42355 < revoke/DRSBZG --- > revoke/DSG 46886c42376 < rewrite/M --- > rewrite/MGS 46889c42379 < rhapsodize/DSG --- > rhapsodize/GDS 46893,46894d42382 < rheological < rheology 46899c42387 < rhetorician/MS --- > rhetorician/SM 46906c42394 < rheumatologist/SM --- > rheumatologist/MS 46908c42396 < rheumy/TR --- > rheumy 46912a42401,42402 > rhinoplasty > rhinovirus/MS 46935d42424 < ribcage 46937,46938d42425 < ribonucleic < ribosomes 46947d42433 < ricksha/MS 46951c42437 < rid/SR --- > rid/S 46956c42442 < ride/CZGSM --- > ride/MZGRS 46962c42448 < ridgy/RT --- > ridgy 46964c42450 < ridiculous/PY --- > ridiculous/YP 46978c42464 < rigamarole/MS --- > rigamarole/SM 46997,46998c42483 < rigidify/S < rigidity/SM --- > rigidity/M 47015d42499 < ringing/Y 47019c42503 < ringmaster/SM --- > ringmaster/MS 47021c42505 < ringtone/MS --- > ringtone/SM 47037,47038c42521 < ripost/SGMD < riposte/MS --- > riposte/MGDS 47043c42526 < ripply/TR --- > ripply 47045d42527 < ripstop 47058a42541 > risqué 47080d42562 < riveting/Y 47092c42574 < roadrunner/MS --- > roadrunner/SM 47095d42576 < roadsigns 47097d42577 < roadsweepers 47116c42596,42597 < robe/EGDSM --- > robe's > robe/EGDS 47117a42599 > robocall/SGD 47143c42625,42626 < rogue/KSM --- > rogue's > rogue/KS 47153d42635 < rolled/A 47168,47169c42650,42651 < romanticist/MS < romanticize/GDS --- > romanticist/SM > romanticize/DSG 47174d42655 < rontgen/S 47178d42658 < roofgarden 47196c42676 < rootkit/MS --- > rootkit/SM 47199d42678 < rootstock 47202d42680 < ropey 47216c42694 < roster/SMG --- > roster/SM 47222d42699 < rotatable 47224c42701 < rotate/DSGNBX --- > rotate/DSGNX 47226,47227c42703 < rotational/Y < rotators --- > rotational 47232c42708 < rotogravure/SM --- > rotogravure/MS 47251,47252c42727,42728 < roughhouse/DSMG < roughneck/MDSG --- > roughhouse/MGDS > roughneck/GMDS 47261c42737 < roundhouse/MS --- > roundhouse/SM 47264d42739 < roundtable/SM 47271c42746,42748 < route/ADSGM --- > route's > route/ADSG > routeing 47275a42753 > roué/MS 47302c42780 < rubberneck/SZGMDR --- > rubberneck/MDRSZG 47304c42782 < rubbery/TR --- > rubbery 47321c42799 < ruction/S --- > ructions 47337d42814 < ruffly/TR 47342a42820 > rugrat/SM 47344c42822 < ruination/SM --- > ruination/M 47347d42824 < rulebook/S 47364c42841 < rumormonger/MS --- > rumormonger/SM 47367d42843 < rumply/RT 47378d42853 < runnable 47391c42866 < rural/Y --- > rural 47395c42870 < rushy/RT --- > rushy 47413c42888 < ruthless/PY --- > ruthless/YP 47420,47421c42895 < sabbath < sabbatical/MS --- > sabbatical/SM 47430d42903 < saccharides 47441d42913 < sacral 47452c42924 < sacroiliac/SM --- > sacroiliac/MS 47460c42932,42933 < saddle/UDSGM --- > saddle's > saddle/UDSG 47472c42945 < sadomasochist/SM --- > sadomasochist/MS 47475,47477c42948,42950 < safe/UYTPRM < safeguard/GSMD < safekeeping/SM --- > safe/MYTPRS > safeguard/SMDG > safekeeping/M 47479d42951 < safes 47512c42984 < sake/MS --- > sake/M 47516c42988 < salacious/YP --- > salacious/PY 47524c42996 < saleability --- > saleable/U 47526c42998 < salesclerk/MS --- > salesclerk/SM 47533c43005 < salesperson/SM --- > salesperson/MS 47537d43008 < salicylic 47544c43015 < salivate/XGNDS --- > salivate/GNDS 47555c43026,43027 < salt/CTGDSM --- > salt's > salt/CTGDS 47563c43035 < saltshaker/MS --- > saltshaker/SM 47567d43038 < salubrity 47570c43041 < salutatorian/SM --- > salutatorian/MS 47593c43064 < sanctify/NGDS --- > sanctify/GDSN 47606a43078 > sandbagger/SM 47610c43082 < sandblast/MDRSZG --- > sandblast/ZGMDRS 47613c43085 < sandcastle/SM --- > sandcastle/MS 47621c43093 < sandpaper/MDGS --- > sandpaper/GMDS 47624c43096 < sandstone/SM --- > sandstone/M 47639c43111 < sanitize/ZGDRS --- > sanitize/GDS 47656c43128 < saprophyte/MS --- > saprophyte/SM 47661d43132 < sarape/SM 47671d43141 < saree/MS 47677c43147 < sarsaparilla/SM --- > sarsaparilla/MS 47698c43168 < satin/MS --- > satin/M 47710d43179 < satisfiable/U 47720c43189 < saturated/UC --- > saturated/U 47722d43190 < saturnalia 47742d43209 < sauterne/SM 47743a43211 > sauté/MDSG 47748,47749d43215 < savannah/M < savannahs 47754d43219 < saveloy 47772d43236 < sawtooth 47777,47778c43241,43243 < saxophonist/MS < say/USGM --- > saxophonist/SM > say's > say/USG 47793,47795d43257 < scagging < scalability < scalable 47799,47800c43261,43262 < scale/ACSDGM < scaled/U --- > scale's > scale/CGDS 47806c43268 < scallywag/S --- > scallywag/MS 47812a43275 > scammer/S 47817c43280 < scan/ASM --- > scan/MS 47819c43282 < scandalize/GDS --- > scandalize/DSG 47823c43286 < scanned/A --- > scanned 47825c43288 < scanning/A --- > scanning 47834,47836c43297,43298 < scape < scapegoat/SMDG < scapegrace/SM --- > scapegoat/SGMD > scapegrace/MS 47847,47848c43309 < scaremonger/MSG < scarey --- > scaremonger/SMG 47851c43312 < scarify/DSGN --- > scarify/NDSG 47863,47864d43323 < scathe/DG < scathed/U 47869,47870c43328,43329 < scatter/ZGJSMDR < scatterbrain/MDS --- > scatter/GJSMD > scatterbrain/SMD 47871a43331 > scattershot 47886,47887c43346 < scepter/MDS < sceptically --- > scepter/MS 47890c43349,43350 < schedule/ADSGM --- > schedule's > schedule/ADSG 47908,47909c43368 < schizophrenic/MS < schizophrenically --- > schizophrenic/SM 47914c43373 < schlocky/RT --- > schlocky 47916,47917c43375 < schmaltzy/RT < schmalz/M --- > schmaltzy/TR 47923c43381 < schnaps/M --- > schnaps 47939c43397 < schoolchildren --- > schoolchildren/M 47942,47943c43400 < schoolfellow/MS < schoolfriend --- > schoolfellow/SM 47945c43402 < schoolhouse/MS --- > schoolhouse/SM 47950c43407 < schoolmaster/SM --- > schoolmaster/MS 47954c43411 < schoolteacher/SM --- > schoolteacher/MS 47958,47959c43415 < schrod/SM < schtick --- > schrod/S 47961c43417 < schussboomer/SM --- > schussboomer/MS 47972c43428 < scintillate/XDSGN --- > scintillate/DSGN 47974d43429 < scintillator/S 47983c43438 < scold/MDRSGJ --- > scold/MDSGJ 47986d43440 < scollop/SMDG 47989c43443 < scoop/MDRSG --- > scoop/MDSG 48017c43471 < scoutmaster/SM --- > scoutmaster/MS 48026c43480,43481 < scramble/UGDSM --- > scramble's > scramble/UGDS 48041c43496 < scratch/GJMDS --- > scratch/GMDS 48047c43502 < scratchy/RPT --- > scratchy/PRT 48049c43504 < scrawly/TR --- > scrawly 48062,48064c43517,43519 < screensaver/MS < screenshot/MS < screenwriter/MS --- > screensaver/SM > screenshot/SM > screenwriter/SM 48066c43521,43522 < screw/UDSGM --- > screw's > screw/UDSG 48068c43524 < screwdriver/SM --- > screwdriver/MS 48073c43529 < scribble/JMZGDRS --- > scribble/MZGDRS 48075c43531,43532 < scribe/IKCGSDM --- > scribe's > scribe/CKIS 48083d43539 < scriptorium 48086,48087c43542 < scriptwriter/MS < scriptwriting --- > scriptwriter/SM 48093,48095c43548 < scrogged < scrogging < scroll/GSBMD --- > scroll/GSMD 48115c43568 < scrummage/GS --- > scrummage/S 48126c43579 < scrupulous/UYP --- > scrupulous/UPY 48129,48130c43582,43583 < scrutinize/DSG < scrutiny/SM --- > scrutinize/GDS > scrutiny/M 48153c43606 < scurfy/TR --- > scurfy 48155c43608 < scurrilous/YP --- > scurrilous/PY 48157c43610 < scurry/GDSMJ --- > scurry/GDSM 48179c43632,43633 < seal/AUSDGM --- > seal's > seal/AUSDG 48184d43637 < seamail 48187a43641 > seamount/MS 48195c43649 < searchable --- > searchable/U 48198c43652 < searchlight/SM --- > searchlight/MS 48213,48214c43667,43668 < seat/UGDSM < seated/A --- > seat's > seat/UGDS 48223c43677 < seaworthy/TRP --- > seaworthy/P 48232c43686 < secession/MS --- > secession/M 48244c43698 < secret/STGVMDRY --- > secret/SGVMDY 48251c43705 < secretive/YP --- > secretive/PY 48264,48265d43717 < sectoral < sectored 48281,48282c43733,43734 < sedge/MS < sedgy/RT --- > sedge/M > sedgy 48291c43743 < seductive/PY --- > seductive/YP 48296c43748,43749 < seed/AGDSM --- > seed's > seed/AGDS 48313c43766 < seen --- > seen/U 48322d43774 < segmental 48328,48329c43780,43781 < segregationist/SM < segue/MDS --- > segregationist/MS > segue/MGDS 48338d43789 < seismogram 48346c43797 < seismologist/SM --- > seismologist/MS 48348d43798 < seismometer/S 48352,48354c43802 < select/CSGDV < selectable < selected/UA --- > select/CSGVD 48365,48367c43813,43814 < selenology < self/MG < selfie/S --- > self/GM > selfie/SM 48372c43819 < selfless/YP --- > selfless/PY 48375c43822 < sell/AZGRSM --- > sell/ZGMRS 48376a43824 > selloff/MS 48385c43833 < semanticist/SM --- > semanticist/MS 48400c43848 < semiconductor/SM --- > semiconductor/MS 48405c43853 < semifinalist/SM --- > semifinalist/MS 48414d43861 < semioticians 48420c43867 < semiprofessional/MS --- > semiprofessional/SM 48427c43874 < semitrailer/SM --- > semitrailer/MS 48434d43880 < sempiternal 48456d43901 < sensationalistic 48463c43908 < sensible/PRT --- > sensible/P 48466c43911 < sensitive/SPMY --- > sensitive/SMYP 48472d43916 < sensitizers 48475,48476c43919,43920 < sensual/FY < sensualist/MS --- > sensual/Y > sensualist/SM 48482d43925 < sentential 48499c43942 < separate/PXMYGNVDS --- > separate/XMYGNVDSP 48507a43951 > septal 48509d43952 < septette/SM 48521d43963 < sequent/F 48523,48524c43965,43966 < sequester/GSD < sequestrate/XDSGN --- > sequester/SDG > sequestrate/XGNDS 48526a43969 > sequinned 48533,48534c43976 < seraphically < seraphim/M --- > seraphim 48537,48538c43979,43980 < serenade/MGDRS < serendipitous/Y --- > serenade/MGDS > serendipitous 48548c43990 < serialization/MS --- > serialization/SM 48551c43993 < serif/MDS --- > serif/MS 48569c44011,44012 < serve/FACGDSM --- > serve's/AF > serve/FACGDS 48574,48575c44017,44018 < serviceable/U < serviced/U --- > serviceable > serviced 48582c44025 < servile/Y --- > servile 48584c44027,44028 < serving/MS --- > serving's > servings 48592d44035 < sessile 48599d44041 < settable/A 48603c44045,44046 < settle/AUGDSM --- > settle's > settle/AUGDS 48609,48610d44051 < sevenfold < sevenpence 48630c44071 < sewn --- > sewn/A 48638c44079 < sexologist/MS --- > sexologist/SM 48643c44084 < sextette/MS --- > sexting 48647c44088 < sexuality/SM --- > sexuality/M 48655c44096,44097 < shackle/UGDSM --- > shackle's > shackle/UGDS 48658,48659d44099 < shaded/U < shadeless 48665d44104 < shadowless 48676,48680c44115 < shaikh < shaikhs < shakable/U < shake/MZGRSB < shakeable/U --- > shake/MZGRS 48706c44141 < shameful/YP --- > shameful/PY 48710a44146 > shammies 48712d44147 < shammy/SM 48723c44158,44159 < shape/AGDSM --- > shape's > shape/AGDS 48725c44161 < shapeless/PY --- > shapeless/YP 48729d44164 < sharable/U 48737,48738c44172 < shared/U < shareholder/MS --- > shareholder/SM 48741c44175 < shareware/MS --- > shareware/M 48758d44191 < shattering/Y 48776c44209 < sheave/SM --- > sheave/DSMG 48786c44219 < sheepherder/SM --- > sheepherder/MS 48792c44225 < sheet/MDSG --- > sheet/MSG 48796a44230 > sheikh/M 48797a44232 > sheikhs 48803,48804c44238,44239 < shellack/JGMDS < shellacking/M --- > shellacked > shellacking/MS 48810c44245 < shemale/MS! --- > shemale/MS 48814d44248 < sherbert/SM 48826,48827c44260 < shielded/U < shift/ZGMDRS --- > shift/GMDS 48832a44266 > shiitake/S 48834,48835d44267 < shillalah/M < shillalahs 48858c44290,44291 < ship/ALSM --- > ship's > ship/ALS 48860,48861c44293 < shipborne < shipbuilder/MS --- > shipbuilder/SM 48868d44299 < shippable 48885c44316 < shirtsleeve/MS --- > shirtsleeve/SM 48887c44318 < shirtwaist/SM --- > shirtwaist/MS 48889c44320 < shit/MS! --- > shit/SM! 48892c44323,44325 < shitload/MS! --- > shitload's > shitload/! > shitloads 48895c44328 < shitty/TR! --- > shitty/RT! 48898d44330 < shivering/Y 48900,48904d44331 < shlemiel/MS < shlep/MS < shlepp/MDSG < shlock/M < shmaltz/M 48916d44342 < shoebox 48920d44345 < shoeless 48923c44348 < shoestring/MS --- > shoestring/SM 48940d44364 < shopkeeping 48952d44375 < shoreward 48958c44381 < shortchange/GDS --- > shortchange/DSG 48965c44388 < shorthand/MDS --- > shorthand/MD 48969c44392 < shortlist/DSG --- > shortlist/DGS 48987c44410 < shovel/MDRSG --- > shovel/MDSG 48996c44419 < showery/TR --- > showery 49011c44434 < showstopper/SM --- > showstopper/MS 49026c44449 < shriek/MDRSZG --- > shriek/MDSG 49036d44458 < shrinking/Y 49069c44491 < shuttlecock/MDGS --- > shuttlecock/GMDS 49075,49076d44496 < sibilance < sibilancy 49081a44502,44503 > sicced > siccing 49095c44517,44518 < side/AGDSM --- > side's > side/AGDS 49097d44519 < sideband/S 49121d44542 < sidewards 49123,49124c44544 < sidewinder/MS < sidewise --- > sidewinder/SM 49138d44557 < sighted/P 49140c44559 < sightless/Y --- > sightless 49146,49147c44565,44566 < sigmoid < sign/AFCGDSM --- > sign's/C > sign/AFCGDS 49163d44581 < significances 49166,49167c44584,44585 < signify/XNDRSG < signing/MCS --- > signify/XDSNG > signing/CSM 49184d44601 < silicious 49199d44615 < siltstone 49207c44623,44624 < silvery/RT --- > silvery > sim/S 49223,49224c44640,44641 < simplex/S < simplicity/SM --- > simplex > simplicity/M 49226,49227c44643 < simplified/U < simplify/XDRSNG --- > simplify/DSXNG 49247d44662 < sinecurist 49267,49269c44682 < singularization < sinister/Y < sinistral --- > sinister 49283,49284c44696 < sinusoid < sinusoidal/Y --- > sinusoidal 49298d44709 < sirup/SM 49307c44718 < sit/ASG --- > sit/S 49311,49312c44722,44723 < site/MJDS < sitemap/MS --- > site/MGDS > sitemap/SM 49318,49319d44728 < situationist < situp/SM 49323d44731 < sixpenny 49328c44736 < sixth/MY --- > sixth/M 49333c44741,44743 < size/AMGBDRS --- > size's > size/AGBDRS > sizeable 49338c44748 < skateboard/ZGSMDR --- > skateboard/MDRSZG 49351d44760 < skerries 49359c44768 < skew/MDRZGPS --- > skew/MDRZGS 49372,49373c44781,44783 < skilful/Y < skill/CSDM --- > skilfully > skill's > skill/CSD 49394d44803 < skinner/S 49460c44869 < slang/MG --- > slang/M 49467c44876 < slaphappy/RT --- > slaphappy 49479c44888 < slaughter/MDRJZGS --- > slaughter/MDRZGS 49481c44890 < slaughterhouse/SM --- > slaughterhouse/MS 49503c44912 < sledgehammer/SMDG --- > sledgehammer/GSMD 49520c44929 < sleety/RT --- > sleety 49526c44935 < slender/PRYT --- > slender/PRT 49534d44942 < sliced/U 49544d44951 < slighting/Y 49546d44952 < slily 49548c44954 < slime/SM --- > slime/M 49574c44980 < slipstream/MS --- > slipstream/SM 49579d44984 < slitted 49606c45011 < slothful/PY --- > slothful/YP 49618c45023 < slovenly/TPR --- > slovenly/PTR 49622d45026 < slowish 49633c45037 < sluggish/YP --- > sluggish/PY 49639a45044 > slumdog/SM 49659a45065,45066 > slyer > slyest 49669d45075 < smalltalk 49674c45080 < smartphone/MS --- > smartphone/SM 49675a45082 > smartwatch/MS 49684,49685c45091 < smegma < smell/SMDGB --- > smell/SMDG 49691,49692d45096 < smidgeon/SM < smidgin/MS 49694c45098 < smile/DRSMG --- > smile/DSMG 49696c45100 < smiling/UY --- > smiling/Y 49713c45117 < smokescreen/MS --- > smokescreen/SM 49723c45127 < smoothie/MS --- > smoothie/M 49726c45130 < smoothy --- > smoothy/SM 49730c45134 < smoulder/GSMD --- > smoulder/GMDS 49743a45148 > smörgåsbord/MS 49756c45161,45162 < snap/USM --- > snap's > snap/US 49772c45178,45179 < snarl/USDGM --- > snarl's > snarl/USDG 49843c45250,45251 < snowboard/MDRSZG --- > snowblower/MS > snowboard/ZGMDRS 49857,49858d45264 < snowplough < snowploughs 49873d45278 < snuffly/RT 49881c45286 < so/M --- > so 49891d45295 < soaring/Y 49913,49914d45316 < sociobiology < sociocultural 49917,49918d45318 < sociolinguistic/S < sociolinguists 49920c45320 < sociologist/MS --- > sociologist/SM 49939d45338 < sofabed/SM 49956d45354 < soh 49958a45357,45358 > soigné > soignée 49961a45362 > soirée/SM 49969c45370 < sold/UR --- > sold 49979c45380 < solemnify/GDS --- > solemnify/DSG 49985d45385 < solenoidal 49990c45390 < solicitous/YP --- > solicitous/PY 50002c45402 < soliloquize/GDS --- > soliloquize/DSG 50004,50005c45404 < solipsism/MS < solipsist/S --- > solipsism/M 50010c45409 < solitude/SM --- > solitude/M 50016c45415,45416 < solute/XNM --- > solute's > solute/AXN 50018c45418 < solution/EAM --- > solution's/AE 50020c45420 < solve/ARZBGSD --- > solve/EADSG 50024c45424 < solver/M --- > solver/SM 50028c45428,45429 < sombre --- > sombre/PY > sombreness/M 50036c45437 < somersault/MDSG --- > somersault/MDGS 50045c45446 < sommelier/SM --- > sommelier/MS 50060c45461 < songwriter/MS --- > songwriter/SM 50063d45463 < sonically 50066d45465 < sonofabitch/! 50068,50069c45467,45468 < sonority/SM < sonorous/PY --- > sonority/M > sonorous/YP 50073d45471 < soonish 50079c45477 < soothsayer/SM --- > soothsayer/MS 50114c45512 < sorrowful/PY --- > sorrowful/YP 50119d45516 < sortable 50128d45524 < soubriquet/SM 50129a45526 > soufflé/SM 50134c45531 < soul/MDS --- > soul/MS 50137a45535 > soulmate/S 50138a45537,45538 > soundalike/S > soundbar/S 50140c45540,45541 < soundboard/SM --- > soundboard/MS > soundcheck/S 50145c45546 < soundproof/DGS --- > soundproof/GDS 50146a45548 > soundscape/S 50150a45553 > soupçon/MS 50153d45555 < sourceless 50173c45575 < southwest/MRZ --- > southwest/ZMR 50181c45583,45584 < sow/ASGDM --- > sow's > sow/ASGD 50185d45587 < soya/M 50189c45591 < space/DRSMZGJ --- > space/DRSMZG 50191c45593 < spaceflight/SM --- > spaceflight/MS 50202a45605,45606 > spacier > spaciest 50205c45609 < spacious/PY --- > spacious/YP 50207d45610 < spacy/RTP 50215,50216c45618 < spam/S < spamblock/S --- > spam/MS 50222d45623 < spandrels 50226c45627 < spank/SMDRGJ --- > spank/SMDGJ 50228c45629 < spanned/U --- > spanned 50239d45639 < sparkling/Y 50264,50265c45664 < speak/SRZGBJ < speakable/U --- > speak/SRZGJ 50270a45670 > speargun 50274c45674 < special/SPMRY --- > special/SMY 50284,50285c45684 < specifiably < specific/PMS --- > specific/MS 50289c45688 < specified/UA --- > specified/U 50299c45698 < spectacular/SMY --- > spectacular/MYS 50305,50312c45704,45705 < spectrogram < spectrograph < spectrometer/SM < spectrometric < spectrometry < spectrophotometer < spectrophotometry < spectroscope/SM --- > spectrometer/MS > spectroscope/MS 50314d45706 < spectroscopically 50317,50318c45709 < specular < speculate/XDSGNV --- > speculate/DSXGNV 50322d45712 < speculum 50326c45716 < speechless/PY --- > speechless/YP 50344,50345c45734,45735 < spell/BJSMDRZG < spellbind/RZGS --- > spell/JSMDRZG > spellbind/ZGRS 50348c45738,45739 < spellchecker/S --- > spellcheck/DRZGS > spellchecker/M 50350d45740 < spelled 50365c45755 < spermicide/SM --- > spermicide/MS 50379c45769 < spick/S! --- > spick/S 50384c45774 < spidery/RT --- > spidery 50389d45778 < spik/S! 50393c45782 < spill/SMDRG --- > spill/SMDG 50402d45790 < spindrift 50419c45807,45808 < spire/IFASM --- > spire's > spire/IFAS 50421c45810,45811 < spirit/ISGDM --- > spirit's > spirit/ISGD 50431c45821 < spiry/RT --- > spiry 50460a45851 > splenectomy 50470,50471d45860 < splittable < splitter/S 50479c45868,45869 < spoil/CSDRZGM --- > spoil's > spoil/CSDRZG 50486d45875 < spokeshave/S 50490c45879 < spokesperson/SM --- > spokesperson/MS 50500c45889 < sponsorship/MS --- > sponsorship/M 50537c45926 < spotlight/SGMD --- > spotlight/GSMD 50552c45941,45942 < spray/ASDGM --- > spray's > spray/ASDG 50557c45947 < spreadsheet/SM --- > spreadsheet/MS 50563,50564c45953,45954 < sprightly/RPT < spring/GSMR --- > sprightly/RTP > spring/GSM 50590d45979 < spumone/M 50592c45981 < spumy/RT --- > spumy 50598c45987 < spurious/YP --- > spurious/PY 50610d45998 < spyhole 50619d46006 < squaddie/S 50624c46011 < squally/TR --- > squally 50657c46044 < squelchy/RT --- > squelchy 50663c46050 < squiggly/RT --- > squiggly 50671a46059 > sriracha 50679d46066 < stabilizability 50689c46076 < stack/SMDRG --- > stack/SMDG 50691c46078,46079 < staff/ASDGM --- > staff's > staff/ASDG 50694d46081 < staffroom 50713c46100 < stain/SMDRG --- > stain/SMDG 50721c46108 < stakeholder/SM --- > stakeholder/MS 50724c46111 < stalagmite/SM --- > stalagmite/MS 50731c46118,46119 < stall/SDGM --- > stall's > stall/ISDG 50740c46128 < stamp/SMDRJZG --- > stamp/SMDRZG 50749,50750c46137,46138 < standardization/SM < standardize/GDS --- > standardization/M > standardize/DSG 50761c46149 < standstill/SM --- > standstill/MS 50765d46152 < stapes 50773a46161 > starburst/S 50800a46189 > startup/MS 50803c46192 < starveling/SM --- > starveling/MS 50811c46200 < statehouse/SM --- > statehouse/MS 50829c46218 < statical/Y --- > statically 50837,50838c46226 < statistician/MS < stator/S --- > statistician/SM 50850c46238 < stave/DMG --- > stave/DSMG 50862c46250 < steal/SMRHG --- > steal/SMHG 50866c46254 < stealthy/TRP --- > stealthy/TPR 50870c46258 < steamfitter/MS --- > steamfitter/SM 50882,50883c46270 < steelwork/RSZ < steelworker/M --- > steelworker/SM 50890,50891c46277,46278 < steeplechase/MRS < steeplejack/MS --- > steeplechase/MS > steeplejack/SM 50902d46288 < stellated 50911c46297 < stenographer/MS --- > stenographer/SM 50914c46300,46301 < stent/MS --- > stenosis > stent/SM 50917c46304 < stepbrother/MS --- > stepbrother/SM 50919,50921c46306,46309 < stepchildren < stepdaughter/MS < stepfather/MS --- > stepchildren/M > stepdad/MS > stepdaughter/SM > stepfather/SM 50922a46311 > stepmom/MS 50927,50928c46316,46317 < steppingstone/MS < stepsister/SM --- > steppingstone/SM > stepsister/MS 50930,50931d46318 < stepwise < steradians 50933d46319 < stereographic 50937,50938d46322 < stereoscopically < stereoscopy 50940c46324 < stereotypical/Y --- > stereotypical 50943c46327 < sterilization/MS --- > sterilization/SM 50945d46328 < sterilized/U 50955c46338 < stethoscope/SM --- > stethoscope/MS 50968,50969c46351 < sticking/U < stickleback/MS --- > stickleback/SM 50985c46367 < stigmatize/DSG --- > stigmatize/GDS 50988c46370,46371 < still/ITGSDM --- > still's > still/ITGSD 50998d46380 < stimulated/U 51000,51001d46381 < stimulator < stimulatory 51022c46402 < stirred/U --- > stirred 51026c46406,46407 < stitch/ADSGM --- > stitch's > stitch/ADSG 51031c46412,46413 < stock/AGSDM --- > stock's > stock/AGSD 51041c46423 < stocking/SMD --- > stocking/SM 51066d46447 < stoma 51071d46451 < stomata 51073,51074c46453 < stone/DSMG < stoneless --- > stone/DRSMZG 51075a46455 > stoner/M 51080d46459 < stoney 51090c46469,46470 < stop/USM --- > stop's > stop/US 51094d46473 < stopoff 51104,51107c46483,46487 < store/ADSGM < storefront/SM < storehouse/SM < storekeeper/MS --- > store's > store/ADSG > storefront/MS > storehouse/MS > storekeeper/SM 51110c46490 < storm/ZGSMDR --- > storm/GSMD 51113d46492 < stormtroopers 51116c46495 < storyboard/SM --- > storyboard/MS 51118,51119c46497 < storyline < storyteller/SM --- > storyteller/MS 51136c46514 < straight/SXTPMNRY --- > straight/SPXTMNRY 51141c46519 < straightforward/SYP --- > straightforward/YPS 51143d46520 < straightjacket/SM 51146c46523,46524 < strain/FADSGM --- > strain's > strain/FADSG 51150c46528 < straitjacket/SMDG --- > straitjacket/SGMD 51159c46537 < strangulate/DSGN --- > strangulate/GNDS 51161c46539,46540 < strap/USM --- > strap's > strap/US 51170c46549 < strategist/MS --- > strategist/SM 51175,51177c46554 < stratigraphic < stratigraphical < stratosphere/MS --- > stratosphere/SM 51179d46555 < stratospherically 51190c46566 < streamline/GDS --- > streamline/DSG 51194,51195c46570,46571 < streetlight/MS < streetwalker/MS --- > streetlight/SM > streetwalker/SM 51198c46574 < strengthen/AGSD --- > strengthen/AGDS 51210c46586 < stressful/P --- > stressful 51212,51213d46587 < stretchability < stretchable/U 51216c46590 < stretchy/TRP --- > stretchy/TR 51228c46602 < stride/MGRS --- > stride/MGS 51234c46608 < strikebreaker/MS --- > strikebreaker/SM 51254c46628 < stripy/RT --- > stripy 51264d46637 < stromatolites 51266d46638 < strongbow 51269d46640 < strongish 51286c46657,46658 < structure/AGDSM --- > structure's > structure/AGDS 51288d46659 < structureless 51298d46668 < strutter 51305c46675 < stubbly/TR --- > stubbly 51320d46689 < studier/S 51322c46691 < studious/YP --- > studious/PY 51325,51326c46694,46696 < study/AGDSM < stuff/GSMDR --- > study's > study/AGDS > stuff/GSMD 51335d46704 < stumbling/Y 51349d46717 < stupefying/Y 51362c46730,46731 < style/ADSGM --- > style's > style/ADSG 51369d46737 < stylization 51372c46740 < stymie/M --- > stymie/MDS 51374d46741 < stymy/DSM 51376d46742 < styrene 51387c46753 < subbasement/MS --- > subbasement/SM 51392,51393c46758 < subclass/S < subclauses --- > subclass 51401,51403c46766,46767 < subcontractor/SM < subcultural < subculture/SM --- > subcontractor/MS > subculture/MS 51406,51408c46770,46771 < subdivision/MS < subducted < subduction --- > subdivision/SM > subdominant 51410d46772 < subdued/U 51415d46776 < subharmonic/S 51427,51428c46788 < subjunctive/MS < sublayer --- > subjunctive/SM 51438c46798 < sublunary --- > sublingual 51448c46808,46809 < submission/ASM --- > submission's/A > submission/MS 51452d46812 < submittable 51454c46814 < submitter/S --- > submitter 51457d46816 < suboptimal 51460c46819 < subordinate/MGNDS --- > subordinate/DSMGN 51464c46823 < subpena/GMDS --- > subparagraph 51466a46826 > subprime 51469c46829 < subroutine/MS --- > subroutine/SM 51471c46831 < subscriber/SM --- > subscriber/MS 51473c46833 < subscription/SM --- > subscription/MS 51485d46844 < subsidized/U 51492c46851 < subspace/S --- > subspace 51497c46856 < substantiate/XGNDS --- > substantiate/GNDSX 51503,51504c46862 < substitute/MGNBXDS < substituted/U --- > substitute/XMGNDS 51510a46869 > subsumption/S 51523c46882 < subtly/U --- > subtly 51526c46885 < subtract/GVSD --- > subtract/GSD 51528d46886 < subtractive/Y 51533,51534d46890 < subtype/S < subunit/S 51538d46893 < suburbanization 51550c46905 < succession/MS --- > succession/SM 51565c46920 < suck/MDRZGSB --- > suck/MDRZGS 51571d46925 < sud/S 51590d46943 < suffocating/Y 51594c46947 < suffragette/MS --- > suffragette/SM 51600c46953 < sugarcoat/DGS --- > sugarcoat/GDS 51604c46957 < suggest/ZGVSDR --- > suggest/GVSDR 51608c46961 < suggestive/PY --- > suggestive/YP 51610,51611c46963 < sugillate < suicidal/Y --- > suicidal 51614d46965 < suitabilities 51616d46966 < suitable/UP 51627a46978 > sulfonamides 51639,51640d46989 < sulphate/S < sulphide/S 51649,51651d46997 < sumach/M < summability < summable 51653c46999 < summarize/ZGDRS --- > summarize/GDS 51659c47005 < summerhouse/MS --- > summerhouse/SM 51661c47007 < summery/RT --- > summery 51665c47011 < summon/JDRSZG --- > summon/DRSZG 51685d47030 < suncream 51716d47060 < sunspots/S 51725c47069 < superabundance/SM --- > superabundance/MS 51738d47081 < supercomputing 51743,51745d47085 < supercooled < supercooling < superdense 51752,51754c47092,47093 < superfix < superfluity/SM < superfluous/PY --- > superfluity/M > superfluous/YP 51758d47096 < superheat/D 51761c47099 < superhighway/MS --- > superhighway/SM 51763c47101 < superimpose/DSG --- > superimpose/GDS 51765c47103 < superintend/SGD --- > superintend/DSG 51771c47109 < superlative/MYS --- > superlative/SMY 51773c47111 < supermarket/MS --- > supermarket/SM 51775c47113 < supermodel/S --- > supermodel/SM 51778,51779c47116 < supernatant < supernatural/YS --- > supernatural/SY 51783d47119 < superordinate 51785,51786c47121,47122 < superposition/SM < superpower/MS --- > superposition/M > superpower/SM 51792a47129 > supersize/GDS 51794d47130 < supersonically 51797c47133 < superstition/SM --- > superstition/MS 51799,51801c47135,47137 < superstore/SM < superstructure/SM < supertanker/SM --- > superstore/MS > superstructure/MS > supertanker/MS 51805c47141 < supervise/GNXDS --- > supervise/XGNDS 51808c47144 < supervisor/SM --- > supervisor/MS 51819c47155 < supplement/GMDS --- > supplement/MDGS 51829c47165 < supply/ZGXDRSMN --- > supply/ZGDRSMXN 51831,51832c47167 < supportability < supportable/IU --- > supportable/UI 51837c47172 < supposition/SM --- > supposition/MS 51839c47174 < suppress/GVDS --- > suppress/GDS 51841d47175 < suppressed/U 51844c47178 < suppressor/MS --- > suppressor/SM 51849c47183 < supremacist/SM --- > supremacist/MS 51851,51852c47185 < supremal < supreme/YTR --- > supreme/Y 51858d47190 < surd 51865,51868c47197,47199 < surface/AGDSM < surfaced/U < surfactant/S < surfboard/MDGS --- > surface's > surface/AGDS > surfboard/MDSG 51876d47206 < surlily 51890d47219 < surprised/U 51897,51899c47226,47227 < surreality < surrender/GMDS < surreptitious/YP --- > surrender/MDSG > surreptitious/PY 51910c47238,47239 < survey/ADGSM --- > survey's > survey/ADGS 51913,51914d47241 < survivability < survivable/U 51916c47243 < survivalist/MS --- > survivalist/SM 51935d47261 < sustainably 51952c47278 < swallow/GSMDR --- > swallow/GSMD 51957c47283 < swampland/MS --- > swampland/M 51969d47294 < swappable/U 51971d47295 < swapper/S 51997d47320 < sweatily 52000c47323 < sweatshirt/MS --- > sweatshirt/SM 52005c47328 < sweep/ZGSMRBJ --- > sweep/ZGSMRJ 52009d47331 < sweepstake/SM 52019c47341 < sweetheart/MS --- > sweetheart/SM 52024d47345 < sweetshop 52031a47353 > swerving/U 52053c47375 < swirly/RT --- > swirly 52055d47376 < swishy 52057,52059c47378,47380 < switchback/SM < switchblade/MS < switchboard/MS --- > switchback/MS > switchblade/SM > switchboard/SM 52061,52062d47381 < switchgear < switchover 52067,52069d47385 < swob/MS < swobbed < swobbing 52074,52076d47389 < swop/MS < swopped < swopping 52096,52097d47408 < sycophantically < syllabary 52100c47411 < syllabicate/DSGN --- > syllabicate/GNDS 52114d47424 < symbiont 52123d47432 < symbolist 52126c47435 < symmetric --- > symmetric/Y 52128,52129d47436 < symmetrization < symmetrizing 52138d47444 < symphonists 52144,52146c47450 < symptomless < syn < synagog/MS --- > syn/H 52152c47456 < synch/GMDS --- > synches 52154,52155c47458,47459 < synchronization/MS < synchronize/ADSG --- > synchronization/SM > synchronize/GDS 52157,52158d47460 < synchrony < synchrotron 52176,52177c47478 < synonymic < synonymous/Y --- > synonymous 52181d47481 < synopsizes 52182a47483 > synovial 52186c47487 < synthase/MS --- > synthase/SM 52192a47494 > synths 52199c47501 < sysop/MS --- > sysop/SM 52208a47511 > séance/SM 52226c47529 < tablespoonful/MS --- > tablespoonful/SM 52233d47535 < tabu/GMDS 52242c47544 < tachyon/S --- > tachyon 52264d47565 < tactual 52271c47572 < tagged/U --- > tagged 52284c47585 < tailless/P --- > tailless 52286c47587 < tailor/SGBMD --- > tailor/SGMD 52290d47590 < tailplane 52296d47595 < takeable 52308c47607 < talebearer/SM --- > talebearer/MS 52311d47609 < talentless 52315c47613 < talkative/YP --- > talkative/PY 52360c47658,47659 < tangle/UDSGM --- > tangle's > tangle/UDSG 52371c47670 < tannin/SM --- > tannin/M 52399c47698 < tarantella/SM --- > tarantella/MS 52432a47732 > taser/GMDS 52453c47753 < tatterdemalion/SM --- > tatterdemalion/MS 52476d47775 < taverna/S 52484d47782 < taxed/U 52488c47786 < taxidermist/MS --- > taxidermist/SM 52491d47788 < taxing/U 52511d47807 < teacloth 52517c47813 < tealeaves --- > tealight/MS 52526c47822 < tearful/PY --- > tearful/Y 52530,52531c47826 < tearjerker/SM < tearless --- > tearjerker/MS 52537d47831 < teashop/S 52540c47834 < teaspoonful/MS --- > teaspoonful/SM 52543,52544d47836 < teazel/S < teazle/S 52550c47842 < technician/MS --- > technician/SM 52553a47846 > technobabble 52560d47852 < technophiles 52562,52563d47853 < technophobia < technophobic 52566d47855 < tectonically 52577c47866 < teenage/DRZ --- > teenage/RZ 52579d47867 < teensy/RT 52586d47873 < teethmarks 52594,52595c47881,47882 < telecom/MS < telecommunication/SM --- > telecom/M > telecommunication/MS 52597c47884 < telecommute/DRSZG --- > telecommute/ZGDRS 52600d47886 < telecoms 52632c47918 < teleport/SGD --- > teleport/DSG 52634c47920 < teleprinter/SM --- > teleprinter/MS 52646c47932 < televangelist/SM --- > televangelist/MS 52649d47934 < televisual 52663c47948 < temper/ESMD --- > temper/MDG 52670,52672c47955 < temperature/MS < tempered/U < tempering --- > temperature/SM 52676c47959,47961 < template/SM --- > tempi > template's > template/S 52686c47971 < temptation/SM --- > temptation/MS 52703c47988 < tend/IEFDGS --- > tend/IFEDGS 52709,52710c47994,47995 < tenderfoot/SM < tenderhearted/YP --- > tenderfoot/MS > tenderhearted/PY 52725c48010 < tenon/SM --- > tenon/SMDG 52733,52734d48017 < tensional < tensioned 52753c48036 < terabit/MS --- > terabit/SM 52759c48042 < tercentennial/MS --- > tercentennial/SM 52766,52767c48049 < terminated/U < termination/CMS --- > termination/CSM 52776d48057 < terpsichorean 52780d48060 < terraform/D 52785c48065 < terrestrial/MYS --- > terrestrial/SMY 52795c48075 < territorial/SMY --- > territorial/MS 52806,52807c48086,48087 < tertiary/S < tessellate/XDSGN --- > tertiary > tessellate/DSXGN 52809,52812c48089,48091 < tesseral < test/AKFCDGSM < testability < testable/UF --- > test's/AFK > test/AKFCDGS > testable/CF 52819,52820d48097 < testbed/S < testcard 52823c48100 < tester/KMS --- > tester/KSM 52830c48107 < testimonial/SM --- > testimonial/MS 52836c48113 < testsuite/MS --- > testsuite/SM 52842d48118 < tethered/U 52844d48119 < tetrachloride 52847,52848c48122,48123 < tetrahedron/SM < tetrameter/MS --- > tetrahedron/MS > tetrameter/SM 52851c48126,48127 < textbox/SM --- > textbox/MS > texted 52852a48129 > texting 52854,52856c48131,48132 < textural/Y < texture/MDS < textured/U --- > textural > texture/MGDS 52865,52867c48141 < thankful/PY < thankfuller < thankfullest --- > thankful/YP 52871c48145 < thanksgiving/MS --- > thanksgiving/SM 52876d48149 < thaumaturge 52892d48164 < themas 52906d48177 < theologists 52911c48182 < theoretician/MS --- > theoretician/SM 52917c48188 < theosophist/MS --- > theosophist/SM 52934c48205 < theremin/MS --- > theremin/SM 52939d48209 < thereunder 52946,52948d48215 < thermistor/S < thermochemical < thermocouple/S 52950d48216 < thermodynamical/Y 52952,52954c48218 < thermoelectric < thermoluminescence < thermometer/SM --- > thermometer/MS 52957,52959c48221 < thermophile/S < thermophilic < thermoplastic/MS --- > thermoplastic/SM 52976d48237 < thiamin/M 52991c48252 < thievish/P --- > thievish 52996c48257 < thimbleful/MS --- > thimbleful/SM 53008c48269 < thinking/M --- > thinking's 53014d48274 < thinnish 53048c48308 < thoughtful/PY --- > thoughtful/YP 53073d48332 < threepenny 53099a48359 > thrombolytic 53104c48364,48365 < throne/CDSM --- > throne's > throne/S 53111c48372 < throughway/SM --- > throughway/MS 53117d48377 < throwout 53123c48383 < thrust/ZGSMR --- > thrust/GSM 53140,53142c48400,48402 < thunderbolt/MS < thunderclap/MS < thundercloud/SM --- > thunderbolt/SM > thunderclap/SM > thundercloud/MS 53144,53145c48404 < thunderflashes < thunderhead/MS --- > thunderhead/SM 53148c48407 < thunderstorm/MS --- > thunderstorm/SM 53160d48418 < thyristor/S 53176c48434 < ticklish/PY --- > ticklish/YP 53188d48445 < tideless 53196c48453,48454 < tie/AUSDM --- > tie's > tie/AUSD 53214d48471 < tike/MS 53217c48474 < tile/MZGJDRS --- > tile/MZGDRS 53220c48477,48478 < till/EDRZGSM --- > till's > till/EDRZGS 53225c48483 < timber/SMD --- > timber/SMDG 53227c48485 < timberline/SM --- > timberline/MS 53231d48488 < timebase 53243c48500 < timeserver/MS --- > timeserver/SM 53246,53247d48502 < timestamped < timestamps 53250c48505 < timezone/S --- > timezone 53255c48510 < timorous/YP --- > timorous/PY 53271d48525 < tingly/RT 53276d48529 < tinkly 53278d48530 < tinnily 53289c48541 < tintinnabulation/SM --- > tintinnabulation/MS 53294d48545 < tipi/MS 53310c48561,48563 < tire/AGDSM --- > tiramisu/MS > tire's > tire/AGDS 53313c48566 < tireless/PY --- > tireless/YP 53317d48569 < tiro/M 53319c48571 < tit/SZMR --- > tit/SM 53322d48573 < titanically 53324d48574 < titbit/SM 53336,53338c48586,48587 < titled/UA < titleholder/SM < titling/A --- > titled/U > titleholder/MS 53342,53343d48590 < titrated < titration 53345c48592,48593 < tittivate/DSG --- > tittivate/DSGN > tittivation/M 53355,53356d48602 < toadded < toadding 53362c48608 < toastmaster/MS --- > toastmaster/SM 53366c48612 < tobacconist/MS --- > tobacconist/SM 53378d48623 < toeclip/S 53385d48629 < toffy/SM 53389d48632 < toge 53439c48682,48683 < tone/IZGDRSM --- > tone's > tone/IZGDRS 53458,53459c48702,48704 < tool/ADGSM < toolbar/MS --- > tool's > tool/ADGS > toolbar/SM 53463d48707 < toolmaking 53471,53472c48715 < toothmarks < toothpaste/MS --- > toothpaste/SM 53481c48724 < topdressing/MS --- > topdressing/SM 53494c48737 < topographer/MS --- > topographer/SM 53499,53500c48742 < topologist/S < topology/S --- > topology 53516d48757 < torchlit 53519,53521c48760 < tori < torment/SMDRZG < tormenter/M --- > torment/SMDG 53527,53528d48765 < toroid < toroidal 53537c48774 < torrid/RYPT --- > torrid/YP 53540,53541c48777 < tors/S < torsion/SM --- > torsion/M 53544c48780,48781 < tort/FEASM --- > tort's > tort/EFAS 53546c48783 < tortellini/SM --- > tortellini/M 53549c48786 < tortoiseshell/MS --- > tortoiseshell/SM 53560c48797 < tot/SGMDR --- > tot/SGMD 53562c48799 < totalitarian/MS --- > totalitarian/SM 53565,53566c48802 < totalizator/MS < totalizing --- > totalizator/SM 53584c48820 < touchscreen/SM --- > touchscreen/MS 53586a48823 > touché 53595d48831 < tourer/S 53601c48837 < tournament/MS --- > tournament/SM 53639,53640d48874 < toymaker < toyshop 53641a48876,48878 > trabecula > trabecular > trabecule 53643d48879 < traceability 53645d48880 < traceless 53655c48890 < trackback/MS --- > trackback/SM 53657d48891 < trackbed 53661,53662c48895,48896 < trackway/S < tract/CEKFASM --- > tract's > tract/CEKFAS 53666c48900 < traction/EFACKM --- > traction/FEACKM 53670,53671c48904 < trademark/SMDG < tradeoff/MS --- > trademark/SGMD 53693c48926 < tragical/Y --- > tragically 53700c48933 < train/ZGSMDRBJ --- > train/ZGSMDRB 53726,53727c48959 < trampoline/DSMG < trampolinist --- > trampoline/MGDS 53733c48965 < tranquilize/DRSZG --- > tranquilize/ZGDRS 53735,53736c48967 < tranquillize/DRSZG < tranquillizer/M --- > tranquillity/M 53740d48970 < transactional 53744c48974 < transcend/SGD --- > transcend/GSD 53747c48977 < transcendental/SY --- > transcendental/Y 53749c48979 < transcendentalist/MS --- > transcendentalist/SM 53754,53757c48984,48985 < transcription/MS < transcriptional < transducer/SM < transduction --- > transcription/SM > transducer/MS 53760,53762c48988,48989 < transfect/DSMG < transfer/MSB < transferability --- > transfect/SGD > transfer/MBS 53764d48990 < transferee/S 53770c48996 < transfinite/Y --- > transfinite 53772,53775c48998,48999 < transform/SMDRZGB < transformation/MS < transformational < transformed/U --- > transform/BSZGMDR > transformation/SM 53777c49001 < transfuse/DSGNX --- > transfuse/DSXGN 53779c49003 < transgender/MDS --- > transgender/SD 53781c49005 < transgene/MS --- > transgene/S 53783,53784c49007,49008 < transgress/GVDS < transgression/MS --- > transgress/GDS > transgression/SM 53786d49009 < transhipment 53790c49013 < transistor/MS --- > transistor/SM 53793c49016 < transition/MDGS --- > transition/GSMD 53795c49018 < transitive/IMYS --- > transitive/ISMY 53801c49024 < translate/BXDSGN --- > translate/DSGNBX 53804,53806c49027,49028 < translational < translator/MS < transliterate/GNXDS --- > translator/SM > transliterate/DSGNX 53807a49030 > translocation 53811c49034 < transmigrate/DSGN --- > transmigrate/GNDS 53814,53816c49037,49039 < transmission/ASM < transmissive < transmit/AS --- > transmission's/A > transmission/MS > transmit/S 53820,53822c49043,49045 < transmitted/A < transmitter/MS < transmitting/A --- > transmitted > transmitter/SM > transmitting 53824,53827c49047,49050 < transmogrify/NGDS < transmutation/MS < transmute/DSBG < transnational/SM --- > transmogrify/DSNG > transmutation/SM > transmute/BDSG > transnational/MS 53830d49052 < transonic 53836c49058 < transplant/GMDS --- > transplant/MDGS 53840,53842c49062 < transport/SZGBMDR < transportability < transportable/U --- > transport/BSZGMDR 53846,53848c49066,49067 < transposition/SM < transputer/S < transsexual/MS --- > transposition/MS > transsexual/SM 53850c49069 < transship/LS --- > transship/SL 53855c49074 < transverse/SMY --- > transverse/MYS 53864c49083 < trappable/U --- > trappable 53891c49110 < treacherous/YP --- > treacherous/PY 53897d49115 < treader 53905d49122 < treasurership 53908c49125 < treatable/U --- > treatable 53927,53928c49144 < tremble/DSJMG < trembling/Y --- > tremble/DSMG 53934c49150,49151 < trench/AIGSDM --- > trench's > trench/ADSG 53946,53947c49163 < trepanned < trepidation/SM --- > trepidation/M 53955d49170 < triadic 53960,53961d49174 < trialled < trialling 53963d49175 < triangulable 53965c49177 < triangulate/XDSGN --- > triangulate/GNDS 53969,53970c49181 < triatomic < tribal/Y --- > tribal 53977c49188 < tribulation/MS --- > tribulation/SM 53981c49192,49193 < tribute/FSM --- > tribute's > tribute/FS 53983c49195 < tricentennial/SM --- > tricentennial/MS 54002,54003c49214 < trifecta/S < triffid/S --- > trifecta/SM 54009,54010c49220 < triggest < triglyceride/SM --- > triglyceride/MS 54014d49223 < trigram/S 54018d49226 < trilingual 54035d49242 < trimodal 54044d49250 < triplane 54048c49254 < triplicate/MGNDS --- > triplicate/MGDS 54051c49257 < tripos/S --- > tripos 54061d49266 < trisector 54079c49284 < trivialization/SM --- > trivialization/M 54085c49290 < trodden/AU --- > trodden/A 54091d49295 < trollish 54093d49296 < trolly/SM 54098,54099d49300 < tronned < tronning 54109,54111c49310 < tropopause < troposphere/MS < tropospheric --- > troposphere/SM 54120,54121c49319,49320 < troublemaker/SM < troubleshoot/ZGDRS --- > troublemaker/MS > troubleshoot/DRZGS 54162c49361 < truncate/GNXDS --- > truncate/GNDS 54168d49366 < trunnion/S 54170,54171c49368 < trust/IESGDM < trusted/U --- > trust/ESGMD 54176c49373 < trustingly --- > trusting/Y 54178c49375 < trustworthy/PTR --- > trustworthy/TPR 54181c49378 < truthful/UPY --- > truthful/UYP 54182a49380 > truthiness 54184c49382,49383 < try/AGDSM --- > try's > try/AGDS 54188,54190c49387 < tsarina/MS < tsarism < tsarist/S --- > tsarists 54197d49393 < tubae 54243,54244c49439 < tumulus < tun/SZGMDRBJ --- > tun/SZGMDR 54258c49453,49454 < tuppence/S --- > tuple/S > tuppence 54275c49471 < turducken --- > turducken/SM 54278c49474 < turfy/RT --- > turfy 54289d49484 < turned/U 54334c49529 < twee/DP --- > twee 54350a49546 > twerk/SDG 54353,54354c49549,49550 < twiddle/MGDRS < twiddly/RT --- > twiddle/MGDS > twiddly 54375,54376c49571,49573 < twirly/TR < twist/USDGM --- > twirly > twist's > twist/USDG 54397a49595 > tympanic 54400c49598,49599 < type/AGDSM --- > type's > type/AGDS 54402d49600 < typed/U 54404d49601 < typeless 54407c49604 < typesetter/SM --- > typesetter/MS 54424c49621 < typographer/MS --- > typographer/SM 54428d49624 < typological/Y 54432d49627 < tyrannicide 54434c49629 < tyrannosaur/SM --- > tyrannosaur/MS 54440,54444d49634 < tyrosine < tzar/MS < tzarina/SM < tzarism < tzarist/S 54452d49641 < uglification 54457d49645 < ukelele/SM 54460c49648 < ulcerate/XDSGN --- > ulcerate/DSGN 54475c49663 < ultralight/MS --- > ultralight/SM 54478,54479c49666 < ultramontane < ultrasonic/S --- > ultrasonic 54493d49679 < umbrageous 54504d49689 < unaccountability 54506d49690 < unadaptive 54510d49693 < unambiguity 54519d49701 < unattainably 54526,54527d49707 < unbiased/Y < unbiassedly 54529a49710 > unblushing/Y 54532d49712 < unbreakability 54538d49717 < uncatalogued 54540d49718 < unchallengeable 54543d49720 < uncharismatic 54546d49722 < uncheckable 54552,54553c49728 < unclench/D < uncollimated --- > uncomfortable 54555c49730 < uncommunicative --- > uncomplaining/Y 54558d49732 < uncompromisable 54561d49734 < unconfused 54562a49736 > unconscionable 54566d49739 < uncontentious 54567a49741 > uncontroversial 54570,54572c49744 < uncouth/YP < uncreative < uncross/B --- > uncouth/Y 54579d49750 < undead 54584c49755 < underachieve/ZGLDRS --- > underachieve/LZGDRS 54587a49759 > underappreciated 54594c49766 < undercharge/DSMG --- > undercharge/MGDS 54600c49772 < undercoat/JGSMD --- > undercoat/GJSMD 54602d49773 < undercooked 54611,54612d49781 < undereducated < underemphasis 54615c49784 < underestimate/MGNXDS --- > underestimate/DSMGNX 54617,54618c49786 < underexploited < underexpose/DSG --- > underexpose/GDS 54621c49789 < underfeed/SG --- > underfeed/GS 54625,54626c49793 < underframe < underfund/GD --- > underfunded 54633,54634c49800,49801 < undergraduate/MS < underground/SM --- > undergraduate/SM > underground/MS 54637c49804 < underhanded/YP --- > underhanded/PY 54639d49805 < underinvestment 54643c49809 < underline/MGJDS --- > underline/MGDS 54646d49811 < underloaded 54661,54662c49826 < underpayment/MS < underperformed --- > underpayment/SM 54665c49829 < underpinning/SM --- > underpinning/MS 54668,54670d49831 < underpopulation < underpowered < underpricing 54677d49837 < undersealed 54679c49839 < undersell/SG --- > undersell/GS 54686c49846 < undersign/DSG --- > undersign/DGS 54688c49848 < undersize/D --- > undersized 54691,54694d49850 < underspecification < underspecified < underspend/G < underspent 54696,54697c49852 < understand/RGSBJ < understandability --- > understand/SGBJ 54700c49855 < understate/GDSL --- > understate/DSLG 54702d49856 < understocked 54704,54708c49858,49859 < understorey < understory < understrength < understudy/DSMG < undertake/ZGRSJ --- > understudy/GDSM > undertake/ZGJRS 54717d49867 < underusing 54720c49870 < undervalue/GDS --- > undervalue/DSG 54726,54728c49876,49879 < underwhelm/SDG < underworld/SM < underwrite/RSZG --- > underwhelm/DGS > underwire/DS > underworld/MS > underwrite/ZGRS 54732c49883 < undesirable/SM --- > undesirable/MS 54734,54735d49884 < undiscerning < undisguised/Y 54740,54741d49888 < undrinkability < undroppable 54756d49902 < unergonomic 54759,54760c49905 < uneven/RYPT < unexacting --- > uneven/Y 54764c49909 < unexpected/PY --- > unexpected/YP 54774d49918 < unfetchable 54784d49927 < unfocussed 54787a49931 > unfriend/GD 54791d49934 < unfulfillable 54793d49935 < unfussy 54795c49937,49938 < ungainly/RTP --- > ungainly/RPT > ungenerous 54797d49939 < unglamorous 54808d49949 < unheroic 54816,54817d49956 < unicyclist/S < unideal 54819d49957 < unifiable 54821,54822c49959 < unifier < uniform/SMDRYTG --- > uniform/SMDYG 54827,54828d49963 < unilateralist < unimportance 54830a49966 > uninformative 54831a49968 > uninstall/BSZGDR 54833d49969 < unintellectual 54838d49973 < unintuitive 54843d49977 < unipolar 54857d49990 < universalism 54862,54863c49995 < unixism/S < unjam --- > unjust/Y 54867d49998 < unknightly 54873d50003 < unlikeable 54875d50004 < unlink/D 54882c50011 < unmanageably --- > unman/S 54884d50012 < unmannerly 54887,54888d50014 < unmeetable < unmelodious 54895,54897d50020 < unmistakeable < unmistakeably < unmnemonic 54900c50023 < unmusical/Y --- > unmusical 54903,54904d50025 < unobjectionable < unobservable 54909,54912d50029 < unoriginality < unorthodoxy < unpack/Z < unparallelled 54916d50032 < unphysical 54920,54921d50035 < unploughed < unpoetical 54924d50037 < unportable 54929d50041 < unpronounced 54931,54932d50042 < unpunctual < unpunctuality 54935d50044 < unraisable 54937,54938c50046 < unreadability < unready/TR --- > unready 54941d50048 < unreceptive 54948c50055 < unrepeated --- > unrepentant 54951d50057 < unresisting/Y 54953d50058 < unriddle 54959,54961c50064 < unsafe/T < unsaleable < unsatisfactory/P --- > unsafe/YTR 54963,54966c50066 < unseal/B < unsearchable < unseasonal < unseaworthiness --- > unscathed 54969,54971c50069 < unseen/MS < unselfconscious/Y < unsellable --- > unseen/M 54973a50072 > unshakable 54974a50074 > unshakeable 54975a50076 > unshockable 54977,54978d50077 < unshrinking < unsighted 54980,54981c50079,50080 < unsightly/TP < unskilful --- > unsightly/PT > unsmiling 54984c50083 < unsophistication --- > unsold 54985a50085 > unspeakable 54989d50088 < unspoilt 54991,54994c50090,50091 < unstable/RT < unstack/DG < unstamped < unsteady/PTR --- > unstable > unsteady/TRP 54996d50092 < unstoppably 55000c50096,50097 < unsure/P --- > unsuitable > unsure 55002d50098 < unswerving/Y 55005d50100 < untenability 55008d50102 < unthoughtful 55013c50107 < untouchable/SM --- > untouchable/MS 55017d50110 < unusably 55020d50112 < unvarying/Y 55022d50113 < unwarrantably 55023a50115 > unwavering 55025d50116 < unwedge 55030,55031d50120 < unwind/B < unwisdom 55035c50124 < unwound/D --- > unwound 55045d50133 < updatability 55050,55051c50138 < upgrade/MGDSBJ < upgradeable --- > upgrade/MGDS 55057,55058c50144,50145 < upholster/ASDG < upholsterer/SM --- > upholster/ASGD > upholsterer/MS 55080d50166 < uprate/DG 55113d50198 < upwelling 55122c50207 < urbanologist/SM --- > urbanologist/MS 55133,55134c50218 < urethritis < urge/MGDSJ --- > urge/MGDS 55156,55157d50239 < useability/M < useable 55168c50250,50251 < usual/UYM --- > usual's > usual/UY 55187c50270 < utter/SDRYTG --- > utter/SDYG 55189a50273 > uveitis 55200c50284 < vacationist/MS --- > vacationist/SM 55215c50299 < vagina/MS --- > vagina/SM 55221a50306 > vagus 55228c50313 < valediction/SM --- > valediction/MS 55241d50325 < validated/U 55243a50328 > validator/S 55253c50338,50339 < value/CAGSDM --- > value's > value/CAGSD 55271d50356 < vanishing/Y 55276d50360 < vanquished/U 55278a50363 > vape/GDS 55287c50372 < vaporware/S --- > vaporware 55295,55296c50380,50381 < variant/ISM < variate/NXS --- > variant/MS > variate/NX 55298d50382 < variational 55312a50397 > varying/U 55315a50401 > vasoconstriction 55333,55334d50418 < vectorization < vectorized 55338c50422 < veg/M --- > veg/SM 55339a50424 > veganism 55347d50431 < vegetational 55358c50442,50443 < veil/UDGSM --- > veil's > veil/UDGS 55363d50447 < veldt/SM 55368d50451 < velor 55371,55373c50454,50456 < velvet/MS < velveteen/MS < velvety/TR --- > velvet/M > velveteen/M > velvety 55377,55378c50460 < vend/DRZGS < vender/KM --- > vend/DGS 55388d50469 < venetian 55398c50479,50480 < vent/DGSM --- > vent's > vent/DGS 55400d50481 < ventilated/U 55402,55403c50483,50484 < ventilator/MS < ventral/Y --- > ventilator/SM > ventral 55410c50491 < venturesome/YP --- > venturesome/PY 55412c50493 < venturous/YP --- > venturous/PY 55427c50508 < verbose/YP --- > verbose/Y 55432c50513 < verdigris/MDSG --- > verdigris/GMDS 55434c50515,50516 < verge/FDSGM --- > verge's > verge/FDSG 55436d50517 < verifiability 55440c50521 < verify/DRSNXZG --- > verify/DSNG 55450d50530 < vermillion/M 55454c50534 < vernacular/SM --- > vernacular/MS 55459a50540 > versa 55464d50544 < versicle 55467c50547 < versify/NZGDRS --- > versify/ZGNDRS 55468a50549,50550 > versioned > versioning 55470a50553 > vert/A 55488c50571,50572 < vest/ILDGSM --- > vest's > vest/ILDGS 55490d50573 < vestibular 55502c50585 < veterinarian/SM --- > veterinarian/MS 55529d50611 < vibrational/Y 55546c50628 < vicinity/SM --- > vicinity/M 55553d50634 < victimless 55558a50640 > vicuña/MS 55564d50645 < videodisk/MS 55567c50648 < videotex/S --- > videotex 55569c50650 < view/AMDRBSZG --- > view/AMDRSZG 55572c50653 < viewfinder/MS --- > viewfinder/SM 55583c50664 < vignettist/SM --- > vignettist/MS 55599d50679 < ville 55607d50686 < vindaloos 55614c50693 < vinegar/SM --- > vinegar/M 55636c50715 < violoncello/SM --- > violoncello/MS 55649c50728 < virologist/MS --- > virologist/SM 55651a50731 > virtualization 55653d50732 < virtuosic 55665,55666c50744 < viscid/I < viscometer --- > viscid 55675c50753 < visibility/ISM --- > visibility/IM 55680,55681c50758,50759 < visit/ASGDM < visitable/U --- > visit's > visit/ASGD 55684d50761 < visited/U 55689c50766 < visualization/MS --- > visualization/SM 55703c50780 < viticulturist/SM --- > viticulturist/MS 55734,55735d50810 < vizir/SM < vizor/SM 55749c50824 < vociferous/PY --- > vociferous/YP 55752d50826 < voe/S 55758a50833 > voicemail/M 55762,55763c50837,50839 < vol < volatile/S --- > voilà > vol/S > volatile 55767,55768d50842 < volcanically < volcanism 55778c50852 < volleyball/SM --- > volleyball/MS 55787,55788c50861 < volumetric < voluminous/PY --- > voluminous/YP 55806d50878 < vorticity 55808c50880,50881 < vote/CGVDSM --- > vote's > vote/CGVDS 55821d50893 < vulcanism 55824d50895 < vulcanologist 55840a50912 > vuvuzela/MS 55844c50916 < wackes --- > wack/RTS 55872d50943 < waggly 55881c50952 < wainscot/SMDGJ --- > wainscot/SJMDG 55883c50954,50956 < wainwright/SM --- > wainscotted > wainscotting/MS > wainwright/MS 55891d50963 < waitpeople 55904c50976 < walk/BMDRZGS --- > walk/MDRZGS 55914d50985 < walla/S 55919d50989 < wallchart 55926c50996 < wallpaper/GSMD --- > wallpaper/SMDG 55938c51008 < wanderlust/MS --- > wanderlust/SM 55951c51021 < wanton/MDRYSPG --- > wanton/MDYSPG 55954c51024 < war/SGM --- > war/SM 55964d51033 < wardship 55967,55968c51036 < warehouseman < warez/S --- > warez 55989,55990c51057 < warned/U < warning/MY --- > warning/M 56010c51077,51078 < wash/BJMDRSZG --- > wasabi > wash/BMDRSZG 56017d51084 < washday 56037c51104 < wastebasket/SM --- > wastebasket/MS 56042a51110 > wastewater 56048d51115 < watched/U 56050c51117 < watchful/PY --- > watchful/YP 56057c51124 < watchtower/MS --- > watchtower/SM 56061a51129 > waterboard/DJSG 56064,56065c51132 < watercolorists < watercourse/MS --- > watercourse/SM 56073d51139 < waterless 56077,56078c51143 < waterman < watermark/MDSG --- > watermark/MDGS 56082c51147 < waterproof/SGMD --- > waterproof/SMDG 56087c51152 < waterspout/MS --- > waterspout/SM 56090c51155 < waterwheel/MS --- > waterwheel/SM 56098,56100c51163 < waveform/S < wavefront < waveguide/S --- > waveform 56107,56108c51170 < wavering/UY < wavily --- > wavering/Y 56123,56124d51184 < wayleave/S < waymarked 56140d51199 < weakly/RT 56147d51205 < weanling 56149c51207 < weaponize/DSG --- > weaponize/GDS 56160d51217 < wearying/Y 56163,56164c51220,51221 < weatherboard/GS < weathercock/SM --- > weatherboard/SG > weathercock/MS 56170,56171c51227,51228 < weatherperson/SM < weatherproof/SGD --- > weatherperson/MS > weatherproof/GSD 56182c51239 < webcast/MS --- > webcast/SMG 56185a51243,51244 > webinar/SM > webisode/MS 56189c51248 < webpage/MS --- > webpage/SM 56203d51261 < weeds/S 56221c51279,51280 < weigh/AGDM --- > weigh's > weigh/AGD 56230c51289 < weightlifter/SM --- > weightlifter/MS 56238d51296 < welch/GDS 56255c51313 < welterweight/MS --- > welterweight/SM 56278,56279d51335 < wetsuit/S < wettable 56286d51341 < whacky/TR 56291d51345 < whales/S 56297c51351 < wharf/SM --- > wharf/M 56314,56315c51368,51369 < wheel/SMDRZG < wheelbarrow/MS --- > wheel/SMDRG > wheelbarrow/SM 56318c51372 < wheelhouse/SM --- > wheelhouse/MS 56320c51374 < wheelwright/SM --- > wheelwright/MS 56364d51417 < whimsey/MS 56382,56383c51435,51436 < whippletree/MS < whippoorwill/SM --- > whippletree/SM > whippoorwill/MS 56390,56391c51443,51445 < whirlybird/MS < whirr/SMDG --- > whirlybird/SM > whirred > whirring 56396c51450,51452 < whisper/JMDRSZG --- > whisky/SM > whiskys > whisper/MDRSZG 56402c51458 < white/SPMY --- > white/SPM 56416c51472 < whitewash/GMDS --- > whitewash/MDSG 56425a51482 > whizz/MDSG 56427,56429d51483 < whizzed < whizzes < whizzing 56437d51490 < whodunnit/SM 56465c51518 < whorehouse/SM --- > whorehouse/MS 56484,56486c51537 < wicketkeeper/S < wicketkeeping < wide/YTRSP --- > wide/YTRP 56506d51556 < wifely/TR 56513d51562 < wiggles/S 56536a51586 > wilful/P 56542d51591 < willie 56544,56545c51593 < willing/UTPY < willinger --- > willing/UPY 56549c51597 < willowy/TR --- > willowy 56561c51609,51610 < wind/UASGM --- > wind's > wind/UASG 56564c51613 < windbreak/ZSMR --- > windbreak/SZMR 56572c51621 < windflower/SM --- > windflower/MS 56575,56576c51624,51625 < winding/SM < windjammer/MS --- > winding's > windjammer/SM 56588c51637 < windshield/MS --- > windshield/SM 56603d51651 < wineskin 56607a51656 > wingnut/SM 56614c51663 < winnable --- > winnable/U 56626d51674 < wintery/RT 56631c51679,51680 < wire/AGDSM --- > wire's > wire/AGDS 56635d51683 < wirer 56646c51694 < wisecrack/GMDS --- > wisecrack/MDSG 56648d51695 < wisely/TR 56653c51700 < wishlist/MS --- > wishlist/SM 56657d51703 < wistaria/SM 56664d51709 < witchdoctor/S 56681c51726 < withstand/SG --- > withstand/GS 56695c51740 < wiz/M --- > wiz/S 56701c51746 < wobble/MGDRS --- > wobble/MGDS 56717c51762 < wolfish/Y --- > wolfish 56739c51784 < wonderful/PY --- > wonderful/YP 56749,56750c51794 < wonton/MS < woo/SZGDRY --- > woo/SZGDR 56771c51815 < woodpecker/SM --- > woodpecker/MS 56778d51821 < woodsmoke 56789c51832 < wool/MNYSX --- > wool/MNX 56792c51835 < woolie/M --- > wooliness 56795d51837 < wooly/TPRSM 56800c51842,51843 < word/AJDSGM --- > word's > word/ADSG 56805c51848 < wording/M --- > wording/SM 56812,56813c51855,51856 < work/ADJSGM < workability/U --- > work's > work/ADJSG 56825c51868 < workforce/SM --- > workforce/M 56828c51871 < working/M --- > working's 56841,56842d51883 < workpeople < workpiece/S 56849d51889 < workspace 56885c51925 < worthless/YP --- > worthless/PY 56888,56889c51928,51929 < worthy/UPRTM < wost --- > worthy's > worthy/UPRT 56906c51946,51947 < wrap/USM --- > wrap's > wrap/US 56928c51969 < wretched/PTRY --- > wretched/TPRY 56932c51973 < wriggly/RT --- > wriggly 56942,56943c51983,51984 < writ/MRSZ < write/ASBJG --- > writ/MRBJSZG > write/S 56945d51985 < writeup 56991,56992d52030 < xreffed < xreffing 57021c52059 < xylophonist/SM --- > xylophonist/MS 57031d52068 < yack/MDSG 57048c52085 < yardmaster/SM --- > yardmaster/MS 57051d52087 < yarmelke/SM 57060d52095 < yawning/Y 57073c52108 < yearning/MY --- > yearning/M 57091c52126 < yeshivah/M --- > yeshivot 57114,57115d52148 < yoghourt/SM < yoghurt/MS 57118d52150 < yogin/SM 57120c52152,52153 < yoke/UGDSM --- > yoke's > yoke/UGDS 57127d52159 < york/RZ 57161c52193 < yuppie/M --- > yuppie/MS 57163d52194 < yuppy/SM 57185,57186c52216 < zenning < zeolites --- > zeolite/S 57196,57198d52225 < zeugma < zigamorph < zigamorphs 57213c52240,52241 < zip/USM --- > zip's > zip/US 57222a52251 > zlotys 57225d52253 < zombi/SM 57228c52256,52257 < zone/AGDSM --- > zone's > zone/AGDS 57239c52268,52270 < zorch/GDS --- > zooplankton > zorch > zoster 57242d52272 < zugzwang 57247a52278,52284 > Ångström/M > éclair/SM > éclat/M > élan/M > émigré/SM > épée/MS > étude/SM diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 9,10d8 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 3,9d2 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 57,59c50 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 89c80 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 112d102 < rmdir "Contents/Resources/searchplugins/" 117d106 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < EAdq3cP+suidvz922TVTeyQXfxQ= --- > a3ZmjyK9ouwVmPbSfagDyHLtjuU= 33c33 < snBudnonqTIuHZhxbuw75UcXCgk= --- > 5FPUQjYafQZUnNSRxOn9yAG4qo8= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < 0RMHz4mUdmxW0Ke9vefuoOzRPtU= --- > 6025wgzl/3LFfHQDIn6i3lGV66Q= 229c229 < H8c74Ogi5Dca4fdA/NJauAhwRn0= --- > 9mnqpkuNL2f6pQAGpiV15eJrBDc= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 321c321 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 325c325 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 329c329 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 333c333 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 337c337 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 341c341 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 345c345 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 349c349 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 353c353 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 357c357 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 361c361 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 365c365 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 373c373 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 377c377 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 381c381 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 385c385 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 389c389,397 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 404,408c412 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 410,414c414 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > O/nBtjC7XGgBwkh40HzGTgtHeBU= 442c442 < GMUrzQwWrXkM6FNrFXiy2jShV4w= --- > 7bb9z9F4aWTe+FcDUvUNTTwH6cs= 446c446 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 450c450 < GvvbEX+dXkOyCsJq3Gjo4ny3h7A= --- > 6X6xGQjY1s9Biuz3AnHYUML4DBg= 454c454 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 604,631d603 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 660c632 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 669c641 < ebAYiG65Nm8wcHwEDZea8fL60nE= --- > d3ffPM03L1GZ+AOQMBO08cDCQjo= 678c650 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 687c659 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 696c668 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 701c673 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 705c677 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 714c686 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 723c695 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 732c704 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 741c713 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 750c722 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 759c731 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 768c740 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 777c749 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 786c758 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 795c767 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 802c774 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 806c778 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 818c790 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 822c794 < EAdq3cP+suidvz922TVTeyQXfxQ= --- > a3ZmjyK9ouwVmPbSfagDyHLtjuU= 826c798 < snBudnonqTIuHZhxbuw75UcXCgk= --- > 5FPUQjYafQZUnNSRxOn9yAG4qo8= 830c802 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 834c806 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 838c810 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 842c814 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 846c818 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 850c822 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 854c826 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 858c830 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 862c834 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 866c838 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 870c842 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 874c846 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 878c850 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 882c854 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 886c858 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 890c862 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 894c866 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 898c870 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 902c874 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 906c878 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 910c882 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 914c886 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 918c890 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 922c894 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 926c898 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 930c902 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 934c906 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 938c910 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 942c914 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 946c918 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 950c922 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 954c926 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 958c930 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 962c934 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 966c938 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 970c942 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 974c946 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 978c950 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 982c954 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 986c958 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 990c962 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 994c966 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 998c970 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1002c974 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1010c982 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1014c986 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1018c990 < 0RMHz4mUdmxW0Ke9vefuoOzRPtU= --- > 6025wgzl/3LFfHQDIn6i3lGV66Q= 1022c994 < H8c74Ogi5Dca4fdA/NJauAhwRn0= --- > 9mnqpkuNL2f6pQAGpiV15eJrBDc= 1026c998 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1030c1002 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1034c1006 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1038c1010 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1042c1014 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1046c1018 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1050c1022 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1054c1026 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1058c1030 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1062c1034 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1066c1038 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1070c1042 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1074c1046 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1078c1050 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1082c1054 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1094c1066 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1098c1070 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1106c1078 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1110c1082 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1114c1086 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1118c1090 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1122c1094 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1126c1098 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1130c1102 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1134c1106 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1138c1110 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1142c1114 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1146c1118 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1150c1122 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1154c1126 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1158c1130 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1166c1138 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1170c1142 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1174c1146 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1178c1150 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1182c1154,1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1197,1201c1177 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1203,1207c1179 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > O/nBtjC7XGgBwkh40HzGTgtHeBU= 1235c1207 < GMUrzQwWrXkM6FNrFXiy2jShV4w= --- > 7bb9z9F4aWTe+FcDUvUNTTwH6cs= 1239c1211 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1243c1215 < GvvbEX+dXkOyCsJq3Gjo4ny3h7A= --- > 6X6xGQjY1s9Biuz3AnHYUML4DBg= 1247c1219 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1397,1424d1368 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48018713 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:36 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48018712 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:36 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48018711 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:36 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48018663 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:36 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48018662 8 -rw-r--r-- 1 cltbld staff 1670 May 9 17:36 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48018661 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:36 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48018660 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:36 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48018659 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:36 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48018658 8 -rw-r--r-- 1 cltbld staff 1338 May 9 17:36 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48018657 8 -rw-r--r-- 1 cltbld staff 1363 May 9 17:36 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.1.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.1/20160323055719/Darwin_x86_64-gcc3-u-i386-x86_64/ru/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.1/20160323055719/Darwin_x86_64-gcc3-u-i386-x86_64/ru/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.1/20160323055719/Darwin_x86_64-gcc3-u-i386-x86_64/ru/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:36:34-- https://aus4.mozilla.org/update/3/Thunderbird/38.7.1/20160323055719/Darwin_x86_64-gcc3-u-i386-x86_64/ru/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:36:34 GMT Keep-Alive: timeout=5, max=671 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 939 Length: 939 [text/xml] Saving to: 'update.xml' 0K 100% 128M=0s 2016-05-09 17:36:34 (128 MB/s) - 'update.xml' saved [939/939] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ru/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ru/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:36:34-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ru/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68378347 Connection: keep-alive Date: Tue, 10 May 2016 00:22:16 GMT x-amz-replication-status: COMPLETED x-amz-version-id: s6HNFBZb1EsasNf4wXlcBaYfBhFzwqw6 Last-Modified: Tue, 03 May 2016 15:52:11 GMT ETag: "d1da76617257d98fea77274053b75289" Accept-Ranges: bytes Server: AmazonS3 Age: 860 X-Cache: Hit from cloudfront Via: 1.1 02192a27c967e955f8c815efa939bfc8.cloudfront.net (CloudFront) X-Amz-Cf-Id: Ai1K2jirLEkaQbFadap0VDwkmovyyCqjWFic73dqAnTM25PCYvT2Ew== Length: 68378347 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 25.8M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 59.8M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 96.5M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 99.2M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 94.4M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 91.0M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 111M 1s 21504K ........ ........ ........ ........ ........ ........ 36% 104M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 108M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 110M 0s 30720K ........ ........ ........ ........ ........ ........ 50% 109M 0s 33792K ........ ........ ........ ........ ........ ........ 55% 86.5M 0s 36864K ........ ........ ........ ........ ........ ........ 59% 92.2M 0s 39936K ........ ........ ........ ........ ........ ........ 64% 86.8M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 67.1M 0s 46080K ........ ........ ........ ........ ........ ........ 73% 70.2M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 76.5M 0s 52224K ........ ........ ........ ........ ........ ........ 82% 55.8M 0s 55296K ........ ........ ........ ........ ........ ........ 87% 63.4M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 56.2M 0s 61440K ........ ........ ........ ........ ........ ........ 96% 57.4M 0s 64512K ........ ........ ........ ........ ... 100% 62.0M=0.9s 2016-05-09 17:36:36 (72.3 MB/s) - 'update/complete.mar' saved [68378347/68378347] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.1/mac/ru/Thunderbird 38.7.1.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.7.1.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.1/mac/ru/Thunderbird 38.7.1.dmg'] --2016-05-09 17:36:37-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.1/mac/ru/Thunderbird%2038.7.1.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70380499 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:36:37 GMT ETag: "2ab0c6b4057d394c1ab0763c549a0066" Last-Modified: Thu, 24 Mar 2016 20:49:21 GMT x-amz-replication-status: COMPLETED x-amz-version-id: hH.Yq.A1Kzf21rdmXNNDh0EQ19fdvPCm X-Cache: Miss from cloudfront Via: 1.1 0ffb9964022445351e635c66ad0176ff.cloudfront.net (CloudFront) X-Amz-Cf-Id: OybCgvA7Lwqk2fqjY9YA4jbvX1gkqa_fKib8smERE29EWXc447STpw== Length: 70380499 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.7.1.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.59M 40s 3072K ........ ........ ........ ........ ........ ........ 8% 5.13M 25s 6144K ........ ........ ........ ........ ........ ........ 13% 7.38M 19s 9216K ........ ........ ........ ........ ........ ........ 17% 10.9M 14s 12288K ........ ........ ........ ........ ........ ........ 22% 841K 24s 15360K ........ ........ ........ ........ ........ ........ 26% 2.31M 22s 18432K ........ ........ ........ ........ ........ ........ 31% 7.49M 19s 21504K ........ ........ ........ ........ ........ ........ 35% 10.6M 16s 24576K ........ ........ ........ ........ ........ ........ 40% 13.2M 13s 27648K ........ ........ ........ ........ ........ ........ 44% 14.3M 11s 30720K ........ ........ ........ ........ ........ ........ 49% 13.8M 10s 33792K ........ ........ ........ ........ ........ ........ 53% 17.8M 8s 36864K ........ ........ ........ ........ ........ ........ 58% 17.5M 7s 39936K ........ ........ ........ ........ ........ ........ 62% 17.5M 6s 43008K ........ ........ ........ ........ ........ ........ 67% 18.5M 5s 46080K ........ ........ ........ ........ ........ ........ 71% 24.3M 4s 49152K ........ ........ ........ ........ ........ ........ 75% 22.1M 3s 52224K ........ ........ ........ ........ ........ ........ 80% 26.6M 3s 55296K ........ ........ ........ ........ ........ ........ 84% 28.7M 2s 58368K ........ ........ ........ ........ ........ ........ 89% 18.1M 1s 61440K ........ ........ ........ ........ ........ ........ 93% 31.2M 1s 64512K ........ ........ ........ ........ ........ ........ 98% 37.1M 0s 67584K ........ ........ . 100% 34.9M=11s 2016-05-09 17:36:48 (6.12 MB/s) - 'Thunderbird 38.7.1.dmg' saved [70380499/70380499] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ru/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ru/Thunderbird 45.1.0.dmg'] --2016-05-09 17:36:49-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ru/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77741933 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:22:36 GMT ETag: "11dd8df346dc9891454c0ada33ae4aab" Last-Modified: Mon, 09 May 2016 21:22:54 GMT x-amz-replication-status: COMPLETED x-amz-version-id: XIJYvjhtFMJeJsYkgf.B2Vm1naxfCeWA Age: 853 X-Cache: Hit from cloudfront Via: 1.1 6be093c16fa776bbd432bbe9bd03f6af.cloudfront.net (CloudFront) X-Amz-Cf-Id: hlh2_OqgIx8k_i490k6a5CRB_LlPXo649cmWHgA3j0Wce91M9pCIKg== Length: 77741933 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 47.4M 2s 3072K ........ ........ ........ ........ ........ ........ 8% 93.5M 1s 6144K ........ ........ ........ ........ ........ ........ 12% 102M 1s 9216K ........ ........ ........ ........ ........ ........ 16% 92.0M 1s 12288K ........ ........ ........ ........ ........ ........ 20% 109M 1s 15360K ........ ........ ........ ........ ........ ........ 24% 112M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 111M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 112M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 112M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 106M 0s 30720K ........ ........ ........ ........ ........ ........ 44% 108M 0s 33792K ........ ........ ........ ........ ........ ........ 48% 112M 0s 36864K ........ ........ ........ ........ ........ ........ 52% 112M 0s 39936K ........ ........ ........ ........ ........ ........ 56% 110M 0s 43008K ........ ........ ........ ........ ........ ........ 60% 105M 0s 46080K ........ ........ ........ ........ ........ ........ 64% 111M 0s 49152K ........ ........ ........ ........ ........ ........ 68% 111M 0s 52224K ........ ........ ........ ........ ........ ........ 72% 112M 0s 55296K ........ ........ ........ ........ ........ ........ 76% 112M 0s 58368K ........ ........ ........ ........ ........ ........ 80% 112M 0s 61440K ........ ........ ........ ........ ........ ........ 84% 112M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 112M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 112M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 113M 0s 73728K ........ ........ ........ ........ .. 100% 113M=0.7s 2016-05-09 17:36:50 (103 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77741933/77741933] installing downloads/Thunderbird 38.7.1.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yandex.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/yandex-slovari.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ru.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/priceru.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/ozonru.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/duckduckgo-ru.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/ru.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/ru.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/ru.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/ru.lproj/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yandex.xml PREPARE ADD Contents/Resources/searchplugins/yandex-slovari.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-ru.xml PREPARE ADD Contents/Resources/searchplugins/priceru.xml PREPARE ADD Contents/Resources/searchplugins/ozonru.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/duckduckgo-ru.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/ru.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/ru.dic PREPARE ADD Contents/Resources/dictionaries/ru.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yandex.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/yandex-slovari.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ru.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/priceru.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/ozonru.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/duckduckgo-ru.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/ru.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/ru.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/ru.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/ru.lproj/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yandex.xml EXECUTE ADD Contents/Resources/searchplugins/yandex-slovari.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-ru.xml EXECUTE ADD Contents/Resources/searchplugins/priceru.xml EXECUTE ADD Contents/Resources/searchplugins/ozonru.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/duckduckgo-ru.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/ru.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/ru.dic EXECUTE ADD Contents/Resources/dictionaries/ru.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yandex.xml FINISH REMOVEFILE Contents/Resources/searchplugins/yandex-slovari.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-ru.xml FINISH REMOVEFILE Contents/Resources/searchplugins/priceru.xml FINISH REMOVEFILE Contents/Resources/searchplugins/ozonru.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/duckduckgo-ru.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/ru.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/ru.dic FINISH REMOVEFILE Contents/Resources/dictionaries/ru.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ru.lproj/ non-fatal error removing directory: Contents/Resources/ru.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yandex.xml FINISH ADD Contents/Resources/searchplugins/yandex-slovari.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-ru.xml FINISH ADD Contents/Resources/searchplugins/priceru.xml FINISH ADD Contents/Resources/searchplugins/ozonru.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/duckduckgo-ru.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/ru.lproj/InfoPlist.strings FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/ru.dic FINISH ADD Contents/Resources/dictionaries/ru.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,11d3 < remove "Contents/Resources/searchplugins/yandex.xml" < remove "Contents/Resources/searchplugins/yandex-slovari.xml" < remove "Contents/Resources/searchplugins/wikipedia-ru.xml" < remove "Contents/Resources/searchplugins/priceru.xml" < remove "Contents/Resources/searchplugins/ozonru.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/duckduckgo-ru.xml" < remove "Contents/Resources/searchplugins/bing.xml" 60,62c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 93c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 119d108 < rmdir "Contents/Resources/searchplugins/" 125d113 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < CRSJpPTujeynjvL9ZOCsfHlMgGM= --- > +pPNf2d5uXjBy+DGeudRL0MpDT8= 229c229 < WQYHtUOccvZ5Cv/Nv0g2lR7GFZI= --- > 8aMR0Hz7f7HtpAmhuRKhtaececU= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < Ypvl/Mao16isAGHVHeI4yvcxlmE= --- > V1iabLLcHUS7aWSTaGn+3SstrZM= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 395c395 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 397c397 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 401c401 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 403c403 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 405c405 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 409c409 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 437c437 < 8Nqyh0bbMhHUnv0HquLkFzukdeY= --- > bhDInzTifDoElUrIZUm7uI/4kcc= 441c441 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 445c445 < rjxpqJmPp2h7JhEY7Zj3lttHwCE= --- > NQoyKEFqjung4DQq7rxtOF4ZRzQ= 449c449 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,639d607 < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/duckduckgo-ru.xml < < rTtp/63jYMu0VW0M7PNKtVUZ+7Q= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/ozonru.xml < < VR8fK/+Ezedg8w885i9+FUemORU= < < Resources/searchplugins/priceru.xml < < CM4Hq8wL4sh8QDE3DbDCQTUCBqs= < < Resources/searchplugins/wikipedia-ru.xml < < TnK10ekNrlvFAg/XrxxyuiEbFDI= < < Resources/searchplugins/yandex-slovari.xml < < nGw4UCa+KcosnBsVAYlS3EBQy8g= < < Resources/searchplugins/yandex.xml < < SfvkHxwX3/lGu9dC4xe9wW4/4qc= < 668c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 677c645 < 5FfFBZWPm6H3/NYHL9DWeTIRFWE= --- > 4UoijNWSZSU28+LQ4IHJCAZKHQs= 686c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 695c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 704c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 709c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 713c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 722c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 731c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 740c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 749c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 758c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 767c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 776c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 785c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 794c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 803c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 810c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 814c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 826c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 838c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 842c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 846c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 850c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 854c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 858c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 862c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 866c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 870c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 874c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 878c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 882c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 886c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 890c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 894c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 898c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 902c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 906c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 910c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 914c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 918c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 922c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 926c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 930c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 934c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 938c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 942c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 946c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 950c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 954c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 958c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 962c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 966c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 970c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 974c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 978c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 982c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 986c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 990c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 994c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 998c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 1002c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 1006c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1010c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1018c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1022c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1026c994 < CRSJpPTujeynjvL9ZOCsfHlMgGM= --- > +pPNf2d5uXjBy+DGeudRL0MpDT8= 1030c998 < WQYHtUOccvZ5Cv/Nv0g2lR7GFZI= --- > 8aMR0Hz7f7HtpAmhuRKhtaececU= 1034c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1038c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1042c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1046c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1050c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1054c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1058c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1062c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1066c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1070c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1074c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1078c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1082c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1086c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1090c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1102c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1106c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1114c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1118c1086 < Ypvl/Mao16isAGHVHeI4yvcxlmE= --- > V1iabLLcHUS7aWSTaGn+3SstrZM= 1122c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1126c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1130c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1134c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1138c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1142c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1146c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1150c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1154c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1158c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1162c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1166c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1170c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1178c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1182c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1186c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1190c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1194c1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1196c1164 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1198c1166 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1200c1168 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1202c1170 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1204c1172 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1206c1174 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1208c1176 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1210c1178 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1238c1206 < 8Nqyh0bbMhHUnv0HquLkFzukdeY= --- > bhDInzTifDoElUrIZUm7uI/4kcc= 1242c1210 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1246c1214 < rjxpqJmPp2h7JhEY7Zj3lttHwCE= --- > NQoyKEFqjung4DQq7rxtOF4ZRzQ= 1250c1218 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1409,1440d1376 < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/duckduckgo-ru.xml < < rTtp/63jYMu0VW0M7PNKtVUZ+7Q= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/ozonru.xml < < VR8fK/+Ezedg8w885i9+FUemORU= < < Resources/searchplugins/priceru.xml < < CM4Hq8wL4sh8QDE3DbDCQTUCBqs= < < Resources/searchplugins/wikipedia-ru.xml < < TnK10ekNrlvFAg/XrxxyuiEbFDI= < < Resources/searchplugins/yandex-slovari.xml < < nGw4UCa+KcosnBsVAYlS3EBQy8g= < < Resources/searchplugins/yandex.xml < < SfvkHxwX3/lGu9dC4xe9wW4/4qc= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48019474 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:37 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48019473 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:37 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48019472 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:37 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48019422 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:37 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48019421 8 -rw-r--r-- 1 cltbld staff 1664 May 9 17:37 source/Thunderbird.app/Contents/Resources/searchplugins/duckduckgo-ru.xml 48019420 8 -rw-r--r-- 1 cltbld staff 2371 May 9 17:37 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48019419 16 -rw-r--r-- 1 cltbld staff 5804 May 9 17:37 source/Thunderbird.app/Contents/Resources/searchplugins/ozonru.xml 48019418 8 -rw-r--r-- 1 cltbld staff 1370 May 9 17:37 source/Thunderbird.app/Contents/Resources/searchplugins/priceru.xml 48019417 24 -rw-r--r-- 1 cltbld staff 9413 May 9 17:37 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-ru.xml 48019416 8 -rw-r--r-- 1 cltbld staff 1794 May 9 17:37 source/Thunderbird.app/Contents/Resources/searchplugins/yandex-slovari.xml 48019415 16 -rw-r--r-- 1 cltbld staff 7674 May 9 17:37 source/Thunderbird.app/Contents/Resources/searchplugins/yandex.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.1.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.0/20160310150025/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.0/20160310150025/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.0/20160310150025/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:37:45-- https://aus4.mozilla.org/update/3/Thunderbird/38.7.0/20160310150025/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:37:45 GMT Keep-Alive: timeout=5, max=913 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 939 Length: 939 [text/xml] Saving to: 'update.xml' 0K 100% 112M=0s 2016-05-09 17:37:45 (112 MB/s) - 'update.xml' saved [939/939] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/de/thunderbird-38.8.0.complete.mar' from cache... Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.0/mac/de/Thunderbird 38.7.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.7.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.0/mac/de/Thunderbird 38.7.0.dmg'] --2016-05-09 17:37:46-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.0/mac/de/Thunderbird%2038.7.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69848224 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:37:47 GMT ETag: "bd16ac8c5174b6963299056cd54f4d91" Last-Modified: Sun, 13 Mar 2016 23:46:10 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 3GkMVllj3y.l.sXYC6HkxUEJ9mJgBC9q X-Cache: Miss from cloudfront Via: 1.1 0576b942ae9f4fc9c0b62b0736e9bfd6.cloudfront.net (CloudFront) X-Amz-Cf-Id: 2iHBFrYfjt-Y4j1I1tjEe7otM95jROpVN6nqbKu0eWwrZTaA9SpVGw== Length: 69848224 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.7.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.74M 37s 3072K ........ ........ ........ ........ ........ ........ 9% 3.93M 25s 6144K ........ ........ ........ ........ ........ ........ 13% 4.86M 20s 9216K ........ ........ ........ ........ ........ ........ 18% 5.47M 17s 12288K ........ ........ ........ ........ ........ ........ 22% 5.36M 14s 15360K ........ ........ ........ ........ ........ ........ 27% 5.00M 13s 18432K ........ ........ ........ ........ ........ ........ 31% 5.49M 12s 21504K ........ ........ ........ ........ ........ ........ 36% 5.50M 10s 24576K ........ ........ ........ ........ ........ ........ 40% 5.30M 9s 27648K ........ ........ ........ ........ ........ ........ 45% 5.58M 9s 30720K ........ ........ ........ ........ ........ ........ 49% 6.54M 8s 33792K ........ ........ ........ ........ ........ ........ 54% 7.86M 7s 36864K ........ ........ ........ ........ ........ ........ 58% 9.15M 6s 39936K ........ ........ ........ ........ ........ ........ 63% 10.2M 5s 43008K ........ ........ ........ ........ ........ ........ 67% 11.4M 4s 46080K ........ ........ ........ ........ ........ ........ 72% 12.8M 3s 49152K ........ ........ ........ ........ ........ ........ 76% 13.2M 3s 52224K ........ ........ ........ ........ ........ ........ 81% 12.7M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 8.47M 2s 58368K ........ ........ ........ ........ ........ ........ 90% 11.6M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 12.1M 1s 64512K ........ ........ ........ ........ ........ ........ 99% 9.06M 0s 67584K ........ . 100% 18.0M=11s 2016-05-09 17:37:58 (6.25 MB/s) - 'Thunderbird 38.7.0.dmg' saved [69848224/69848224] Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/de/Thunderbird 45.1.0.dmg' from cache... installing downloads/Thunderbird 38.7.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-de.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-de.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter-de.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay-de.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom-de.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/de.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/de.lproj/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo-de.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-de.xml PREPARE ADD Contents/Resources/searchplugins/twitter-de.xml PREPARE ADD Contents/Resources/searchplugins/eBay-de.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom-de.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/de.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-de.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-de.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter-de.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay-de.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom-de.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/de.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/de.lproj/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo-de.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-de.xml EXECUTE ADD Contents/Resources/searchplugins/twitter-de.xml EXECUTE ADD Contents/Resources/searchplugins/eBay-de.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom-de.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/de.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-de.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-de.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter-de.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay-de.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom-de.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/de.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/de.lproj/ non-fatal error removing directory: Contents/Resources/de.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo-de.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-de.xml FINISH ADD Contents/Resources/searchplugins/twitter-de.xml FINISH ADD Contents/Resources/searchplugins/eBay-de.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom-de.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/de.lproj/InfoPlist.strings FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,9d3 < remove "Contents/Resources/searchplugins/yahoo-de.xml" < remove "Contents/Resources/searchplugins/wikipedia-de.xml" < remove "Contents/Resources/searchplugins/twitter-de.xml" < remove "Contents/Resources/searchplugins/eBay-de.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/amazondotcom-de.xml" 57,59c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 89c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 115d106 < rmdir "Contents/Resources/searchplugins/" 120d110 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 34c34 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 38c38 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 42c42 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 46c46 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 50c50 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 54c54 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 58c58 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 62c62 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 66c66 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 70c70 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 74c74 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 78c78 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 82c82 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 86c86 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 90c90 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 94c94 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 98c98 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 102c102 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 106c106 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 110c110 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 114c114 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 118c118 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 122c122 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 126c126 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 130c130 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 134c134 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 138c138 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 142c142 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 146c146 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 150c150 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 154c154 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 158c158 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 162c162 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 166c166 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 170c170 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 174c174 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 178c178 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 182c182 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 186c186 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 190c190 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 194c194 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 198c198 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 202c202 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 206c206 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 210c210 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 218c218 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 222c222 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 226c226 < RnyHJ/RR6vPG3ztKb7IYV9XnWNw= --- > AxB1lgFdUjxd787pZU1uDnun6kw= 230c230 < 06K7RM+B6YYr19N0npI09hJwsYA= --- > 1UVkACQqTdXbSwIczKoEw7j9+jk= 234c234 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 238c238 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 242c242 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 246c246 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 250c250 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 254c254 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 258c258 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 262c262 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 266c266 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 270c270 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 274c274 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 278c278 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 282c282 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 286c286 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 290c290 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 302c302 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 306c306 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 314c314 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 318c318 < fImjwMhmZAnvSZ8y3sfHBLrAsp8= --- > 0giR105dPTDya/zJ71RFAuqUAX8= 322c322 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 326c326 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 330c330 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 334c334 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 338c338 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 342c342 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 346c346 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 350c350 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 354c354 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 358c358 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 362c362 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 366c366 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 370c370 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 378c378 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 382c382 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 386c386 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 390c390 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 394c394 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 396c396 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 398c398 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 400c400 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 402c402 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 404c404 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 406c406 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 408c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 410c410 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < K+JYnQgsC3UO6xPnSuonu6AcAro= --- > bwXqtvrQirE8S0nt9M/i4LfOe30= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < 8tOK5zGFTQ1AeqBNROlz0erOTqg= --- > 19TqbLGdtCvnAUH20rheEucP3Ck= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,623d599 < Resources/searchplugins/amazondotcom-de.xml < < ukLbNJ4zXBSobkwp8N3Xgy4+HNQ= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay-de.xml < < H+aNvr8b2PjQ4OR4osIHYLyI0x0= < < Resources/searchplugins/twitter-de.xml < < Bb5Gh4oWJInLJSXBD2D8oSf11TQ= < < Resources/searchplugins/wikipedia-de.xml < < 2j1icJe4JYwCF6VOrtG5TfHO7cE= < < Resources/searchplugins/yahoo-de.xml < < I/kLrxke3gGjPzpvZI4wsyTf2X8= < 652c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 661c637 < VRC1V26jvlyKJFqNdshuLSc1qtU= --- > poY/SX7VlJKV86Qnv87Z7ScyiUs= 670c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 679c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 688c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 693c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 697c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 706c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 715c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 724c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 733c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 742c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 751c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 760c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 769c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 778c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 787c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 794c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 798c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 819c795 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 823c799 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 827c803 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 831c807 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 835c811 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 839c815 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 843c819 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 847c823 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 851c827 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 855c831 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 859c835 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 863c839 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 867c843 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 871c847 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 875c851 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 879c855 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 883c859 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 887c863 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 891c867 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 895c871 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 899c875 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 903c879 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 907c883 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 911c887 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 915c891 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 919c895 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 923c899 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 927c903 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 931c907 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 935c911 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 939c915 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 943c919 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 947c923 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 951c927 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 955c931 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 959c935 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 963c939 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 967c943 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 971c947 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 975c951 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 979c955 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 983c959 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 987c963 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 991c967 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 995c971 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1003c979 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1007c983 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1011c987 < RnyHJ/RR6vPG3ztKb7IYV9XnWNw= --- > AxB1lgFdUjxd787pZU1uDnun6kw= 1015c991 < 06K7RM+B6YYr19N0npI09hJwsYA= --- > 1UVkACQqTdXbSwIczKoEw7j9+jk= 1019c995 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1023c999 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1027c1003 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1031c1007 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1035c1011 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1039c1015 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1043c1019 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1047c1023 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1051c1027 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1055c1031 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1059c1035 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1063c1039 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1067c1043 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1071c1047 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1075c1051 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1087c1063 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1091c1067 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1099c1075 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1103c1079 < fImjwMhmZAnvSZ8y3sfHBLrAsp8= --- > 0giR105dPTDya/zJ71RFAuqUAX8= 1107c1083 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1111c1087 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1115c1091 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1119c1095 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1123c1099 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1127c1103 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1131c1107 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1135c1111 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1139c1115 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1143c1119 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1147c1123 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1151c1127 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1155c1131 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1163c1139 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1167c1143 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1171c1147 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1175c1151 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1179c1155 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1181c1157 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1183c1159 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1185c1161 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1187c1163 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1189c1165 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1191c1167 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1193c1169 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1195c1171 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1223c1199 < K+JYnQgsC3UO6xPnSuonu6AcAro= --- > bwXqtvrQirE8S0nt9M/i4LfOe30= 1227c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1231c1207 < 8tOK5zGFTQ1AeqBNROlz0erOTqg= --- > 19TqbLGdtCvnAUH20rheEucP3Ck= 1235c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1385,1408d1360 < Resources/searchplugins/amazondotcom-de.xml < < ukLbNJ4zXBSobkwp8N3Xgy4+HNQ= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay-de.xml < < H+aNvr8b2PjQ4OR4osIHYLyI0x0= < < Resources/searchplugins/twitter-de.xml < < Bb5Gh4oWJInLJSXBD2D8oSf11TQ= < < Resources/searchplugins/wikipedia-de.xml < < 2j1icJe4JYwCF6VOrtG5TfHO7cE= < < Resources/searchplugins/yahoo-de.xml < < I/kLrxke3gGjPzpvZI4wsyTf2X8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48020220 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48020219 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48020218 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48020170 8 -rw-r--r-- 1 cltbld staff 1298 May 9 17:38 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom-de.xml 48020169 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:38 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48020168 8 -rw-r--r-- 1 cltbld staff 1153 May 9 17:38 source/Thunderbird.app/Contents/Resources/searchplugins/eBay-de.xml 48020167 8 -rw-r--r-- 1 cltbld staff 890 May 9 17:38 source/Thunderbird.app/Contents/Resources/searchplugins/twitter-de.xml 48020166 8 -rw-r--r-- 1 cltbld staff 1128 May 9 17:38 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-de.xml 48020165 8 -rw-r--r-- 1 cltbld staff 1046 May 9 17:38 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-de.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.0/20160310150025/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.0/20160310150025/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.0/20160310150025/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:38:52-- https://aus4.mozilla.org/update/3/Thunderbird/38.7.0/20160310150025/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:38:52 GMT Keep-Alive: timeout=5, max=919 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 948 Length: 948 [text/xml] Saving to: 'update.xml' 0K 100% 129M=0s 2016-05-09 17:38:52 (129 MB/s) - 'update.xml' saved [948/948] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-US/thunderbird-38.8.0.complete.mar' from cache... Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.0/mac/en-US/Thunderbird 38.7.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.7.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.0/mac/en-US/Thunderbird 38.7.0.dmg'] --2016-05-09 17:38:54-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.0/mac/en-US/Thunderbird%2038.7.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70074746 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:38:54 GMT ETag: "89118ae8d17ec271dc577571e759e69b" Last-Modified: Sun, 13 Mar 2016 23:46:18 GMT x-amz-replication-status: COMPLETED x-amz-version-id: Sc.gBO8tKTXgZymGlwZAwawBF.0VTNag X-Cache: Miss from cloudfront Via: 1.1 95da1452a75435200220a7075ca3893f.cloudfront.net (CloudFront) X-Amz-Cf-Id: sAqpzZIYS53HBHVuQ3xqG4rwxVWHfEA9TT9rPPf4UCR5sUch-lDxIQ== Length: 70074746 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.7.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.63M 39s 3072K ........ ........ ........ ........ ........ ........ 8% 6.10M 24s 6144K ........ ........ ........ ........ ........ ........ 13% 9.95M 17s 9216K ........ ........ ........ ........ ........ ........ 17% 10.8M 13s 12288K ........ ........ ........ ........ ........ ........ 22% 13.8M 11s 15360K ........ ........ ........ ........ ........ ........ 26% 14.9M 9s 18432K ........ ........ ........ ........ ........ ........ 31% 12.6M 8s 21504K ........ ........ ........ ........ ........ ........ 35% 22.2M 7s 24576K ........ ........ ........ ........ ........ ........ 40% 12.2M 6s 27648K ........ ........ ........ ........ ........ ........ 44% 14.0M 5s 30720K ........ ........ ........ ........ ........ ........ 49% 16.2M 4s 33792K ........ ........ ........ ........ ........ ........ 53% 16.4M 4s 36864K ........ ........ ........ ........ ........ ........ 58% 17.1M 3s 39936K ........ ........ ........ ........ ........ ........ 62% 18.5M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 16.9M 2s 46080K ........ ........ ........ ........ ........ ........ 71% 18.9M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 18.2M 2s 52224K ........ ........ ........ ........ ........ ........ 80% 18.2M 1s 55296K ........ ........ ........ ........ ........ ........ 85% 19.8M 1s 58368K ........ ........ ........ ........ ........ ........ 89% 14.1M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 21.9M 0s 64512K ........ ........ ........ ........ ........ ........ 98% 27.7M 0s 67584K ........ ..... 100% 19.0M=6.2s 2016-05-09 17:39:01 (10.8 MB/s) - 'Thunderbird 38.7.0.dmg' saved [70074746/70074746] Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/en-US/Thunderbird 45.1.0.dmg' from cache... installing downloads/Thunderbird 38.7.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/en.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/dictionaries/en-US.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/en-US.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/en.lproj/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/en.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/en-US.dic PREPARE ADD Contents/Resources/dictionaries/en-US.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/en.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/dictionaries/en-US.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/en-US.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/en.lproj/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/en.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/en-US.dic EXECUTE ADD Contents/Resources/dictionaries/en-US.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/en.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/dictionaries/en-US.dic FINISH REMOVEFILE Contents/Resources/dictionaries/en-US.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/en.lproj/ non-fatal error removing directory: Contents/Resources/en.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/en.lproj/InfoPlist.strings FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/en-US.dic FINISH ADD Contents/Resources/dictionaries/en-US.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/dictionaries/en-US.aff target/Thunderbird.app/Contents/Resources/dictionaries/en-US.aff 1,4d0 < # This Source Code Form is subject to the terms of the Mozilla Public < # License, v. 2.0. If a copy of the MPL was not distributed with this < # file, You can obtain one at http://mozilla.org/MPL/2.0/. < diff -r source/Thunderbird.app/Contents/Resources/dictionaries/en-US.dic target/Thunderbird.app/Contents/Resources/dictionaries/en-US.dic 1c1 < 57246 --- > 52283 34c34 < ACLU --- > ACLU/M 42c42 < AFAIK/S --- > AFAIK 44c44 < AFC --- > AFC/M 50d49 < AIDSes 54a54 > AMD/M 56c56 < ANZUS --- > ANZUS/M 58c58 < AP --- > AP/M 60c60,61 < API/MS --- > APC > API/SM 74c75,76 < AWACS --- > AVI > AWACS/M 78c80 < Aachen --- > Aachen/M 80,85c82,83 < Aaren/M < Aarika/M < Aaron < Ab/M < Abagael/M < Abagail/M --- > Aaron/M > Ab's 88,91c86 < Abbasid < Abbe/M < Abbey/M < Abbi/M --- > Abbasid/M 93d87 < Abbot/M 96d89 < Abbye/M 102c95 < Abelard --- > Abelard/M 106,107d98 < Abeu/M < Abey/M 110,113c101,102 < Abigael/M < Abigail < Abigale/M < Abilene --- > Abigail/M > Abilene/M 118d106 < Abrahan/M 121,123c109,111 < Abran/M < Absalom < Abuja --- > Abrams/M > Absalom/M > Abuja/M 134c122 < Achernar --- > Achernar/M 141c129 < Actaeon --- > Actaeon/M 143,144c131,132 < Acton < Acts --- > Acton/M > Acts/M 146,147c134 < Acura/MS < Ad/MN --- > Acura/M 153a141 > Adams/M 155c143 < Adana --- > Adana/M 157d144 < Adara/M 160c147 < Addams --- > Addams/M 163d149 < Addia/M 165c151 < Addison --- > Addison/M 175d160 < Adelice/M 177d161 < Adelind/M 179d162 < Adella/M 183c166 < Adenauer --- > Adenauer/M 188d170 < Adiana/M 191c173 < Adirondack/MS --- > Adirondack/SM 195c177 < Adler --- > Adler/M 198d179 < Ado/M 203d183 < Adolpho/M 206,210c186 < Adora/M < Adore/M < Adoree/M < Adorne/M < Adrea/M --- > Adore's 212,213c188,189 < Adria/MX < Adrian --- > Adria/M > Adrian/M 221d196 < Adriena/M 231,233d205 < Aeriel/M < Aeriela/M < Aeriell/M 238a211 > Afghani/M 247c220 < Afrocentrism --- > Afrocentrism/M 250d222 < Agace/M 258,260c230 < Aggi/M < Aggie < Aggy/M --- > Aggie/M 262,265c232,233 < Aglaia < Agna/M < Agnella/M < Agnes --- > Aglaia/M > Agnes/M 267,268d234 < Agnesse/M < Agneta/M 271d236 < Agnola/M 273,275c238,239 < Agra < Agretha/M < Agricola --- > Agra/M > Agricola/M 279d242 < Aguie/M 283,284d245 < Aguistin/M < Aguste/M 289c250 < Ahmadabad --- > Ahmadabad/M 295,296c256 < Aigneis/M < Aiken --- > Aiken/M 298,300d257 < Ailbert/M < Aile/M < Ailee/M 302d258 < Ailene/M 304,307d259 < Aili/SM < Ailina/M < Ailsun/M < Ailyn/M 310,312d261 < Aimil/M < Aindrea/M < Ainslee/M 315c264 < Ainu --- > Ainu/M 317c266,267 < Aisha --- > Aires/M > Aisha/M 320c270 < Akbar --- > Akbar/M 322c272 < Akihito --- > Akihito/M 324c274 < Akita --- > Akita/M 326c276 < Akkad --- > Akkad/M 328d277 < Aksel/M 336,337d284 < Alaine/M < Alair/M 343d289 < Alanah/M 345d290 < Alane/M 347d291 < Alano/M 350,351c294 < Alard/M < Alaric --- > Alaric/M 356,359c299 < Alasteir/M < Alaster/M < Alayne/M < Alba --- > Alba/M 363,364c303 < Albee < Alberik/M --- > Albee/M 366c305 < Albert --- > Albert/M 373c312 < Albigensian --- > Albigensian/M 375c314 < Albion --- > Albion/M 379,381c318,320 < Alcatraz < Alcestis < Alcibiades --- > Alcatraz/M > Alcestis/M > Alcibiades/M 385,388c324,327 < Alcott < Alcuin < Alcyone < Aldan --- > Alcott/M > Alcuin/M > Alcyone/M > Aldan/M 390c329 < Alden --- > Alden/M 397d335 < Aldric/M 402d339 < Aldwin/M 404,407d340 < Alecia/M < Aleda/M < Aleece/M < Aleen/M 410d342 < Alejandrina/M 412d343 < Alejoa/M 420d350 < Aleta/M 428c358 < Alexandra --- > Alexandra/M 433c363 < Alexandro/MS --- > Alexandros 438,439c368 < Alexine/M < Alexio/M --- > Alexis/M 441d369 < Alfi/M 448c376 < Alfred --- > Alfred/M 450,451c378 < Alfredo < Alfy/M --- > Alfredo/M 453c380 < Alger --- > Alger/M 462c389 < Alhambra --- > Alhambra/M 464c391 < Ali/S --- > Ali/SM 466,468d392 < Alibaba < Alic/M < Alica/M 470d393 < Alicea/M 474,475d396 < Alidia/M < Alie/M 477,478d397 < Alika/M < Alikee/M 483d401 < Alisander/M 489d406 < Alisun/M 491d407 < Aliza/M 495c411 < Allahabad --- > Allahabad/M 498,499d413 < Allayne/M < Alleen/M 501c415 < Allegheny/S --- > Allegheny/SM 503c417 < Allen --- > Allen/M 506,507c420 < Allentown < Alley/M --- > Allentown/M 512d424 < Allissa/M 514,515d425 < Allistir/M < Allix/M 517,520d426 < Allsun/M < Allx/M < Ally/SM < Allyce/M 526d431 < Almeda/M 528d432 < Almeta/M 531d434 < Almire/M 536,538d438 < Aloin/M < Aloise/M < Aloisia/M 542d441 < Aloysia/M 550c449 < Alpine --- > Alpine/M 558c457 < Alta --- > Alta/M 561,562c460,461 < Altair < Altamira --- > Altair/M > Altamira/M 569,571c468 < Aluin/M < Aluino/M < Alva --- > Alva/M 576,578d472 < Alvera/M < Alverta/M < Alvie/M 581,582d474 < Alvinia/M < Alvira/M 588d479 < Alyda/M 591,593d481 < Alysa/M < Alyse/M < Alysia/M 600d487 < Amabelle/M 603,605d489 < Amalea/M < Amalee/M < Amaleta/M 608,609d491 < Amalita/M < Amalle/M 611,613d492 < Amandi/M < Amandie/M < Amandy/M 615,616c494 < Amargo/M < Amarillo --- > Amarillo/M 620c498 < Amati --- > Amati/M 623,625c501 < Amber/MY < Amberly/M < Amble/M --- > Amber/M 628d503 < Ambrosi/M 631,632d505 < Ambur/M < Amby/M 636,638d508 < Amelina/M < Ameline/M < Amelita/M 641c511 < Amerasian --- > Amerasian/M 645,647c515,517 < Americanism/SM < Americanization/SM < Americanize/DSG --- > Americanism/MS > Americanization/MS > Americanize/GDS 650c520 < Amerindian/SM --- > Amerindian/MS 654c524 < Amherst --- > Amherst/M 658d527 < Amii/M 661,663d529 < Amitie/M < Amity/M < Ammamaria/M 667c533 < Amos --- > Amos/M 670c536 < Amritsar --- > Amritsar/M 672,673c538,539 < Amtrak < Amundsen --- > Amtrak/M > Amundsen/M 677d542 < Amye/M 679d543 < Anabal/M 682,683d545 < Anabella/M < Anabelle/M 685,686c547,548 < Anacreon < Anaheim --- > Anacreon/M > Anaheim/M 688d549 < Analiese/M 690,691d550 < Anallese/M < Anallise/M 693,696c552,553 < Anasazi < Anastasia < Anastasie/M < Anastassia/M --- > Anasazi/M > Anastasia/M 698d554 < Anatola/M 702,704c558 < Anatollo/M < Anaxagoras < Ancell/M --- > Anaxagoras/M 707,712c561,563 < Andalusian < Andaman < Andean < Andee/M < Andeee/M < Anderea/M --- > Andalusian/M > Andaman/M > Andean/M 715c566 < Anderson --- > Anderson/M 719d569 < Andonis/M 725d574 < Andreana/M 728a578 > Andres/M 730a581 > Andrews/M 733d583 < Andriana/M 735,737c585,586 < Andriette/M < Andris < Andromache --- > Android/M > Andromache/M 739c588 < Andropov --- > Andropov/M 743d591 < Anestassia/M 745,748c593 < Anett/M < Anetta/M < Anette/M < Angara --- > Angara/M 752c597,598 < Angele/M --- > Angele/SM > Angeles/M 755,756c601,602 < Angelica < Angelico --- > Angelica/M > Angelico/M 762d607 < Angelle/M 764c609 < Angelou --- > Angelou/M 767,768c612 < Angil/M < Angkor --- > Angkor/M 770c614 < Anglia --- > Anglia/M 775,778c619,621 < Anglicize/DSG < Anglo < Anglophil < Anglophile --- > Anglicize > Anglo/M > Anglophile/M 783c626 < Angstrom --- > Angstrom/M 786d628 < Angy/M 790,791d631 < Anica/M < Anissa/M 793,795d632 < Anitra/M < Anjanette/M < Anjela/M 798,799c635 < Anna < Annabal/M --- > Anna/M 801,802d636 < Annabela/M < Annabell/M 805,808d638 < Annadiana/M < Annadiane/M < Annalee/M < Annaliese/M 811,812d640 < Annamaria/M < Annamarie/M 815,816c643 < Anne < Annecorinne/M --- > Anne/M 820d646 < Annetta/M 823d648 < Annice/M 825,826d649 < Annissa/M < Annmaria/M 828,830c651 < Annnora/M < Annora/M < Annunciation/MS --- > Annunciation/SM 832c653 < Anouilh --- > Anouilh/M 835,836c656 < Anselm < Anselma/M --- > Anselm/M 842c662 < Antaeus --- > Antaeus/M 847d666 < Anthe/M 849,853c668,671 < Anthia/M < Anthiathia/M < Anthony < Antichrist/MS < Antietam --- > Anthony/M > Anthropocene > Antichrist/SM > Antietam/M 859c677 < Antioch --- > Antioch/M 864,865c682,683 < Antoinette < Anton/MS --- > Antoinette/M > Anton/M 868d685 < Antonetta/M 876c693 < Antoninus --- > Antoninus/M 878c695 < Antonius --- > Antonius/M 883c700 < Any/M --- > Any's 885c702 < Anzac --- > Anzac/M 888c705,706 < Apennines --- > Apatosaurus > Apennines/M 890c708 < Apia --- > Apia/M 893c711 < Apollinaire --- > Apollinaire/M 895c713 < Apollonian --- > Apollonian/M 897c715,716 < Appalachian/S --- > Appalachian/SM > Appalachians/M 900,903c719,721 < Appleseed < Appleton < Appolonia/M < Appomattox --- > Appleseed/M > Appleton/M > Appomattox/M 906,907c724 < Aprilette/M < Apuleius --- > Apuleius/M 908a726 > Aquarian 910c728 < Aquila --- > Aquila/M 917,919d734 < Arabel/M < Arabela/M < Arabele/M 921d735 < Arabelle/M 927c741 < Araby --- > Araby/M 929a744 > Aragon 932d746 < Araldo/M 936c750 < Arapahoe/SM --- > Arapahoes 938c752 < Araucanian --- > Araucanian/M 944,945d757 < Arch/R < Archaimbaud/M 947c759 < Archean --- > Archean/M 949,950d760 < Archibaldo/M < Archibold/M 952c762 < Archimedes --- > Archimedes/M 956c766 < Arda/MH --- > Arda/M 958,968c768 < Ardath/M < Ardebil < Ardeen/M < Ardelia/M < Ardelis/M < Ardella/M < Ardelle/M < Arden < Ardene/M < Ardenia/M < Ardine/M --- > Arden/M 970,978c770,771 < Ardisj/M < Ardith/M < Ardra/M < Ardyce/M < Ardys < Ardyth/M < Arel/M < Arequipa < Ares --- > Arequipa/M > Ares/M 981c774 < Argentine --- > Argentine/M 984c777 < Argo/S --- > Argo/SM 986a780 > Argos/M 993d786 < Aridatha/M 995,997c788 < Ariel < Ariela/M < Ariella/M --- > Ariel/M 1001,1002c792 < Ario/M < Ariosto --- > Ariosto/M 1004c794 < Aristides --- > Aristides/M 1013,1014c803,804 < Arjuna < Ark --- > Arjuna/M > Ark/M 1017,1022c807,808 < Arkhangelsk < Arkwright < Arlan/M < Arlana/M < Arlee/M < Arleen/M --- > Arkhangelsk/M > Arkwright/M 1024d809 < Arlena/M 1026d810 < Arleta/M 1029d812 < Arleyne/M 1031d813 < Arliene/M 1033,1034d814 < Arlina/M < Arlinda/M 1036,1037c816 < Arlington < Arluene/M --- > Arlington/M 1039,1040d817 < Arlyn/M < Arlyne/M 1057,1058c834 < Arney/M < Arnhem --- > Arnhem/M 1062c838 < Arnold --- > Arnold/M 1064d839 < Arnuad/M 1066d840 < Arny/M 1068,1069c842 < Arrhenius < Arri/M --- > Arrhenius/M 1072d844 < Artair/M 1078d849 < Arther/M 1080c851 < Arthurian --- > Arthurian/M 1085c856 < Arty/M --- > Arty's 1088d858 < Arvie/M 1090d859 < Arvy/M 1092c861 < Aryn/M --- > As/M 1098,1101c867,868 < Asgard < Ash/MRY < Ashanti < Ashbey/M --- > Asgard/M > Ashanti/M 1103,1105c870,871 < Ashcroft < Ashe/Y < Ashely/M --- > Ashcroft/M > Ashe/RM 1107,1108d872 < Ashia/M < Ashien/M 1110,1111c874 < Ashil/M < Ashkenazim --- > Ashkenazim/M 1113,1114d875 < Ashla/M < Ashlan/M 1117d877 < Ashlen/M 1119,1122d878 < Ashli/M < Ashlie/M < Ashlin/M < Ashly/M 1125c881 < Ashurbanipal --- > Ashurbanipal/M 1126a883 > Asiago 1129,1131c886,888 < Asimov < Asmara < Asoka --- > Asimov/M > Asmara/M > Asoka/M 1133a891 > Asperger/M 1135c893 < Asquith --- > Asquith/M 1140c898 < Assisi --- > Assisi/M 1143c901 < Astaire --- > Astaire/M 1146,1148c904,906 < Aston < Astor < Astoria --- > Aston/M > Astor/M > Astoria/M 1150c908 < Astrakhan --- > Astrakhan/M 1152,1154c910,911 < Astrix/M < AstroTurf < Asturias --- > AstroTurf/M > Asturias/M 1155a913 > Asunción/M 1159,1160c917,918 < Atahualpa < Atalanta --- > Atahualpa/M > Atalanta/M 1162a921 > Atatürk/M 1164d922 < Athabascan/MS 1166c924,925 < Athabaskan/MS --- > Athabaskan/SM > Athanasius 1171c930 < Athlon/MS --- > Athlon/M 1173c932 < Atkinson --- > Atkinson/M 1175c934 < Atlante/SM --- > Atlantes 1179,1180c938,939 < Atman < Atreus --- > Atman/M > Atreus/M 1186c945 < Attlee --- > Attlee/M 1188c947 < Attucks --- > Attucks/M 1192d950 < Auberon/M 1194,1199c952 < Auberta/M < Aubine/M < Aubree/M < Aubrette/M < Aubrey < Aubrie/M --- > Aubrey/M 1201c954 < Auckland --- > Auckland/M 1209,1213c962 < Audrie/M < Audry/M < Audrye/M < Audubon < Audy/M --- > Audubon/M 1215c964 < Augean --- > Augean/M 1217c966 < Augsburg --- > Augsburg/M 1220c969 < Augustan --- > Augustan/M 1223d971 < Augustina/M 1228,1231c976 < Augy/M < Aundrea/M < Aura/M < Aurangzeb --- > Aurangzeb/M 1234d978 < Aurelea/M 1238c982 < Aurelius --- > Aurelius/M 1240,1241d983 < Auria/M < Aurie/M 1243,1245d984 < Aurilia/M < Aurlie/M < Auroora/M 1248,1249c987 < Aurthur/M < Auschwitz --- > Auschwitz/M 1251c989 < Austen --- > Austen/M 1254,1255d991 < Austina/M < Austine/M 1259,1260c995,996 < Australian/MS < Australoid --- > Australian/SM > Australoid/M 1268,1269c1004,1005 < Avalon < Ave --- > Avalon/M > Ave/M 1271c1007 < Aventine --- > Aventine/M 1275,1276c1011,1012 < Avernus < Averroes --- > Avernus/M > Averroes/M 1278d1013 < Averyl/M 1280,1282c1015 < Avicenna < Avictor/M < Avie/M --- > Avicenna/M 1284c1017 < Avignon --- > Avignon/M 1287c1020 < Avis --- > Avis/M 1289,1291c1022,1023 < Avivah/M < Avogadro < Avon --- > Avogadro/M > Avon/M 1294,1296d1025 < Avrit/M < Avrom/M < Ax/M 1300c1029 < Axum --- > Axum/M 1302,1303c1031 < Ayers < Aylmar/M --- > Ayers/M 1305c1033 < Aymara --- > Aymara/M 1309c1037 < Ayurveda --- > Ayurveda/M 1313c1041 < Azazel --- > Azazel/M 1317c1045 < Azov --- > Azov/M 1321c1049 < B/MNT --- > B/MNRT 1325,1326c1053,1054 < BBB < BBC --- > BBB/M > BBC/M 1330a1059 > BFF 1333c1062 < BITNET/S --- > BITNET 1338c1067 < BP --- > BP/M 1343c1072 < BSD/S --- > BSD/SM 1350c1079 < Baathist --- > Baathist/M 1352,1353d1080 < Babar/M < Babara/M 1355,1356c1082 < Babbage < Babbette/M --- > Babbage/M 1358c1084 < Babbitt --- > Babbitt/M 1361,1362d1086 < Babita/M < Babur 1367c1091 < Bacardi --- > Bacardi/M 1374,1375c1098,1099 < Bactria < Baden --- > Bactria/M > Baden/M 1378c1102 < Baez --- > Baez/M 1380c1104 < Baggies --- > Baggies/M 1382,1384c1106,1108 < Baguio < Baha'i < Baha'ullah --- > Baguio/M > Baha'i/M > Baha'ullah/M 1389c1113 < Bahia --- > Bahia/M 1391,1392c1115 < Baikal < Bail/M --- > Baikal/M 1397c1120 < Baird --- > Baird/M 1399,1400c1122,1123 < Baker < Bakersfield --- > Baker/M > Bakersfield/M 1402,1406c1125,1129 < Bakunin < Balanchine < Balaton < Balboa < Bald/MR --- > Bakunin/M > Balanchine/M > Balaton/M > Balboa/M > Bald's 1408d1130 < Balduin/M 1410d1131 < Bale/M 1412c1133 < Balfour --- > Balfour/M 1415,1417c1136,1139 < Balkan/S < Balkhash < Ball --- > Balkan/MS > Balkans/M > Balkhash/M > Ball/M 1419c1141 < Balthazar --- > Balthazar/M 1422c1144 < Baluchistan --- > Baluchistan/M 1426,1428d1147 < Bambie/M < Bamby/M < Ban/M 1433c1152 < Bangalore --- > Bangalore/M 1436,1437c1155,1156 < Bangladeshi/MS < Bangor --- > Bangladeshi/SM > Bangor/M 1440,1442c1159,1160 < Banjul < Bank/SM < Banky/M --- > Banjul/M > Banks/M 1444,1445c1162,1163 < Bannister < Banting --- > Bannister/M > Banting/M 1450,1451c1168 < Bar/H < Barabbas --- > Barabbas/M 1453,1455d1169 < Barb/MR < Barbabas/M < Barbabra/M 1459d1172 < Barbaraanne/M 1463c1176 < Barbe/M --- > Barbe/MR 1465c1178 < Barber --- > Barber/M 1468,1469c1181 < Barbi/M < Barbie --- > Barbie/M 1473d1184 < Barby/M 1475,1476c1186,1187 < Barclay/M < Bard/M --- > Barclay/SM > Barclays/M 1484,1486c1195 < Barn/M < Barnabas < Barnabe/M --- > Barnabas/M 1488,1491c1197,1199 < Barnard < Barnaul < Barnebas/M < Barnes --- > Barnard/M > Barnaul/M > Barnes/M 1494,1500c1202,1204 < Barnie/M < Barnum < Barny/M < Baroda < Baron/M < Baroque < Barquisimeto --- > Barnum/M > Baroda/M > Barquisimeto/M 1502c1206 < Barranquilla --- > Barranquilla/M 1509,1511c1213,1215 < Barry < Barrymore < Bart --- > Barry/M > Barrymore/M > Bart/M 1513c1217 < Barth/S --- > Barth/MS 1516,1520c1220 < Bartholemy/M < Bartholomeo/M < Bartholomeus/M < Bartholomew < Bartie/M --- > Bartholomew/M 1522,1524c1222,1223 < Bartlett < Bartok < Bartolemo/M --- > Bartlett/M > Bartok/M 1526c1225 < Barton --- > Barton/M 1529c1228,1229 < Baruch --- > Bartók/M > Baruch/M 1531,1533c1231 < Baryram/M < Baryshnikov < Base/M --- > Baryshnikov/M 1538,1539c1236,1237 < Basie < Basil --- > Basie/M > Basil/M 1544c1242 < Basra --- > Basra/M 1551d1248 < Bat/M 1553,1556c1250,1252 < Bates < Batholomew/M < Bathsheba < Batista --- > Bates/M > Bathsheba/M > Batista/M 1558d1253 < Batsheva/M 1564c1259,1260 < Bauer --- > Baudrillard/M > Bauer/M 1566c1262 < Baum --- > Baum/M 1568c1264 < Bavarian --- > Bavarian/M 1570d1265 < Baxie/M 1572,1573d1266 < Baxy/M < Bay/MR 1577,1578c1270,1271 < Bayes < Bayesian --- > Bayes/M > Bayesian/M 1582c1275 < Bayreuth --- > Bayreuth/M 1587c1280 < Beadle --- > Beadle/M 1589d1281 < Bealle/M 1591d1282 < Bear/M 1594c1285 < Beardsley --- > Beardsley/M 1596d1286 < Bearnard/M 1601d1290 < Beatrisa/M 1603a1293 > Beatty/M 1605c1295 < Beaufort --- > Beaufort/M 1607,1608c1297,1298 < Beaumarchais < Beaumont --- > Beaumarchais/M > Beaumont/M 1610c1300 < Beauvoir --- > Beauvoir/M 1620d1309 < Becki/M 1623,1624c1312,1313 < Becquerel < Bede --- > Becquerel/M > Bede/M 1626d1314 < Bee/M 1628c1316 < Beecher --- > Beecher/M 1631c1319 < Beerbohm --- > Beerbohm/M 1634,1637c1322,1325 < Begin < Behan < Behring < Beiderbecke --- > Begin/M > Behan/M > Behring/M > Beiderbecke/M 1639d1326 < Beilul/M 1641d1327 < Beitris/M 1643d1328 < Bekki/M 1654,1655d1338 < Belia/M < Belicia/M 1657d1339 < Belita/M 1663d1344 < Bellanca/M 1665,1666c1346 < Belle/M < Belleek --- > Belleek/M 1668,1670c1348,1349 < Bellina/M < Bellini < Bellow --- > Bellini/M > Bellow/M 1672,1673c1351 < Belmopan < Belorussia/M --- > Belmopan/M 1676c1354 < Beltane --- > Beltane/M 1680d1357 < Belvia/M 1683c1360 < Benares --- > Benares/M 1686,1688d1362 < Bendick/M < Bendicty/M < Bendite/M 1695c1369 < Benedictine/SM --- > Benedictine/MS 1698d1371 < Benedikta/M 1700,1701c1373 < Benet < Benetta/M --- > Benet/M 1707d1378 < Beniamino/M 1712,1713c1383 < Benjamen/M < Benjamin --- > Benjamin/M 1718,1719c1388 < Bennett < Benni/M --- > Bennett/M 1723d1391 < Benoite/M 1725,1731c1393,1396 < Bent/M < Bentham < Bentlee/M < Bentley < Benton < Benyamin/M < Benz --- > Bentham/M > Bentley/M > Benton/M > Benz/M 1733c1398 < Beowulf --- > Beowulf/M 1737d1401 < Beret 1739c1403 < Berg/NR --- > Berg/MNR 1742,1748c1406,1411 < Bergerac < Berget/M < Bergman < Bergson < Beria < Bering < Berk/MY --- > Bergerac/M > Bergman/M > Bergson/M > Beria/M > Bering/M > Berk/M 1751d1413 < Berkie/M 1753d1414 < Berkly/M 1755c1416 < Berky/M --- > Berkshires/M 1759c1420 < Berlioz --- > Berlioz/M 1765,1768c1426 < Berna/M < Bernadene/M < Bernadette < Bernadina/M --- > Bernadette/M 1771,1772c1429 < Bernard < Bernardina/M --- > Bernard/M 1775d1431 < Bernarr/M 1778d1433 < Bernelle/M 1780,1782d1434 < Bernete/M < Bernetta/M < Bernette/M 1784c1436 < Bernhardt --- > Bernhardt/M 1788,1792c1440,1442 < Bernini < Bernita/M < Bernoulli < Bernstein < Berny/M --- > Bernini/M > Bernoulli/M > Bernstein/M 1795,1796c1445 < Berrie/M < Berry --- > Berry/M 1799d1447 < Berte/M 1806,1807d1453 < Bertina/M < Bertine/M 1811,1812d1456 < Bertrando/M < Berty/M 1814,1815c1458 < Beryle/M < Berzelius --- > Berzelius/M 1817,1818c1460,1461 < Bess < Bessel --- > Bess/M > Bessel/M 1820c1463 < Bessie --- > Bessie/M 1825,1832c1468,1472 < Bethanne/M < Bethany < Bethe < Bethena/M < Bethesda < Bethina/M < Bethlehem < Bethune --- > Bethany/M > Bethe/M > Bethesda/M > Bethlehem/M > Bethune/M 1837,1838d1476 < Betteann/M < Betteanne/M 1842d1479 < Bettine/M 1845c1482 < Beulah --- > Beulah/M 1847,1848c1484 < Beverie/M < Beverlee/M --- > Beveridge 1850d1485 < Beverlie/M 1853,1856c1488,1491 < Bevon/M < Bevvy/M < Beyer < Bhopal --- > Bevvy's > Beyer/M > Bharat/M > Bhopal/M 1861c1496 < Bialystok --- > Bialystok/M 1863d1497 < Bianka/M 1867d1500 < Bibbie/M 1869d1501 < Bibbye/M 1872c1504 < Biblical --- > Biblical/M 1874,1876c1506 < Biddie/M < Biddle < Biddy/M --- > Biddle/M 1878,1879c1508 < Bidget/M < Bierce --- > Bierce/M 1884c1513 < Bilbao --- > Bilbao/M 1888d1516 < Billi/M 1892d1519 < Billye/M 1896d1522 < Binni/M 1898d1523 < Binny/M 1900,1902c1525 < Birch/M < Bird < Birdie/M --- > Bird/M 1907c1530 < Birkenstock --- > Birkenstock/M 1911c1534 < Biscay --- > Biscay/M 1913c1536 < Bishkek --- > Bishkek/M 1918a1542 > BitTorrent/M 1920c1544 < Bizet --- > Bizet/M 1929c1553 < Blackfeet --- > Blackfeet/M 1933,1934c1557,1558 < Blackstone < Blackwell --- > Blackstone/M > Blackwell/M 1937,1939c1561 < Blaire/M < Blake < Blakelee/M --- > Blake/M 1942,1943c1564 < Blanch/M < Blancha/M --- > Blanch's 1950,1951c1571 < Blavatsky < Blayne/M --- > Blavatsky/M 1956,1962c1576,1577 < Blinni/M < Blinnie/M < Blinny/M < Bliss < Blisse/M < Blithe/M < Bloch --- > Blithe's > Bloch/M 1965d1579 < Bloglines/M 1967,1968d1580 < Blondell/M < Blondelle/M 1970d1581 < Blondy/M 1973c1584,1585 < Bloomfield --- > Bloomer/M > Bloomfield/M 1975c1587,1588 < Bloomsbury --- > Bloomsbury/M > Blu 1985,1987d1597 < Bobbe/M < Bobbee/M < Bobbette/M 1992,1997c1602 < Bobbye/M < Bobette/M < Bobina/M < Bobine/M < Bobinette/M < Boccaccio --- > Boccaccio/M 1999a1605 > Bodleian 2002,2004c1608,1610 < Boeotian < Boer/SM < Boethius --- > Boeotian/M > Boer/M > Boethius/M 2006d1611 < Bogey/M 2008c1613,1614 < Bohemia --- > Bogotá/M > Bohemia/M 2010,2011c1616 < Bohr < Boigie/M --- > Bohr/M 2021,2022c1626,1627 < Bolshevism < Bolshevist --- > Bolshevism/M > Bolshevist/M 2024,2025c1629,1630 < Bolton < Boltzmann --- > Bolton/M > Boltzmann/M 2027,2028c1632,1633 < Bonaparte < Bonaventure --- > Bonaparte/M > Bonaventure/M 2030,2031d1634 < Bondie/M < Bondon/M 2033d1635 < Bone/M 2035c1637 < Boniface --- > Boniface/M 2038d1639 < Bonnee/M 2041,2042d1641 < Bonni/M < Bonnibelle/M 2044d1642 < Bonny 2049c1647 < Boolean --- > Boolean/M 2051,2054d1648 < Boonie/M < Boony/M < Boot/M < Boote/MS 2056c1650 < Booth --- > Booth/M 2061d1654 < Bordie/M 2063d1655 < Bordy/M 2066,2069c1658,1661 < Borges < Borgia < Borglum < Boris --- > Borges/M > Borgia/M > Borglum/M > Boris/M 2072c1664 < Born --- > Born/M 2075c1667 < Borodin --- > Borodin/M 2077,2078c1669,1670 < Bosch < Bose --- > Bosch/M > Bose/M 2083,2084c1675,1677 < Bostonian < Boswell --- > Bostonian/M > Boswell/M > Botox 2086,2088c1679,1680 < Botticelli < Boudicca < Boulder --- > Botticelli/M > Boulder/M 2093c1685 < Bournemouth --- > Bournemouth/M 2098c1690 < Bowers --- > Bowers/M 2100c1692 < Bowie --- > Bowie/M 2102d1693 < Boy/MR 2104,2106c1695 < Boycey/M < Boycie/M < Boyd --- > Boyd/M 2108c1697,1698 < Boyle --- > Boyle/M > Boötes/M 2110,2112c1700,1701 < Brad/MY < Bradan/M < Bradbury --- > Brad/MNY > Bradbury/M 2114d1702 < Brade/M 2116,2117c1704,1705 < Bradford < Bradley --- > Bradford/M > Bradley/M 2119d1706 < Bradney/M 2122c1709 < Brady --- > Brady/M 2124c1711 < Brahe --- > Brahe/M 2128d1714 < Brahmanee 2132d1717 < Brahmin/MS 2139d1723 < Brana/M 2141,2145c1725,1726 < Brand/MNR < Brandais/M < Brande/M < Brandea/M < Brandeis --- > Brande/MR > Brandeis/M 2147c1728 < Brandenburg --- > Brandenburg/M 2150d1730 < Brandice/M 2152,2153c1732 < Brandise/M < Brando --- > Brando/M 2155,2156c1734 < Brandt < Brandtr/M --- > Brandt/M 2158d1735 < Brandyn/M 2162c1739 < Braque --- > Braque/M 2164c1741 < Bratislava --- > Bratislava/M 2172,2173d1748 < Breanne/M < Brear/M 2175c1750 < Brecht --- > Brecht/M 2178,2179c1753 < Breena/M < Bremen --- > Bremen/M 2181d1754 < Brena/M 2185,2186d1757 < Brendin/M < Brendis/M 2188d1758 < Brenn/MNR 2191d1760 < Brennen/M 2194a1764 > Brest/M 2198,2199d1767 < Breughel < Brew/MR 2201,2203c1769,1770 < Brewster < Brezhnev < Bria/M --- > Brewster/M > Brezhnev/M 2208d1774 < Briano/M 2212d1777 < Bride/M 2215c1780 < Bridges --- > Bridges/M 2217c1782 < Bridgetown --- > Bridgetown/M 2220c1785 < Bridgman --- > Bridgman/M 2222c1787 < Brie/RSM --- > Brie/SM 2224,2227c1789 < Brier/M < Brietta/M < Brig < Brigadoon --- > Brigadoon/M 2228a1791 > Briggs/M 2230c1793 < Bright --- > Bright/M 2237,2239c1800 < Brillo < Brina/M < Briney/M --- > Brillo/M 2241,2243c1802 < Brinn/M < Brinna/M < Briny/M --- > Briny's 2250,2251c1809,1810 < Britannia < Britannic --- > Britannia/M > Britannic/M 2257d1815 < Britni/M 2262,2263d1819 < Brittaney/M < Brittani/M 2265,2267c1821 < Britte/M < Britteny/M < Brittne/M --- > Britten/M 2269,2272c1823 < Brittni/M < Brnaba/M < Brnaby/M < Brno --- > Brno/M 2275c1826 < Brobdingnagian --- > Brobdingnagian/M 2277,2278d1827 < Brockie/M < Brocky/M 2280,2282d1828 < Broddie/M < Broddy/M < Broderic/M 2286d1831 < Brok/M 2289,2290d1833 < Bronnie/M < Bronny/M 2292c1835,1836 < Bronte --- > Bronte/M > Brontosaurus 2294,2295c1838 < Brook/MS < Brooke --- > Brooke/MS 2296a1840 > Brooks/M 2299,2300c1843,1844 < Brown/G < Browne --- > Brown/MG > Browne/M 2303,2305c1847,1850 < Brownshirt < Brownsville < Brubeck --- > Browning/M > Brownshirt/M > Brownsville/M > Brubeck/M 2307,2308c1852 < Brucie/M < Bruckner --- > Bruckner/M 2310,2311d1853 < Brueghel < Bruis/M 2315,2316c1857 < Brunelleschi < Brunhilda/M --- > Brunelleschi/M 2318c1859 < Bruno --- > Bruno/M 2323,2326c1864,1865 < Bryan < Bryana/M < Bryant < Bryanty/M --- > Bryan/M > Bryant/M 2329d1867 < Bryna/M 2331,2332d1868 < Brynna/M < Brynne/M 2337c1873 < Buber --- > Buber/M 2340c1876 < Buchenwald --- > Buchenwald/M 2342,2344c1878,1879 < Buck < Buckie/M < Buckingham --- > Buck/M > Buckingham/M 2354d1888 < Buddie/M 2363d1896 < Buiron/M 2365,2370c1898,1903 < Bukhara < Bukharin < Bulawayo < Bulfinch < Bulganin < Bulgar --- > Bukhara/M > Bukharin/M > Bulawayo/M > Bulfinch/M > Bulganin/M > Bulgar/M 2378c1911 < Bunche --- > Bunche/M 2380,2381c1913,1914 < Bundestag < Bunin --- > Bundestag/M > Bunin/M 2383,2386c1916 < Bunni/M < Bunnie/M < Bunny/M < Bunsen --- > Bunsen/M 2389c1919 < Burbank --- > Burbank/M 2392d1921 < Burg/MR 2394c1923 < Burgess --- > Burgess/M 2396c1925 < Burgundian --- > Burgundian/M 2399c1928 < Burke --- > Burke/M 2400a1930 > Burks/M 2402d1931 < Burlie/M 2408,2411c1937,1940 < Burnett < Burns < Burnside < Burr --- > Burnett/M > Burns/M > Burnside/M > Burr/M 2413,2414c1942,1943 < Burroughs < Bursa --- > Burroughs/M > Bursa/M 2416d1944 < Burtie/M 2418d1945 < Burty/M 2423c1950 < Bushido --- > Bushido/M 2425,2426c1952 < Butch/M < Butler --- > Butler/M 2428c1954,1955 < Buxtehude --- > Buxtehude/M > Buñuel/M 2430d1956 < Byelorussia/M 2433,2436c1959 < Byran/M < Byrann/M < Byrd < Byrle/M --- > Byrd/M 2438,2439c1961,1962 < Byron < Byronic --- > Byron/M > Byronic/M 2442c1965 < C/SMDY --- > C/SMD 2452c1975 < CBS --- > CBS/M 2458c1981 < CEO/MS --- > CEO/SM 2460c1983 < CFC/MS --- > CFC/SM 2461a1985 > CGI 2464c1988 < CNN --- > CNN/M 2479a2004 > CVS/M 2483,2485c2008,2009 < Cabinet < Cabot < Cabral --- > Cabot/M > Cabral/M 2487,2489c2011 < Cabrini < Cacilia/M < Cacilie/M --- > Cabrini/M 2491d2012 < Caddric/M 2493c2014 < Cadillac --- > Cadillac/M 2496c2017 < Caerphilly --- > Caerphilly/M 2498,2499c2019 < Caesarean < Cage --- > Cage/M 2502,2503c2022 < Cahra/M < Caiaphas --- > Caiaphas/M 2506d2024 < Cairistiona/M 2509,2510d2026 < Caitrin/M < Cajan 2512,2513c2028,2029 < Cal/Y < Calais --- > Cal/MY > Calais/M 2515c2031 < Calder --- > Calder/M 2517c2033 < Caldwell --- > Caldwell/M 2520c2036 < Caledonia --- > Caledonia/M 2522,2525c2038,2040 < Calhoun < Cali < Caliban < Calida/M --- > Calhoun/M > Cali/M > Caliban/M 2528,2531c2043,2045 < Californian/MS < Caligula < Calla/MS < Callaghan --- > Californian/SM > Caligula/M > Callaghan/M 2533,2534c2047,2048 < Callao < Callean/M --- > Callao/M > Callas/M 2537d2050 < Callida/M 2543d2055 < Calv/M 2545c2057 < Calvert --- > Calvert/M 2550,2551d2061 < Calypso < Cam 2553d2062 < Camala/M 2561,2563c2070 < Camella/M < Camellia/M < Camelopardalis --- > Camelopardalis/M 2568,2569c2075 < Cameroonian/SM < Camey/M --- > Cameroonian/MS 2572d2077 < Camile/M 2576d2080 < Cammi/M 2581,2583c2085,2087 < Campbell < Campinas < Campos --- > Campbell/M > Campinas/M > Campos/M 2585,2586c2089,2090 < Camus < Can --- > Camus/M > Can/M 2593c2097 < Canaletto --- > Canaletto/M 2595c2099 < Canaveral --- > Canaveral/M 2600c2104 < Candi/MS --- > Candi/M 2604d2107 < Candie/M 2610c2113 < Canopus --- > Canopus/M 2612c2115 < Canterbury --- > Canterbury/M 2618,2619c2121,2122 < Canute < Capablanca --- > Canute/M > Capablanca/M 2622,2623c2125,2126 < Capet < Capetian --- > Capet/M > Capetian/M 2628,2630c2131,2133 < Capitoline < Capone < Capote --- > Capitoline/M > Capone/M > Capote/M 2633d2135 < Caprice/M 2636c2138 < Capuchin --- > Capuchin/M 2638d2139 < Car/MNY 2640c2141 < Caracalla --- > Caracalla/M 2642,2643c2143 < Caralie/M < Caravaggio --- > Caravaggio/M 2646,2647c2146 < Carborundum < Carce/M --- > Carborundum/M 2652d2150 < Care/M 2655,2659c2153 < Carena/M < Caresa/M < Caressa/M < Caresse/M < Carey --- > Carey/M 2664,2666d2157 < Carie/M < Caril/M < Carilyn/M 2668c2159 < Carina --- > Carina/M 2670d2160 < Cariotta/M 2673d2162 < Caritta/M 2676,2677d2164 < Carlee/M < Carleen/M 2684,2685d2170 < Carlina/M < Carline/M 2688d2172 < Carlita/M 2689a2174 > Carlos/M 2692c2177 < Carlsbad --- > Carlsbad/M 2694c2179 < Carlton --- > Carlton/M 2696,2701c2181 < Carlye/M < Carlyle < Carlyn/M < Carlynn/M < Carlynne/M < Carma/M --- > Carlyle/M 2704,2705d2183 < Carmelia/M < Carmelina/M 2708d2185 < Carmelle/M 2711d2187 < Carmencita/M 2715,2717c2191 < Carmita/M < Carmon/M < Carnap --- > Carnap/M 2721,2722c2195 < Carnot < Carny/M --- > Carnot/M 2727d2199 < Carolann/M 2729,2733c2201,2203 < Carolee/M < Carolin/M < Carolina < Caroline < Carolingian --- > Carolina/M > Caroline/M > Carolingian/M 2735d2204 < Caroljean/M 2739d2207 < Carolynn/M 2741,2742c2209,2211 < Carpathian/MS < Carpenter --- > Carpathian/SM > Carpathians/M > Carpenter/M 2745,2747c2214 < Carree/M < Carri/MR < Carrie/M --- > Carrie/RM 2750d2216 < Carrissa/M 2753,2755c2219 < Carry/M < Carson < Cart/MR --- > Carson/M 2757c2221 < Cartesian --- > Cartesian/M 2760,2764c2224,2228 < Cartier < Cartwright < Caruso < Carver < Cary --- > Cartier/M > Cartwright/M > Caruso/M > Carver/M > Cary/M 2768c2232 < Casals --- > Casals/M 2775c2239 < Cash --- > Cash/M 2777d2240 < Casie/M 2779c2242 < Caspar --- > Caspar/M 2781c2244 < Caspian --- > Caspian/M 2784,2788c2247 < Cassandre/M < Cassandry/M < Cassatt < Cassaundra/M < Cassey/M --- > Cassatt/M 2789a2249 > Cassidy/M 2794d2253 < Cassondra/M 2797a2257 > Castilian 2799c2259 < Castlereagh --- > Castlereagh/M 2802c2262 < Castro --- > Castro/M 2811d2270 < Catha/M 2815,2818c2274 < Cathe/MR < Cathee/M < Catherin/M < Catherina/M --- > Cather/M 2820d2275 < Cathi/M 2823d2277 < Cathlene/M 2825,2827c2279 < Catholicism/SM < Cathrin/M < Cathrine/M --- > Catholicism/MS 2830d2281 < Cathyleen/M 2833,2836c2284 < Catiline < Catina/M < Catlaina/M < Catlee/M --- > Catiline/M 2838c2286 < Cato --- > Cato/M 2843,2845c2291,2292 < Catt < Catullus < Caty/M --- > Catt/M > Catullus/M 2849,2852c2296,2299 < Cauchy < Cavendish < Cavour < Caxton --- > Cauchy/M > Cavendish/M > Cavour/M > Caxton/M 2854,2855c2301 < Cayenne < Cayla/M --- > Cayenne/M 2860d2305 < Cazzie/M 2862d2306 < Cchaddie/M 2870c2314 < Cecil --- > Cecil/M 2872,2873c2316 < Ceciley/M < Cecilia --- > Cecilia/M 2875,2876d2317 < Cecilius/M < Cecilla/M 2883,2884d2323 < Celene/M < Celesta/M 2889,2890d2327 < Celestyn/M < Celestyna/M 2894d2330 < Celinda/M 2896,2898d2331 < Celinka/M < Celisse/M < Celka/M 2900,2902c2333,2334 < Cellini < Cello/M < Celsius --- > Cellini/M > Celsius/M 2910c2342 < Cepheid --- > Cepheid/M 2913c2345 < Cerenkov --- > Cerenkov/M 2919,2921c2351 < Cesarean < Cesarian < Cesaro/M --- > Cesarean/M 2923,2924c2353 < Cesya/M < Cetus --- > Cetus/M 2927c2356 < Cezanne --- > Cezanne/M 2929c2358 < Ch'in --- > Ch'in/M 2933,2935d2361 < Chadd/M < Chaddie/M < Chaddy/M 2937,2938c2363,2364 < Chadwick < Chagall --- > Chadwick/M > Chagall/M 2943c2369 < Chaldean --- > Chaldean/M 2946,2949c2372,2375 < Chamberlain < Chambers < Champlain < Champollion --- > Chamberlain/M > Chambers/M > Champlain/M > Champollion/M 2955,2957c2381,2382 < Chandal/M < Chandigarh < Chandler --- > Chandigarh/M > Chandler/M 2960c2385 < Chandragupta --- > Chandragupta/M 2963c2388 < Chanel --- > Chanel/M 2966,2967c2391,2392 < Changchun < Changsha --- > Changchun/M > Changsha/M 2970,2975c2395,2398 < Chantalle/M < Chantilly < Chanukah/M < Chanukahs < Chaplin < Chapman --- > Chantilly/M > Chaplin/M > Chaplinesque > Chapman/M 2981,2983d2403 < Charil/M < Charin/M < Chariot/M 2985d2404 < Charissa/M 2987d2405 < Charita/M 2989,2991d2406 < Charla/M < Charlean/M < Charleen/M 2993d2407 < Charlena/M 2997,2999c2411,2412 < Charley < Charlie < Charline/M --- > Charley/M > Charlie/M 3005d2417 < Charmain/M 3007d2418 < Charmane/M 3010,3012d2420 < Charmine/M < Charmion/M < Charo/M 3016c2424 < Chartres --- > Chartres/M 3018d2425 < Charyl/M 3020c2427 < Chase --- > Chase/M 3022d2428 < Chastity/M 3029c2435 < Chatterton --- > Chatterton/M 3031d2436 < Chaunce/M 3033c2438 < Chautauqua --- > Chautauqua/M 3037c2442 < Chechen --- > Chechen/M 3039c2444 < Cheddar --- > Cheddar/M 3043c2448 < Cheever --- > Cheever/M 3046,3050c2451 < Chelsae/M < Chelsea < Chelsey/M < Chelsie/M < Chelsy/M --- > Chelsea/M 3054c2455 < Chengdu --- > Chengdu/M 3056c2457 < Cheops --- > Cheops/M 3058d2458 < Cherey/M 3060,3062d2459 < Cherianne/M < Cherice/M < Cherida/M 3064,3066d2460 < Cherilyn/M < Cherilynn/M < Cherin/M 3068,3069c2462 < Cherish/M < Cherlyn/M --- > Cherish's 3074,3075d2466 < Cherri/M < Cherrita/M 3077,3078d2467 < Chery/M < Cherye/M 3080,3082c2469,2470 < Chesapeake < Cheshire < Cheslie/M --- > Chesapeake/M > Cheshire/M 3084,3086c2472,2473 < Chesterfield < Chesterton < Cheston/M --- > Chesterfield/M > Chesterton/M 3089c2476 < Chevalier --- > Chevalier/M 3097,3100c2484,2485 < Chiarra/M < Chiba < Chibcha < Chic/M --- > Chiba/M > Chibcha/M 3102,3105c2487,2489 < Chicagoan < Chicana < Chicano < Chick/M --- > Chicagoan/M > Chicana/M > Chicano/M 3107,3108d2490 < Chickie/M < Chicky/M 3120c2502 < Chinatown --- > Chinatown/M 3123d2504 < Chip/M 3127d2507 < Chiquia/M 3129c2509 < Chirico --- > Chirico/M 3132c2512 < Chittagong --- > Chittagong/M 3134,3136c2514 < Chlo/M < Chloe < Chloette/M --- > Chloe/M 3140,3141c2518,2519 < Chomsky < Chongqing --- > Chomsky/M > Chongqing/M 3144c2522 < Chou --- > Chou/M 3147d2524 < Chrisse/M 3150c2527 < Christ/MNS --- > Christ/MS 3153,3158c2530 < Christabella/M < Christal/M < Christalle/M < Christan/M < Christchurch < Christean/M --- > Christchurch/M 3160,3161c2532,2533 < Christen/M < Christendom/SM --- > Christen's > Christendom/MS 3168,3172c2540,2542 < Christianize/DSG < Christiano/M < Christie < Christin/M < Christina --- > Christianize/DG > Christie/M > Christina/M 3178,3179d2547 < Christoffer/M < Christoforo/M 3184d2551 < Christophorus/M 3186,3188d2552 < Christye/M < Christyna/M < Chrisy/M 3190,3191d2553 < Chrotoem/M < Chrysa/M 3193c2555 < Chrysostom --- > Chrysostom/M 3195,3197d2556 < Chryste/M < Chrystel/M < Chucho/M 3199,3200c2558,2559 < Chukchi < Chumash --- > Chukchi/M > Chumash/M 3202,3203c2561 < Chungking/M < Church --- > Church/M 3207c2565 < Ci --- > Ci/M 3210,3211c2568 < Cicily/M < Cid --- > Cid/M 3213d2569 < Cilka/M 3215,3218c2571 < Cincinnati < Cinda/M < Cindee/M < Cindelyn/M --- > Cincinnati/M 3221,3222d2573 < Cindie/M < Cindra/M 3225c2576 < Cinerama --- > Cinerama/M 3227d2577 < Cinnamon/M 3231d2580 < Cirilo/M 3234d2582 < Cissiee/M 3239d2586 < Citysearch/M 3241d2587 < Claiborn/M 3250,3252c2596 < Clarabelle/M < Clarance/M < Clare --- > Clare/M 3254,3259c2598 < Clarendon < Claresta/M < Clareta/M < Claretta/M < Clarette/M < Clarey/M --- > Clarendon/M 3263d2601 < Clarie/M 3265d2602 < Clarine/M 3269c2606 < Clark --- > Clark/M 3274,3276d2610 < Claudell/M < Claudelle/M < Claudetta/M 3280,3282d2613 < Claudianus/M < Claudie/M < Claudina/M 3287,3290c2618,2620 < Clausewitz < Clausius < Clay < Clayborn/M --- > Clausewitz/M > Clausius/M > Clay/M 3292,3293d2621 < Claybourne/M < Clayson/M 3297d2624 < Cleavland/M 3300c2627,2628 < Clemenceau --- > Clemenceau/M > Clemens/M 3303d2630 < Clementia/M 3306c2633 < Clementius/M --- > Clements/M 3308,3309c2635 < Clemmy/M < Clemons --- > Clemons/M 3315,3316d2640 < Clerissa/M < Cletis 3320,3321d2643 < Clevey/M < Clevie/M 3324c2646 < Clifford --- > Clifford/M 3326d2647 < Clim/M 3330a2652 > Clive/M 3332d2653 < Cloe/M 3334d2654 < Cloris/M 3335a2656 > Closure/M 3340,3341c2661 < Cly/M < Clyde --- > Clyde/M 3343,3345c2663 < Clytemnestra < Clyve/M < Clywd/M --- > Clytemnestra/M 3348,3349c2666 < Co/SM < Cob/M --- > Co/M 3351,3356c2668,2671 < Cobb < Cobbie/M < Cobby/M < Cochabamba < Cochin < Cochise --- > Cobb/M > Cochabamba/M > Cochin/M > Cochise/M 3359c2674 < Cocteau --- > Cocteau/M 3361,3364c2676 < Codee/M < Codi/M < Codie/M < Cody --- > Cody/M 3367,3371c2679,2682 < Cohan < Cohen < Coimbatore < Cointon/M < Cointreau --- > Cohan/M > Cohen/M > Coimbatore/M > Cointreau/M 3373,3375c2684 < Col < Colan/M < Colas --- > Col/M 3377c2686 < Colby --- > Colby/M 3379c2688 < Cole --- > Cole/M 3382d2690 < Colene/M 3386c2694 < Colette --- > Colette/M 3392d2699 < Collete/M 3394d2700 < Collie/M 3398c2704 < Colly/RM --- > Collins/M 3406d2711 < Colonial 3410c2715 < Colosseum --- > Colosseum/M 3412c2717 < Coltrane --- > Coltrane/M 3414c2719 < Columbine --- > Columbine/M 3416d2720 < Colver/M 3422,3423c2726,2727 < Comintern < Commons --- > Comintern/M > Commons/M 3428c2732 < Como --- > Como/M 3433c2737 < Compton --- > Compton/M 3436,3437c2740 < Comte < Con --- > Comte/M 3441c2744,2745 < Concepcion --- > Concepcion/M > Concepción/M 3443d2746 < Concettina/M 3446c2749 < Concorde --- > Concorde/M 3448,3449c2751,2752 < Condillac < Condorcet --- > Condillac/M > Condorcet/M 3456c2759 < Cong --- > Cong/M 3463c2766 < Congreve --- > Congreve/M 3465c2768 < Conn/R --- > Conn/MR 3467c2770 < Connemara --- > Connemara/M 3470,3471d2772 < Conney/M < Conni/M 3475c2776 < Connotea/M --- > Connors/M 3477,3478c2778 < Conrad < Conrade/M --- > Conrad/M 3482d2781 < Consalve/M 3484,3486c2783,2784 < Consolata/M < Constable < Constance --- > Constable/M > Constance/M 3488d2785 < Constancy/M 3492,3493c2789 < Constantina/M < Constantine --- > Constantine/M 3500c2796 < Continental --- > Continental/M 3502,3503c2798,2799 < Conway < Cook --- > Conway/M > Cook/M 3505d2800 < Cookie/M 3508c2803 < Coop/MR --- > Cooper/M 3514c2809 < Copernican --- > Copernican/M 3516,3517c2811,2812 < Copland < Copley --- > Copland/M > Copley/M 3523,3526d2817 < Corabel/M < Corabella/M < Corabelle/M < Coral/M 3528,3529d2818 < Coraline/M < Coralyn/M 3535d2823 < Cord/M 3537d2824 < Cordelie/M 3539,3542c2826 < Cordey/M < Cordi/M < Cordie/M < Cordilleras --- > Cordilleras/M 3544d2827 < Cordula/M 3546,3549d2828 < Coreen/M < Corella/M < Corenda/M < Corene/M 3551d2829 < Corette/M 3553c2831 < Corfu --- > Corfu/M 3555,3556d2832 < Corie/M < Corilla/M 3562,3563c2838,2840 < Corinthian/SM < Coriolanus --- > Corinthian/MS > Corinthians/M > Coriolanus/M 3565,3566d2841 < Coriss/M < Corissa/M 3570d2844 < Corly/M 3572,3574c2846 < Cornall/M < Corneille < Cornela/M --- > Corneille/M 3578d2849 < Cornelle/M 3580d2850 < Cornie/M 3584,3587c2854,2857 < Cornwallis < Corny/M < Coronado < Corot --- > Cornwallis/M > Corny's > Coronado/M > Corot/M 3589,3593c2859 < Correggio < Correna/M < Correy/M < Corri/M < Corrianne/M --- > Correggio/M 3595d2860 < Corrina/M 3597d2861 < Corrinne/M 3600c2864 < Corsican --- > Corsican/M 3603,3604d2866 < Cortez/M < Cortie/M 3606,3607d2867 < Cortney/M < Corty/M 3613d2872 < Cosetta/M 3618c2877 < Cossack --- > Cossack/M 3625c2884 < Cotonou --- > Cotonou/M 3629c2888 < Coulomb --- > Coulomb/M 3632,3634c2891,2892 < Couperin < Courbet < Court/M --- > Couperin/M > Courbet/M 3636d2893 < Courtnay/M 3638c2895 < Cousteau --- > Cousteau/M 3640,3643c2897,2901 < Coward < Cowley < Cowper < Cox --- > Coward/M > Cowell/M > Cowley/M > Cowper/M > Cox/M 3645d2902 < Cozmo/M 3649c2906 < Crabbe --- > Crabbe/M 3651,3653c2908,2909 < Craggie/M < Craggy/M < Craig --- > Craggy's > Craig/M 3655,3657c2911,2913 < Cranach < Crane < Cranmer --- > Cranach/M > Crane/M > Cranmer/M 3667,3668d2922 < Creigh/M < Creight/M 3671c2925,2926 < Creon --- > Creon/M > Cressida/M 3676,3677c2931,2932 < Crichton < Crick --- > Crichton/M > Crick/M 3679,3681c2934,2935 < Crimean < Crin/M < Criollo --- > Crimean/M > Criollo/M 3684d2937 < Crissie/M 3687d2939 < Cristabel/M 3689,3690d2940 < Cristen/M < Cristi/M 3693,3694d2942 < Cristie/M < Cristin/M 3696,3697d2943 < Cristine/M < Cristionna/M 3699d2944 < Cristy/M 3703,3705c2948,2950 < Croce < Crockett < Croesus --- > Croce/M > Crockett/M > Croesus/M 3707c2952 < Cromwellian --- > Cromwellian/M 3711,3713c2956,2958 < Crookes < Crosby < Cross --- > Crookes/M > Crosby/M > Cross/M 3717c2962 < Cruikshank --- > Cruikshank/M 3719c2964 < Crusades --- > Crusades's 3724d2968 < Crysta/M 3726d2969 < Crystie/M 3729,3730c2972 < Ctesiphon < Cthrine/M --- > Ctesiphon/M 3736,3739c2978,2979 < Cuisinart < Culbertson < Cull/MN < Cullan/M --- > Cuisinart/M > Culbertson/M 3742,3743d2981 < Cullie/M < Cullin/M 3748c2986 < Cummings --- > Cummings/M 3754,3755c2992,2993 < Curie < Curitiba --- > Curie/M > Curitiba/M 3759c2997 < Currie/MR --- > Currie/M 3761c2999 < Curry --- > Curry/RM 3765c3003 < Custer --- > Custer/M 3767c3005 < Cuzco --- > Cuzco/M 3769d3006 < Cyb/M 3772d3008 < Cybill/M 3778,3779d3013 < Cymbre/M < Cynde/M 3781,3784d3014 < Cyndia/M < Cyndie/M < Cyndy/M < Cynthea/M 3786d3015 < Cynthie/M 3792,3793c3021 < Cyril < Cyrill/M --- > Cyril/M 3796,3797c3024 < Cyrillus/M < Cyrus --- > Cyrus/M 3801c3028 < Czechoslovakian/MS --- > Czechoslovakian/SM 3803c3030 < Czerny --- > Czerny/M 3805c3032 < D/MN --- > D/M 3816c3043 < DEC/SDG --- > DEC/SD 3817a3045 > DHS 3819a3048 > DMCA 3835,3837c3064,3065 < DVD < DVDs < DVR/S --- > DVD/S > DVR/SM 3839d3066 < Dacca/M 3843d3069 < Dacie/M 3845d3070 < Dacy/M 3849,3853c3074,3075 < Dael/M < Daffi/M < Daffie/M < Daffy/M < Dag/M --- > Daffy's > Dag's 3856,3858c3078,3079 < Daguerre < Dagwood < Dahlia/M --- > Daguerre/M > Dagwood/M 3860d3080 < Daile/M 3862,3865c3082 < Daisey/M < Daisi/M < Daisie/M < Daisy --- > Daisy/M 3868c3085 < Dakotan --- > Dakotan/M 3870,3871c3087,3088 < Dale < Dalenna/M --- > Dalai > Dale/M 3873c3090 < Dali/S --- > Dali/M 3879,3880d3095 < Dalli/MS < Dallon/M 3883,3885d3097 < Daloris/M < Dalston/M < Dalt/M 3890c3102 < Dame/N --- > Dame/MN 3893c3105 < Damien --- > Damien/M 3895,3896c3107 < Damita/M < Damocles --- > Damocles/M 3898c3109 < Dan --- > Dan/M 3900c3111,3112 < Danae --- > Danae/M > Danaë/M 3902,3904c3114 < Danelaw < Danell/M < Danella/M --- > Danelaw/M 3911,3912d3120 < Danice/M < Danie/M 3918,3919c3126 < Danika/M < Danila/M --- > Daniels/M 3921,3922d3127 < Danit/M < Danita/M 3924d3128 < Dannel/M 3928d3131 < Dannye/M 3931c3134 < Danton --- > Danton/M 3933,3938c3136 < Danubian < Danya/M < Danyelle/M < Danyette/M < Daphene/M < Daphna/M --- > Danubian/M 3942,3944d3139 < Darb/M < Darbee/M < Darbie/M 3946d3140 < Darcee/M 3951d3144 < Darda/M 3953,3956c3146 < Dare < Dareen/M < Darell/M < Darelle/M --- > Dare/M 3958c3148 < Darfur --- > Darfur/M 3961,3962d3150 < Darice/M < Darill/M 3965,3966c3153,3154 < Darius < Darjeeling --- > Darius/M > Darjeeling/M 3968d3155 < Darleen/M 3970d3156 < Darline/M 3972,3974d3157 < Darlleen/M < Darn/M < Darnall/M 3979d3161 < Darrelle/M 3981d3162 < Darrick/M 3983c3164 < Darrow --- > Darrow/M 3985d3165 < Darsey/M 3988,3989c3168,3169 < Dartmoor < Dartmouth --- > Dartmoor/M > Dartmouth/M 3992c3172 < Darwinian --- > Darwinian/M 3997,3998d3176 < Daryle/M < Daryn/M 4000,4004c3178 < Dasi/M < Dasie/M < Dasya/M < Datamation/S < Datha/M --- > Datamation 4006,4009c3180,3182 < Daumier < Daune/M < Dav/MN < Davao --- > Daumier/M > Dav/M > Davao/M 4011,4014c3184 < Daveen/M < Daven/M < Davenport < Daveta/M --- > Davenport/M 4018d3187 < Davidde/M 4021c3190,3191 < Davie/MS --- > Davie/M > Davies/M 4024,4027c3194,3197 < Davine/M < Davis < Davy/S < Dawes --- > Davis/M > Davy/SM > Dawes/M > Dawkins 4029,4031c3199,3200 < Dawna/M < Dawson < Day --- > Dawson/M > Day/M 4033d3201 < Dayle/M 4035c3203 < Dayton --- > Dayton/M 4037d3204 < Ddene/M 4043c3210 < Dean --- > Dean/M 4054,4055d3220 < Debee/M < Debera/M 4058d3222 < Debor/M 4060c3224 < Deborah --- > Deborah/M 4063,4064c3227,3228 < Debs < Debussy --- > Debs/M > Debussy/M 4066d3229 < Decalog 4068c3231 < Decatur --- > Decatur/M 4070c3233 < Deccan --- > Deccan/M 4072c3235 < Deck/MR --- > Decker/M 4075,4079c3238 < Dedie/M < Dedra/M < Dee < Deeann/M < Deeanne/M --- > Dee/M 4082d3240 < Deerdre/M 4084,4087c3242,3243 < Deeyn/M < Defoe < Degas < Dehlia/M --- > Defoe/M > Degas/M 4089,4091c3245,3246 < Deimos < Deina/M < Deirdre --- > Deimos/M > Deirdre/M 4094c3249 < Del/Y --- > Del/M 4096c3251 < Delacroix --- > Delacroix/M 4098d3252 < Delainey/M 4102c3256 < Delawarean/MS --- > Delawarean/SM 4104,4105d3257 < Delcina/M < Delcine/M 4107c3259 < Delgado --- > Delgado/M 4110c3262 < Delibes --- > Delibes/M 4112d3263 < Delila/M 4115,4116c3266 < Delinda/M < Delius --- > Delius/M 4119d3268 < Delly/M 4123,4124c3272 < Delmonico < Delmor/M --- > Delmonico/M 4127d3274 < Delora/M 4132c3279 < Delphic --- > Delphic/M 4134d3280 < Delphinia/M 4136c3282 < Delta --- > Delta/M 4141,4143c3287 < Demetra/M < Demetre/M < Demetri/SM --- > Demetri/M 4149c3293 < Democritus --- > Democritus/M 4152c3296 < Dempsey --- > Dempsey/M 4156c3300 < Deneb --- > Deneb/M 4160c3304 < Denice/M --- > Denis/M 4163,4164d3306 < Denna/M < Dennet/M 4166d3307 < Denni/MS 4167a3309 > Dennis/M 4172c3314 < Deny/M --- > Deny's 4174d3315 < Denyse/M 4176d3316 < Deonne/M 4179c3319 < Derby --- > Derby/M 4184d3323 < Derrek/M 4187,4189d3325 < Derrik/M < Derril/M < Derron/M 4191,4192d3326 < Derward/M < Derwin/M 4197d3330 < Desirae/M 4199d3331 < Desiri/M 4201d3332 < Desmund/M 4204c3335 < Deutschmark/MS --- > Deutschmark/SM 4212,4215d3342 < Devina/M < Devinne/M < Devland/M < Devlen/M 4218d3344 < Devondra/M 4220,4225d3345 < Devonna/M < Devonne/M < Devora/M < Devy/M < Dew/M < Dewain/M 4229d3348 < Dewie/M 4233c3352 < Dexter --- > Dexter/M 4237c3356 < Di/S --- > Di/SM 4239,4241c3358,3359 < DiMaggio < Diaghilev < Diahann/M --- > DiMaggio/M > Diaghilev/M 4245d3362 < Diandra/M 4247d3363 < Dianemarie/M 4251,4252d3366 < Diannne/M < Diarmid/M 4255,4256c3369,3370 < Diaz < Dick/X --- > Dick/XM > Dickens/M 4260c3374 < Dickinson --- > Dickinson/M 4264c3378 < Diderot --- > Diderot/M 4268c3382 < Diefenbaker --- > Diefenbaker/M 4271d3384 < Diena/M 4273d3385 < Diesel/M 4275,4276c3387,3388 < Dietrich < Digg/MS --- > Dietrich/M > Digg/SM 4278,4279c3390 < Dijon < Dilan/M --- > Dijon/M 4281d3391 < Dill/M 4283d3392 < Dillie/M 4286d3394 < Dilly/M 4288d3395 < Dimitry/M 4290,4291c3397 < Dinah < Dinnie/M --- > Dinah/M 4294,4295c3400,3401 < Diocletian < Diogenes --- > Diocletian/M > Diogenes/M 4298d3403 < Dionis/M 4301c3406 < Dionysian --- > Dionysian/M 4304c3409 < Dior --- > Dior/M 4307,4308c3412,3413 < Dirac < Dirichlet --- > Dirac/M > Dirichlet/M 4311,4313c3416,3418 < Disney < Disneyland < Disraeli --- > Disney/M > Disneyland/M > Disraeli/M 4318c3423 < Dix --- > Dix/M 4320c3425 < Dixiecrat --- > Dixiecrat/M 4323d3427 < Djakarta/M 4327,4330c3431,3433 < Dnepropetrovsk < Dnieper < Dniester < Dniren/M --- > Dnepropetrovsk/M > Dnieper/M > Dniester/M 4333c3436 < Dobro --- > Dobro/M 4336d3438 < Dode/M 4343,4344c3445 < Dody/M < Doe --- > Doe/M 4346c3447 < Dolby --- > Dolby/M 4349d3449 < Doll/M 4351d3450 < Dolli/M 4355d3453 < Dolorita/SM 4360d3457 < Domeniga/M 4362d3458 < Dominga/M 4366c3462 < Dominic --- > Dominic/M 4373,4374c3469 < Domitian < Don't --- > Domitian/M 4376c3471 < Dona --- > Dona/M 4381,4387c3476 < Donall/M < Donalt/M < Donatello < Donaugh/M < Donavon/M < Donella/M < Donelle/M --- > Donatello/M 4389,4392d3477 < Donetta/M < Donia/M < Donica/M < Donielle/M 4395,4396c3480 < Donna < Donnamarie/M --- > Donna/M 4400d3483 < Donni/M 4405c3488 < Doolittle --- > Doolittle/M 4407c3490 < Doppler --- > Doppler/M 4409,4414c3492 < Doralia/M < Doralin/M < Doralyn/M < Doralynn/M < Doralynne/M < Dorcas --- > Dorcas/M 4417,4423d3494 < Dorelia/M < Dorella/M < Dorelle/M < Dorena/M < Dorene/M < Doretta/M < Dorette/M 4429d3499 < Dorice/M 4431d3500 < Dorine/M 4433d3501 < Dorisa/M 4435d3502 < Dorita/M 4438,4439d3504 < Dorolice/M < Dorolisa/M 4441d3505 < Doroteya/M 4445,4446d3508 < Dorree/M < Dorri/SM 4448,4449c3510,3511 < Dorry/M < Dorset --- > Dorris > Dorset/M 4451d3512 < Dorthea/M 4453,4454c3514 < Dortmund < Dory/M --- > Dortmund/M 4457d3516 < Dostoyevsky/M 4459d3517 < Doti/M 4461d3518 < Dotti/M 4463c3520 < Dotty/M --- > Dotty's 4469,4472c3526,3528 < Douglas < Douglass < Dougy/M < Douro --- > Douglas/M > Douglass/M > Douro/M 4475,4476c3531,3532 < Dow < Downs --- > Dow/M > Downs/M 4479c3535 < Doyle --- > Doyle/M 4482c3538 < Draconian --- > Draconian/M 4484c3540 < Drake --- > Drake/M 4486c3542 < Drambuie --- > Drambuie/M 4491,4493c3547 < Dreddy/M < Dredi/M < Dreiser --- > Dreiser/M 4498a3553 > Dropbox/M 4500,4504d3554 < Druci/M < Drucie/M < Drucill/M < Drucy/M < Drud/M 4506,4509c3556 < Drugi/M < Druid < Drusi/M < Drusie/M --- > Druid/M 4511,4512c3558 < Drusy/M < Dryden --- > Dryden/M 4515c3561 < DuPont --- > DuPont/M 4517c3563 < Dubai --- > Dubai/M 4522,4524c3568,3569 < Duchamp < Dud/M < Dudley --- > Duchamp/M > Dudley/M 4529c3574 < Duisburg --- > Duisburg/M 4531,4533d3575 < Dukey/M < Dukie/M < Duky/M 4535,4538d3576 < Dulcea/M < Dulci/M < Dulcia/M < Dulciana/M 4540d3577 < Dulcine/M 4542,4546c3579,3581 < Dulcy/M < Dulles < Dulsea/M < Duluth < Dumas --- > Dulles/M > Duluth/M > Dumas/M 4549,4554c3584,3587 < Dumpster < Dun/M < Dunant < Dunbar < Dunc/M < Duncan --- > Dumpster/M > Dunant/M > Dunbar/M > Duncan/M 4556c3589 < Dunedin --- > Dunedin/M 4566c3599 < Durant --- > Durant/M 4568,4569c3601,3602 < Durban < Durer --- > Durban/M > Durer/M 4572,4573c3605,3606 < Durkheim < Duroc --- > Durkheim/M > Duroc/M 4584c3617 < Dutchmen --- > Dutchmen/M 4586,4589c3619,3622 < Duvalier < Dvina < Dvorak < Dwain/M --- > Duvalier/M > Dvina/M > Dvorak/M > Dvorák/M 4594,4598d3626 < Dyana/M < Dyane/M < Dyann/M < Dyanna/M < Dyanne/M 4602d3629 < Dynah/M 4605c3632,3634 < Dzungaria --- > Dzungaria/M > Dürer/M > Düsseldorf/M 4630c3659,3660 < ESPN --- > ESPN/M > ESR 4636,4637c3666 < Eachelle/M < Eada/M --- > EULA/S 4639,4641c3668 < Eadith/M < Eadmund/M < Eakins --- > Eakins/M 4643d3669 < Ealasaid/M 4645c3671 < Earhart --- > Earhart/M 4649d3674 < Earlie/M 4651c3676 < Early/M --- > Early's 4656,4658d3680 < Earth/M < Eartha/M < Earvin/M 4662c3684 < Eastman --- > Eastman/M 4671d3692 < Ebeneser/M 4674,4677c3695,3696 < Ebert < Eberto/M < Ebola < Ebonee/M --- > Ebert/M > Ebola/M 4681c3700 < Ecclesiastes --- > Ecclesiastes/M 4688c3707 < Ecuadorian/MS --- > Ecuadorian/SM 4692d3710 < Edan/M 4694,4695c3712 < Edda < Eddi/M --- > Edda/M 4700,4701d3716 < Edee/M < Edeline/M 4703c3718 < Edgar --- > Edgar/M 4708d3722 < Edik/M 4712d3725 < Edita/M 4715,4716d3727 < Edithe/M < Ediva/M 4718d3728 < Edmon/M 4724c3734 < Edsel --- > Edsel/M 4727d3736 < Eduino/M 4732c3741,3742 < Edwin --- > Edwards/M > Edwin/M 4735d3744 < Edyth/M 4751,4753c3760,3762 < Ehrlich < Eichmann < Eiffel --- > Ehrlich/M > Eichmann/M > Eiffel/M 4755,4756d3763 < Eilis/M < Eimile/M 4759d3765 < Eirena/M 4761c3767 < Eisenstein --- > Eisenstein/M 4766,4767c3772,3773 < Elaine < Elam --- > Elaine/M > Elam/M 4769d3774 < Elane/M 4773c3778 < Elba --- > Elba/M 4775,4779c3780,3781 < Elbert < Elberta/M < Elbertina/M < Elbertine/M < Elbrus --- > Elbert/M > Elbrus/M 4783d3784 < Eldorado 4791d3791 < Eleen/M 4795d3794 < Elenore/M 4798d3796 < Elfie/M 4801,4804c3799,3800 < Elfrieda/M < Elga/M < Elgar < Eli --- > Elgar/M > Eli/M 4806,4808c3802 < Elianora/M < Elianore/M < Elicia/M --- > Elias/M 4813,4814c3807 < Elinore/M < Eliot --- > Eliot/M 4817c3810 < Elisabeth --- > Elisabeth/M 4821c3814 < Elisha --- > Elisha/M 4823d3815 < Elita/M 4825d3816 < Elizabet/M 4827,4828c3818 < Elizabethan/MS < Elka/M --- > Elizabethan/SM 4831,4832d3820 < Elladine/M < Ellary/M 4835,4836d3822 < Ellene/M < Ellerey/M 4839d3824 < Ellette/M 4842c3827 < Ellington --- > Ellington/M 4845c3830 < Ellis --- > Ellis/M 4847,4848d3831 < Ellissa/M < Ellswerth/M 4853d3835 < Ellynn/M 4859,4860d3840 < Elna/MH < Elnar/M 4863,4864c3843 < Elnore/M < Elohim --- > Elohim/M 4867,4868d3845 < Elonore/M < Elora/M 4873,4874c3850 < Else/M < Elset/M --- > Else's 4877d3852 < Elsi/M 4879c3854 < Elsinore --- > Elsinore/M 4882,4883d3856 < Elsworth/M < Elsy/M 4888d3860 < Elvera/M 4891d3862 < Elvina/M 4894d3864 < Elvyn/M 4897d3866 < Elwira/M 4900d3868 < Elyn/M 4903,4905c3871 < Elysha/M < Elysia < Elysian --- > Elysian/M 4908c3874 < Em/M --- > Elysée/M 4911,4912d3876 < Emalee/M < Emalia/M 4915,4918d3878 < Emelda/M < Emelen/M < Emelia/M < Emelina/M 4920,4923c3880 < Emelita/M < Emelyne/M < Emera/M < Emerson --- > Emerson/M 4927,4928d3883 < Emilee/M < Emili/M 4931d3885 < Emiline/M 4938,4939d3891 < Emlynn/M < Emlynne/M 4941d3892 < Emmalee/M 4943,4946c3894 < Emmalyn/M < Emmalynn/M < Emmalynne/M < Emmanuel --- > Emmanuel/M 4949d3896 < Emmery/M 4952,4953d3898 < Emmey/M < Emmi/M 4955,4959c3900 < Emmit/M < Emmott/M < Emmy < Emmye/M < Emogene/M --- > Emmy/M 4961,4962d3901 < Emyle/M < Emylee/M 4965,4967c3904,3905 < Endymion < Eng < Engadget/M --- > Endymion/M > Eng/M 4971d3908 < Englebert/M 4974c3911 < Englishmen --- > Englishmen/M 4976,4978c3913,3914 < Englishwomen < Engracia/M < Enid --- > Englishwomen/M > Enid/M 4983,4984c3919,3920 < Enoch < Enos --- > Enoch/M > Enos/M 4986d3921 < Enrichetta/M 4988d3922 < Enrika/M 4990d3923 < Enriqueta/M 4994,4995d3926 < Eolanda/M < Eolande/M 4997,5000c3928,3930 < Ephesian/S < Ephesus < Ephraim < Ephrayim/M --- > Ephesian/MS > Ephesus/M > Ephraim/M 5002,5003c3932,3933 < Epictetus < Epicurean --- > Epictetus/M > Epicurean/M 5006d3935 < Epinions/M 5011c3940 < Epsom --- > Epsom/M 5013,5014c3942,3943 < Epstein < Equuleus --- > Epstein/M > Equuleus/M 5023,5025c3952 < Erector < Erek/M < Erena/M --- > Erector/M 5027,5028c3954 < Erhard < Erhart/M --- > Erhard/M 5032d3957 < Ericha/M 5036,5039c3961,3964 < Ericson < Ericsson < Eridanus < Erie --- > Ericson/M > Ericsson/M > Eridanus/M > Erie/M 5042,5046c3967 < Eriksson < Erin < Erina/M < Erinn/M < Erinna/M --- > Erin/M 5053,5059d3973 < Ermanno/M < Ermengarde/M < Ermentrude/M < Ermin/M < Ermina/M < Erminia/M < Erminie/M 5061d3974 < Ernaline/M 5063d3975 < Ernesta/M 5066d3977 < Ernestus/M 5068,5069c3979 < Ernst < Erny/M --- > Ernst/M 5071d3980 < Errick/M 5076d3984 < Ertha/M 5080d3987 < Eryn/M 5087,5088d3993 < Esma/M < Esmaria/M 5096d4000 < Esra/M 5099,5101c4003,4005 < Essene < Essequibo < Essex --- > Essene/M > Essequibo/M > Essex/M 5103d4006 < Essy/M 5107d4009 < Estel/M 5109,5110d4010 < Estele/M < Estell/M 5115c4015,4016 < Estes --- > Esterházy/M > Estes/M 5122,5123d4022 < Estrellita/M < Etan/M 5125d4023 < Ethe/M 5128,5131d4025 < Ethelda/M < Ethelin/M < Ethelind/M < Etheline/M 5134c4028 < Ethernet --- > Ethernet/M 5137d4030 < Ethyl/M 5140,5142c4033,4035 < Eton < Etruria < Etruscan --- > Eton/M > Etruria/M > Etruscan/M 5144d4036 < Etti/M 5152c4044 < Euclidean --- > Euclidean/M 5154d4045 < Euell/M 5156c4047 < Eugene --- > Eugene/M 5161,5162d4051 < Eugine/M < Eukaryota/MS 5165c4054 < Euler --- > Euler/M 5173,5174c4062,4063 < Euripides < Eurodollar/MS --- > Euripides/M > Eurodollar/SM 5183c4072 < Ev/MN --- > Ev/M 5185d4073 < Evaleen/M 5187d4074 < Evangelia/M 5189d4075 < Evangelin/M 5192,5195c4078,4080 < Evangelist < Evania/M < Evanne/M < Evansville --- > Evangelist/M > Evans/M > Evansville/M 5197,5198d4081 < Eveleen/M < Evelin/M 5201,5202c4084 < Evelyn < Even/M --- > Evelyn/M 5206d4087 < Evered/M 5217,5219d4097 < Evonne/M < Evvie/M < Evvy/M 5221d4098 < Evyn/M 5223d4099 < Eward/M 5232c4108 < Exercycle --- > Exercycle/M 5238,5240c4114 < Eyde/M < Eydie/M < Eyre --- > Eyre/M 5242,5243c4116 < Ezechiel/M < Ezekiel --- > Ezekiel/M 5245,5248c4118 < Eziechiele/M < Ezmeralda/M < Ezra < Ezri/M --- > Ezra/M 5266a4137 > FSF/M 5270a4142 > FWIW 5273d4144 < Fabe/RM 5275c4146,4147 < Faberge --- > Faberge/M > Fabergé/M 5277d4148 < Fabiano/M 5283c4154 < Fafnir --- > Fafnir/M 5286,5289c4157,4158 < Fahrenheit < Faina/M < Fair/M < Fairbanks --- > Fahrenheit/M > Fairbanks/M 5294,5297c4163,4165 < Faisalabad < Faith < Falasha < Falito/M --- > Faisalabad/M > Faith/M > Falasha/M 5298a4167 > Falklands/M 5304,5309d4172 < Fan < Fanchette/M < Fanchon/M < Fancie/M < Fancy/M < Fanechka/M 5311d4173 < Fanni/M 5314,5315c4176 < Fanya/M < Far/MY --- > Far's 5319d4179 < Farand/M 5321,5324d4180 < Farica/M < Farlay/M < Farlee/M < Farleigh/M 5326,5328c4182 < Farlie/M < Farly/M < Farmer --- > Farmer/M 5330,5331c4184 < Farra/M < Farragut --- > Farragut/M 5340d4192 < Fascism 5345c4197 < Fates --- > Fates/M 5347,5348c4199,4200 < Fatima < Fatimid --- > Fatima/M > Fatimid/M 5350,5352c4202 < Faulknerian < Faun/M < Faunie/M --- > Faulknerian/M 5355c4205 < Faustian --- > Faustian/M 5357d4206 < Faustine/M 5360,5365c4209 < Favorited < Fawkes < Fawn/M < Fawne/M < Fawnia/M < Fax/M --- > Fawkes/M 5367d4210 < Faydra/M 5370d4212 < Fayina/M 5372,5373d4213 < Fayth/M < Faythe/M 5378c4218 < FedEx --- > FedEx/M 5381d4220 < Federica/M 5383,5384c4222 < Fedora/M < Fee/M --- > Feds/M 5386,5387d4223 < Felic/M < Felicdad/M 5390d4225 < Felicio/M 5392,5393d4226 < Felicle/M < Felike/M 5395d4227 < Felipa/M 5397,5398d4228 < Felisha/M < Felita/M 5400,5403c4230 < Feliza/M < Felizio/M < Fellini < Fenelia/M --- > Fellini/M 5405c4232 < Fenian --- > Fenian/M 5408d4234 < Feodora/M 5412,5414c4238 < Ferdinand < Ferdinanda/M < Ferdinande/M --- > Ferdinand/M 5416c4240 < Fergus --- > Fergus/M 5420c4244 < Fermi --- > Fermi/M 5432,5433c4256,4257 < Ferris < Fey/M --- > Ferris/M > Fey's 5435,5436c4259 < Fez < Fiann/M --- > Fez/M 5439c4262 < Fiberglas --- > Fiberglas/M 5441c4264 < Fichte --- > Fichte/M 5443d4265 < Fidela/M 5446d4267 < Fidelity/M 5448,5449c4269,4270 < Fidole/M < Field/GS --- > Fielding/M > Fields/M 5451d4271 < Fifine/M 5456,5460d4275 < Filbert/M < Filberte/M < Filberto/M < Filia/M < Filide/M 5463d4277 < Filippa/M 5468,5470c4282 < Filmore/M < Filofax < Fin --- > Filofax/M 5485,5487d4296 < Fionna/M < Fionnula/M < Fiorenze/M 5490,5491c4299,4300 < Fischer < Fisher --- > Fischer/M > Fisher/M 5495c4304 < Fitzgerald --- > Fitzgerald/M 5504c4313 < Flaubert --- > Flaubert/M 5506a4316 > Fleming/M 5509a4320 > Fletcher/M 5511d4321 < Fleurette/M 5515,5516c4325,4326 < Flint < Flintstones --- > Flint/M > Flintstones/M 5520,5521c4330 < Flora < Florance/M --- > Flora/M 5523d4331 < Florella/M 5526,5529c4334,4335 < Florentia/M < Florentine < Florenza/M < Flores --- > Florentine/M > Flores/M 5531,5532d4336 < Flori/SM < Floria/M 5535c4339 < Floridan --- > Floridan/M 5537,5538d4340 < Florie/M < Florina/M 5541c4343 < Florri/M --- > Floris 5543d4344 < Florry/M 5546d4346 < Flossi/M 5548,5551c4348,4350 < Flossy/M < Flowers < Floyd < Flss/M --- > Flossy's > Flowers/M > Floyd/M 5554,5560c4353,4359 < Foch < Fokker < Foley < Folgers < Folsom < Fomalhaut < Fonda --- > Foch/M > Fokker/M > Foley/M > Folgers/M > Folsom/M > Fomalhaut/M > Fonda/M 5562,5564d4360 < Fonsie/M < Fonz/M < Fonzie/M 5566c4362 < Forbes --- > Forbes/M 5569a4366 > Forester/M 5574c4371 < Forrest/R --- > Forrest/MR 5576,5577c4373,4374 < Forster < Fortaleza --- > Forster/M > Fortaleza/M 5580c4377 < Foster --- > Foster/M 5582,5583c4379,4380 < Foucault < Fourier --- > Foucault/M > Fourier/M 5586c4383 < Fowler --- > Fowler/M 5589c4386 < Fragonard --- > Fragonard/M 5592,5593c4389,4390 < Francene/M < Francesca --- > Frances/M > Francesca/M 5595d4391 < Franchot/M 5597c4393 < Francis --- > Francis/M 5599c4395 < Franciscan/SM --- > Franciscan/MS 5601,5606c4397,4398 < Franciska/M < Franciskus/M < Franck < Francklin/M < Francklyn/M < Franco --- > Franck/M > Franco/M 5609,5610c4401,4402 < Francyne/M < Franglais --- > Francophile > Franglais/M 5613c4405 < Frankenstein --- > Frankenstein/M 5615a4408 > Frankfurter/M 5618c4411 < Franklin --- > Franklin/M 5619a4413 > Franks/M 5621d4414 < Franni/M 5625d4417 < Frants/M 5628,5629c4420 < Frasco/M < Fraser --- > Fraser/M 5631d4421 < Frasquito/M 5634,5635c4424 < Frayda/M < Fraze/RM --- > Frazer 5639d4427 < Freddi/M 5642,5643d4429 < Fredek/M < Fredelia/M 5647,5648c4433 < Frederick < Fredericka/M --- > Frederick/M 5651d4435 < Frederigo/M 5654,5656d4437 < Fredi/M < Fredia/M < Fredra/M 5660c4441 < Free/M --- > Free's 5662d4442 < Freedman/M 5667d4446 < Freemon/M 5670c4449 < Fremont --- > Fremont/M 5673c4452 < Frenchmen --- > Frenchmen/M 5675,5676c4454,4455 < Frenchwomen < Freon --- > Frenchwomen/M > Freon/M 5680c4459 < Freudian --- > Freudian/M 5686c4465 < Friedan --- > Friedan/M 5688c4467 < Friedman --- > Friedman/M 5690d4468 < Friedrick/M 5693,5695c4471,4473 < Frigidaire < Frisbee < Frisco --- > Frigidaire/M > Frisbee/M > Frisco/M 5699,5702c4477,4481 < Frobisher < Froissart < Fromm < Fronde --- > Frobisher/M > Frodo/M > Froissart/M > Fromm/M > Fronde/M 5706c4485 < Frostbelt --- > Frostbelt/M 5708c4487 < Fry --- > Fry/M 5711,5712c4490,4491 < Fuentes < Fugger --- > Fuentes/M > Fugger/M 5717a4497,4498 > Fukushima/M > Fukuyama/M 5719,5721c4500,4502 < Fulbright < Fuller < Fullerton --- > Fulbright/M > Fuller/M > Fullerton/M 5724,5725c4505,4506 < Funafuti < Fundy --- > Funafuti/M > Fundy/M 5728c4509,4510 < Fushun --- > Furtwängler/M > Fushun/M 5730c4512 < Fuzzbuster --- > Fuzzbuster/M 5735a4518 > GCC/M 5741a4525 > GIF 5743c4527 < GM --- > GM/M 5746a4531 > GNU/M 5750a4536,4537 > GPS > GPU 5757,5759d4543 < Gabbey/M < Gabbi/M < Gabbie/M 5762d4545 < Gabey/M 5764c4547 < Gabie/M --- > Gable/M 5768c4551 < Gabriel --- > Gabriel/M 5771d4553 < Gabriell/M 5774,5776d4555 < Gabriellia/M < Gabriello/M < Gabrila/M 5779d4557 < Gaddafi 5784d4561 < Gaelan/M 5786,5787c4563,4565 < Gagarin < Gage --- > Gagarin/M > Gage/M > Gaia/M 5789d4566 < Gaile/M 5793d4569 < Gal/N 5796,5798c4572,4574 < Galatea < Galatia < Galatians --- > Galatea/M > Galatia/M > Galatians/M 5800c4576 < Galbraith --- > Galbraith/M 5802,5803c4578,4579 < Galen < Galibi --- > Galen/M > Galibi/M 5805c4581 < Galilee --- > Galilee/M 5810d4585 < Gallard/M 5812c4587 < Gallic --- > Gallic/M 5816c4591 < Gallup --- > Gallup/M 5818c4593 < Galsworthy --- > Galsworthy/M 5820,5821c4595 < Galvani < Galven/M --- > Galvani/M 5826c4600 < Gamay --- > Gamay/M 5834a4609 > Gandalf/M 5836c4611 < Gandhian --- > Gandhian/M 5840d4614 < Gannie/M 5842d4615 < Ganny/M 5846,5848c4619 < Gar/MH < Garald/M < Garbo --- > Garbo/M 5851,5852d4621 < Gardener/M < Gardie/M 5855d4623 < Gardy/M 5857d4624 < Garek/M 5862c4629 < Gargantua --- > Gargantua/M 5864,5870c4631,4632 < Garik/M < Garland < Garmin/M < Garner < Garnet/M < Garnette/M < Garold/M --- > Garland/M > Garner/M 5872,5874d4633 < Garrek/M < Garret/M < Garreth/M 5876,5880c4635,4636 < Garrick < Garrik/M < Garrison < Garrot/M < Garrott/M --- > Garrick/M > Garrison/M 5883,5884c4639 < Garv/M < Garvey --- > Garvey/M 5886,5887d4640 < Garvy/M < Garwin/M 5889c4642 < Gary --- > Gary/M 5896c4649 < Gasser --- > Gasser/M 5898c4651,4652 < Gates --- > Gastroenterology > Gates/M 5906d4659 < Gaultiero/M 5908c4661 < Gaussian --- > Gaussian/M 5911c4664 < Gautier --- > Gautier/M 5916,5917d4668 < Gavra/M < Gavrielle/M 5919,5920c4670 < Gawen/M < Gay --- > Gay/M 5922,5929c4672 < Gayel/M < Gayelord/M < Gayla/M < Gayle/RM < Gayleen/M < Gaylene/M < Gayler/M < Gaylor/M --- > Gayle/M 5932,5933c4675,4676 < Gaza < Gaziantep --- > Gaza/M > Gaziantep/M 5938,5939d4680 < Gearalt/M < Gearard/M 5941d4681 < Geer/M 5944c4684 < Gehrig --- > Gehrig/M 5948d4687 < Gelya/M 5949a4689 > Gen/M 5962,5964d4701 < Genni/M < Gennie/M < Gennifer/M 5968,5970c4705 < Genovera/M < Gentile/MS < Gentoo --- > Gentoo/M 5972d4706 < Genvieve/M 5976,5977d4709 < Geoffry/M < Georas/M 5981,5984d4712 < Georgeanna/M < Georgeanne/M < Georgena/M < Georgeta/M 5986,5987c4714 < Georgetta/M < Georgette --- > Georgette/M 5993d4719 < Georgianne/M 5996d4721 < Georgine/M 5997a4723 > Ger/M 5999d4724 < Geralda/M 6005c4730 < Gerek/M --- > Gere/M 6007d4731 < Gerhardine/M 6010,6013d4733 < Gerianna/M < Gerianne/M < Gerick/M < Gerik/M 6015d4734 < Gerladina/M 6019d4737 < Germana/M 6022d4739 < Germayne/M 6024c4741 < Geronimo --- > Geronimo/M 6027,6028d4743 < Gerrie/M < Gerrilee/M 6030c4745 < Gershwin --- > Gershwin/M 6032,6033d4746 < Gerta/M < Gerti/M 6036d4748 < Gertruda/M 6042,6043c4754,4755 < Gethsemane < Getty --- > Gethsemane/M > Getty/M 6045c4757,4758 < Gewurztraminer --- > Gewurztraminer/M > Gewürztraminer/M 6048,6049c4761 < Ghanian/MS < Ghats --- > Ghats/M 6051,6056c4763,4765 < Ghent < Gherardo/M < Ghibelline < Giacinta/M < Giacobo/M < Giacometti --- > Ghent/M > Ghibelline/M > Giacometti/M 6058d4766 < Giacopo/M 6060,6061d4767 < Giana/M < Gianina/M 6066d4771 < Giavani/M 6069,6072c4774,4775 < Gibbie/M < Gibbon < Gibbs < Gibby/M --- > Gibbon/M > Gibbs/M 6074,6077c4777,4780 < Gibson < Gide < Gideon < Gielgud --- > Gibson/M > Gide/M > Gideon/M > Gielgud/M 6079c4782 < Giff/MR --- > Giff/M 6081,6082d4783 < Giffer/M < Giffie/M 6084d4784 < Giffy/M 6089d4788 < Gilberta/M 6091,6092d4789 < Gilbertina/M < Gilbertine 6094d4790 < Gilburt/M 6097,6101c4793,4796 < Gilead < Gilemette/M < Giles < Gilgamesh < Gill --- > Gilead/M > Giles/M > Gilgamesh/M > Gill/M 6104c4799 < Gillespie --- > Gillespie/M 6106d4800 < Gilli/M 6109c4803 < Gillie/M --- > Gillie's 6111a4806 > Gilman 6114d4808 < Ginelle/M 6118d4811 < Ginni/M 6120d4812 < Ginnifer/M 6123c4815 < Ginsberg --- > Ginsberg/M 6128d4819 < Giorgia/M 6130,6131c4821,4822 < Giorgione < Giotto --- > Giorgione/M > Giotto/M 6134,6136d4824 < Gipsy/SM < Giralda/M < Giraldo/M 6138c4826 < Giraudoux --- > Giraudoux/M 6140d4827 < Giselbert/M 6142d4828 < Gisella/M 6144,6145c4830,4831 < Gish < Giuditta/M --- > Gish/M > GitHub/M 6151,6152d4836 < Giustina/M < Giustino/M 6155d4838 < Gizela/M 6157,6158d4839 < Glad/M < Gladi/M 6160,6161c4841,4842 < Gladys < Glaser --- > Gladys/M > Glaser/M 6168d4848 < Gleda/M 6172d4851 < Glenden/M 6174d4852 < Glenine/M 6179,6181c4857 < Glennis/M < Glori/M < Gloria --- > Gloria/M 6183,6185c4859 < Gloriane/M < Glory/M < Gloucester --- > Gloucester/M 6189d4862 < Glynda/M 6192d4864 < Glynnis/M 6194,6195c4866 < Gnni/M < Gnostic --- > Gnostic/M 6197c4868,4869 < Goa --- > GnuPG > Goa/M 6200,6203c4872,4873 < Godard < Godart/M < Goddard < Goddart/M --- > Godard/M > Goddard/M 6205d4874 < Godfree/M 6207d4875 < Godfry/M 6212,6213c4880,4881 < Godthaab < Godunov --- > Godthaab/M > Godunov/M 6216,6217c4884,4885 < Goebbels < Goering --- > Goebbels/M > Goering/M 6221,6222c4889,4890 < Gog < Gogol --- > Gog/M > Gogol/M 6225c4893 < Golconda --- > Golconda/M 6227d4894 < Goldarina/M 6230,6231d4896 < Goldi/M < Goldia/M 6234,6235c4899 < Goldina/M < Golding --- > Golding/M 6237c4901 < Goldsmith --- > Goldsmith/M 6239c4903 < Goldwyn --- > Goldwyn/M 6241c4905 < Golgi --- > Golgi/M 6243c4907 < Goliath --- > Goliath/M 6246,6247c4910,4911 < Gompers < Gomulka --- > Gompers/M > Gomulka/M 6249c4913 < Gonzales --- > Gonzales/M 6252d4915 < Goober/M 6255c4918 < Goodman --- > Goodman/M 6259c4922 < Goodyear --- > Goodyear/M 6264,6265c4927 < Goraud/M < Gorbachev --- > Gorbachev/M 6270,6271c4932,4933 < Gordimer < Gordon --- > Gordimer/M > Gordon/M 6273c4935 < Gore --- > Gore/M 6276c4938 < Gorgas --- > Gorgas/M 6278c4940 < Gorgonzola --- > Gorgonzola/M 6283,6284c4945 < Gotham < Gothart/M --- > Gotham/M 6289,6290c4950,4951 < Gould < Gounod --- > Gould/M > Gounod/M 6292c4953 < Goya --- > Goya/M 6295,6296c4956,4957 < Gracchus < Grace --- > Gracchus/M > Grace/M 6301,6302d4961 < Gradeigh/M < Gradey/M 6304d4962 < Graehme/M 6308,6315c4966,4971 < Graham < Grahame < Graig/M < Grail < Gram/M < Grammy < Grampians < Gran/M --- > Graham/M > Grahame/M > Grail/M > Grammy/M > Grampians/M > Gran's 6319d4974 < Granny/M 6322d4976 < Granthem/M 6325c4979 < Grass --- > Grass/M 6328,6331c4982,4983 < Gratiana/M < Graves < Gray < Grayce/M --- > Graves/M > Gray/M 6333c4985 < Grecian --- > Grecian/M 6336c4988 < Greeley --- > Greeley/M 6338c4990 < Greene --- > Greene/M 6349d5000 < Greggory/M 6351d5001 < Gregoor/M 6353c5003 < Gregorian --- > Gregorian/M 6359,6361c5009,5011 < Grenadines < Grendel < Grenoble --- > Grenadines/M > Grendel/M > Grenoble/M 6363c5013 < Gresham --- > Gresham/M 6365d5014 < Gretal/M 6369d5017 < Grethel/M 6373,6374c5021,5022 < Grey < Grieg --- > Grey/M > Grieg/M 6377d5024 < Griffie/M 6379c5026 < Griffith --- > Griffith/M 6381,6382c5028 < Griffy/M < Grimes --- > Grimes/M 6385c5031 < Gris --- > Gris/M 6387d5032 < Grissel/M 6389,6390c5034 < Griz/M < Gromyko --- > Gromyko/M 6392,6395c5036,5038 < Gross < Grosz < Grotius < Grove/RM --- > Gross/M > Grosz/M > Grotius/M 6399c5042 < Grundy --- > Grundy/M 6402a5046,5047 > Gruyère/M > Grünewald/M 6405c5050 < Guadalquivir --- > Guadalquivir/M 6409d5053 < Gualterio/M 6417c5061 < Guatemalan/SM --- > Guatemalan/MS 6420,6421c5064 < Guelph < Guendolen/M --- > Guelph/M 6423d5065 < Guenna/M 6426,6429c5068,5070 < Guerrero < Guevara < Guggenheim < Guglielma/M --- > Guerrero/M > Guevara/M > Guggenheim/M 6437,6438d5077 < Guillema/M < Guillemette/M 6443d5081 < Guinna/M 6445,6446c5083,5084 < Guiyang < Guizot --- > Guiyang/M > Guizot/M 6449,6450c5087,5088 < Gujranwala < Gullah --- > Gujranwala/M > Gullah/M 6453,6454d5090 < Gun/M < Gunar/M 6456,6457d5091 < Gunner/M < Guntar/M 6459c5093 < Gunther --- > Gunther/M 6464,6466d5097 < Gusella/M < Guss < Gussi/M 6468c5099 < Gussy/M --- > Gussy's 6476,6481c5107,5109 < Gustie/M < Gusty/M < Gutenberg < Guthrey/M < Guthrie < Guthry/M --- > Gusty's > Gutenberg/M > Guthrie/M 6487c5115 < Gwalior --- > Gwalior/M 6490d5117 < Gwendolin/M 6493,6500d5119 < Gweneth/M < Gwenette/M < Gwenneth/M < Gwenni/M < Gwennie/M < Gwenny/M < Gwenora/M < Gwenore/M 6504a5124,5125 > Gödel/M > Göteborg/M 6506c5127,5129 < HBO --- > HBO/M > HDD > HDMI 6516a5140 > HPV 6528c5152 < Ha --- > Ha/M 6530c5154 < Habakkuk --- > Habakkuk/M 6532c5156 < Had/M --- > Had's 6535d5158 < Hadlee/M 6539c5162 < Hadrian --- > Hadrian/M 6542c5165 < Hagar --- > Hagar/M 6544c5167 < Haggai --- > Haggai/M 6546,6547c5169,5170 < Hague < Hahn --- > Hague/M > Hahn/M 6550d5172 < Hailee/M 6552,6553c5174 < Haily/M < Haiphong --- > Haiphong/M 6559c5180 < Hakluyt --- > Hakluyt/M 6561,6565c5182,5184 < Haldane < Hale < Haleakala < Haleigh/M < Halette/M --- > Haldane/M > Hale/M > Haleakala/M 6568d5186 < Halie/M 6570,6573c5188,5189 < Halimeda/M < Hall < Halley < Halli/M --- > Hall/M > Halley/M 6578,6579c5194 < Hallstatt < Hallsy/M --- > Hallstatt/M 6582,6583c5197,5198 < Halsey < Halsy/M --- > Hals/M > Halsey/M 6589c5204 < Hamhung --- > Hamhung/M 6595c5210 < Hamiltonian --- > Hamiltonian/M 6598,6599c5213 < Hamlen/M < Hamlet --- > Hamlet/M 6602,6603c5216,5217 < Hammarskjold < Hammerstein --- > Hammarskjold/M > Hammerstein/M 6605,6607c5219,5220 < Hammond < Hammurabi < Hamnet/M --- > Hammond/M > Hammurabi/M 6609,6611c5222,5224 < Hampton < Hamsun < Han/S --- > Hampton/M > Hamsun/M > Han/SM 6614c5227 < Hancock --- > Hancock/M 6616c5229 < Handy --- > Handy/M 6623c5236 < Hanni/SM --- > Hanni/M 6625,6626d5237 < Hannie/M < Hanny/M 6629a5241 > Hans/MN 6632d5243 < Hansiain/M 6634a5246 > Hanukah/M 6637c5249 < Happy/M --- > Happy's 6642c5254 < Harbin --- > Harbin/M 6646,6647c5258,5259 < Hardy < Hargreaves --- > Hardy/M > Hargreaves/M 6651,6656c5263,5264 < Harlen/M < Harlene/M < Harlequin < Harley < Harli/M < Harlie/M --- > Harlequin/M > Harley/M 6658c5266 < Harlow --- > Harlow/M 6663d5270 < Harmony/M 6666d5272 < Harp/MR 6671d5276 < Harrie/M 6674d5278 < Harrietta/M 6678a5283 > Harris/M 6681c5286 < Harrods --- > Harrods/M 6683,6684c5288,5289 < Hart < Harte --- > Hart/M > Harte/M 6692c5297 < Harvey --- > Harvey/M 6694d5298 < Harwilll/M 6696d5299 < Hasheem/M 6698,6699c5301 < Hasidim < Haskel/M --- > Hasidim/M 6705,6707c5307,5309 < Hasty/M < Hatfield < Hathaway --- > Hasty's > Hatfield/M > Hathaway/M 6709c5311 < Hatteras --- > Hatteras/M 6713c5315 < Hauptmann --- > Hauptmann/M 6717,6719c5319,5320 < Havarti < Havel < Haven/M --- > Havarti/M > Havel/M 6724,6725c5325,5326 < Hawking < Hawkins --- > Hawking/M > Hawkins/M 6727c5328 < Hawthorne --- > Hawthorne/M 6731a5333 > Hayek/M 6734,6735c5336,5338 < Haynes < Hayward --- > Haynes/M > Hays/M > Hayward/M 6739d5341 < Haze/M 6742c5344 < Hazlitt --- > Hazlitt/M 6745,6747c5347,5348 < Heall/M < Hearst < Heath/R --- > Hearst/M > Heath/MR 6749,6750c5350 < Heaven/MS < Heaviside --- > Heaviside/M 6752c5352 < Hebe --- > Hebe/M 6754c5354 < Hebraic --- > Hebraic/M 6756a5357 > Hebrews/M 6758c5359 < Hecate --- > Hecate/M 6760,6761c5361 < Hecuba < Heda/M --- > Hecuba/M 6763,6764d5362 < Heddi/M < Heddie/M 6766,6767d5363 < Hedvig/M < Hedvige/M 6769d5364 < Hedwiga/M 6774,6778c5369,5372 < Hegelian < Hegira < Heida/M < Heidegger < Heidelberg --- > Hegelian/M > Hegira/M > Heidegger/M > Heidelberg/M 6780,6781c5374 < Heidie/M < Heifetz --- > Heifetz/M 6783,6784c5376 < Heindrick/M < Heine --- > Heine/M 6788,6791c5380,5381 < Heinrick/M < Heinrik/M < Heinz < Heisenberg --- > Heinz/M > Heisenberg/M 6793c5383 < Hejira/MS --- > Hejira's 6795d5384 < Helaine/M 6799d5387 < Helenka/M 6802,6803c5390,5391 < Helicon < Heliopolis --- > Helicon/M > Heliopolis/M 6805d5392 < Hell/SMR 6810,6813c5397,5400 < Hellenistic < Hellenization < Hellenize/DSG < Heller --- > Hellenistic/M > Hellenization/M > Hellenize/MD > Heller/M 6815,6816c5402 < Helli/M < Hellman --- > Hellman/M 6819d5404 < Helsa/M 6824d5408 < Helyn/M 6828a5413 > Hendricks/M 6830,6833c5415,5416 < Hendrika/M < Hendrix < Henka/M < Henley --- > Hendrix/M > Henley/M 6836,6837d5418 < Henrie/M < Henrieta/M 6842d5422 < Henryetta/M 6845c5425 < Hepburn --- > Hepburn/M 6848c5428 < Hepplewhite --- > Hepplewhite/M 6851c5431 < Heraclitus --- > Heraclitus/M 6853,6855c5433,5434 < Herb/M < Herbart < Herbert --- > Herbart/M > Herbert/M 6863,6864c5442 < Herculie/M < Herder --- > Herder/M 6866c5444 < Herero --- > Herero/M 6870c5448 < Hermaphroditus --- > Hermaphroditus/M 6873,6874d5450 < Hermie/M < Hermina/M 6878c5454 < Hermitage --- > Hermitage/M 6882d5457 < Hermy/M 6890c5465 < Herrick --- > Herrick/M 6893c5468 < Herschel --- > Herschel/M 6905,6906c5480,5481 < Herzegovina < Herzl --- > Herzegovina/M > Herzl/M 6908,6912c5483,5487 < Hesiod < Hesperus < Hess < Hesse < Hessian --- > Hesiod/M > Hesperus/M > Hess/M > Hesse/M > Hessian/M 6914d5488 < Hesther/M 6917d5490 < Hetti/M 6920,6922c5493 < Hew/M < Hewe/M < Hewet/M --- > Hew's 6924d5494 < Hewie/M 6927,6928c5497,5498 < Heyerdahl < Heywood --- > Heyerdahl/M > Heywood/M 6930c5500 < Hezekiah --- > Hezekiah/M 6933,6934c5503,5504 < Hi/M < Hialeah --- > Hi's > Hialeah/M 6939c5509 < Hickok --- > Hickok/M 6941c5511 < Hieronymus --- > Hieronymus/M 6944c5514 < Highlander/MS --- > Highlander/SM 6948d5517 < Hilarius/M 6950c5519 < Hilbert --- > Hilbert/M 6952,6953d5520 < Hildagard/M < Hildagarde/M 6955,6956c5522 < Hildebrand < Hildegaard/M --- > Hildebrand/M 6960c5526 < Hill --- > Hill/M 6962,6963c5528,5529 < Hillary < Hillel --- > Hillary/M > Hillel/M 6966,6967d5531 < Hilliary/M < Hillie/M 6970c5534 < Hilly/RM --- > Hilly's 6972c5536 < Hilton --- > Hilton/M 6975c5539,5540 < Himmler --- > Himalayas/M > Himmler/M 6977,6980c5542,5544 < Hinda/M < Hindemith < Hindenburg < Hindi --- > Hindemith/M > Hindenburg/M > Hindi/M 6985c5549 < Hines --- > Hines/M 6988c5552 < Hipparchus --- > Hipparchus/M 6990,6991c5554,5555 < Hippocratic < Hiram --- > Hippocratic/M > Hiram/M 6993c5557 < Hirohito --- > Hirohito/M 7000c5564 < Hitchcock --- > Hitchcock/M 7003c5567 < Hmong --- > Hmong/M 7005d5568 < Hobard/M 7007,7009c5570,5571 < Hobbes < Hobbs < Hobey/M --- > Hobbes/M > Hobbs/M 7013,7014c5575,5576 < Hodgkin < Hoebart/M --- > Hodges/M > Hodgkin/M 7020c5582 < Hogarth --- > Hogarth/M 7022,7023c5584,5585 < Hohenlohe < Hohenstaufen --- > Hohenlohe/M > Hohenstaufen/M 7026c5588 < Hohokam --- > Hohokam/M 7028,7029c5590,5591 < Hokusai < Holbein --- > Hokusai/M > Holbein/M 7033c5595 < Holiday --- > Holiday/M 7039d5600 < Holli/SM 7040a5602 > Hollis/M 7042,7043c5604 < Holly < Hollyanne/M --- > Holly/M 7047c5608 < Holocaust --- > Holocaust/M 7049c5610 < Holst --- > Holst/M 7051c5612 < Holt --- > Holt/M 7053,7055c5614 < Homere/M < Homeric < Homerus/M --- > Homeric/M 7061d5619 < Honey/M 7063c5621,5622 < Honiara --- > Hong > Honiara/M 7065c5624 < Honor/B --- > Honorable 7068,7069c5627,5629 < Hood < Hooke/R --- > Hood/M > Hooke/RM > Hooker/M 7074c5634 < Hope --- > Hope/M 7077,7079c5637,5639 < Hopkins < Hopper < Horace --- > Hopkins/M > Hopper/M > Horace/M 7085,7086c5645,5646 < Hormuz < Horn --- > Hormuz/M > Horn/M 7089c5649 < Horowitz --- > Horowitz/M 7091,7092c5651 < Hort/MN < Horten/M --- > Hort/M 7095c5654 < Horthy --- > Horthy/M 7103c5662 < Houdini --- > Houdini/M 7105,7106c5664,5665 < House < Housman --- > House/M > Housman/M 7110,7111c5669,5670 < Howard < Howe --- > Howard/M > Howe/M 7112a5672 > Howells/M 7116c5676 < Hoyle --- > Hoyle/M 7120,7121c5680,5681 < Huang < Hubbard --- > Huang/M > Hubbard/M 7123d5682 < Hube/RM 7126,7128d5684 < Huberto/M < Hubey/M < Hubie/M 7136c5692 < Huggins --- > Huggins/M 7137a5694 > Hughes/M 7139d5695 < Hugibert/M 7143c5699 < Hui --- > Hui/M 7149,7150c5705,5706 < Humboldt < Hume --- > Humboldt/M > Hume/M 7152,7153d5707 < Humfrid/M < Humfried/M 7155,7156c5709,5710 < Humphrey < Humvee --- > Humphrey/SM > Humvee/M 7158,7159c5712 < Hunfredo/M < Hung --- > Hung/M 7163c5716 < Hunt/R --- > Hunt/MR 7166d5718 < Huntlee/M 7168,7170c5720 < Huntsville < Hurlee/M < Hurleigh/M --- > Huntsville/M 7172c5722 < Huron --- > Huron/M 7174c5724 < Hus --- > Hus/M 7176,7180c5726,5730 < Hussein < Husserl < Hussite < Huston < Hutchinson --- > Hussein/M > Husserl/M > Hussite/M > Huston/M > Hutchinson/M 7182c5732 < Hutu --- > Hutu/M 7184c5734 < Huygens --- > Huygens/M 7186,7187d5735 < Hyacinth/M < Hyacintha/M 7189,7190d5736 < Hyacinthia/M < Hyacinthie/M 7193,7194c5739,5740 < Hyde < Hyderabad --- > Hyde/M > Hyderabad/M 7199d5744 < Hynda/M 7202a5748 > Héloise/M 7213a5760 > IDE 7214a5762,5763 > IED > IEEE 7227a5777 > IP 7229c5779 < IPO/MS --- > IPO/SM 7231a5782 > IRC 7234c5785,5787 < ISO --- > ISO/M > ISP > ISS 7237a5791 > IVF 7245,7247c5799 < Ibadan < Ibbie/M < Ibby/M --- > Ibadan/M 7249,7250c5801,5802 < Iberian < Ibiza --- > Iberian/M > Ibiza/M 7252c5804 < Ibo --- > Ibo/M 7262c5814 < Ida --- > Ida/M 7266,7273c5818 < Idalia/M < Idalina/M < Idaline/M < Idell/M < Idelle/M < Idette/M < Ieyasu < Iggie/M --- > Ieyasu/M 7277,7278c5822 < Ignacius/M < Ignatius --- > Ignatius/M 7283d5826 < Ijssel 7287,7290c5830,5831 < Ikhnaton < Ila < Ilaire/M < Ilario/M --- > Ikhnaton/M > Ila/M 7292d5832 < Ileane/M 7295d5834 < Ilise/M 7301c5840 < Illuminati --- > Illuminati/M 7304,7306d5842 < Ilysa/M < Ilyse/M < Ilyssa/M 7315d5850 < Imojean/M 7330a5866 > Indies/M 7333c5869 < Indochinese --- > Indochinese/M 7335,7336c5871,5872 < Indonesian/MS < Indore --- > Indonesian/SM > Indore/M 7340,7342c5876 < Ines < Inesita/M < Inessa/M --- > Ines/M 7345,7350c5879 < Ingaberg/M < Ingaborg/M < Ingamar/M < Ingar/M < Inge/R < Ingeberg/M --- > Inge/RM 7352d5880 < Ingelbert/M 7355d5882 < Inglebert/M 7359d5885 < Ingra/M 7361c5887 < Ingres --- > Ingres/M 7363,7364d5888 < Ingrim/M < Ingunna/M 7372c5896 < Inquisition --- > Inquisition/M 7373a5898 > Instagram/M 7376c5901 < Intelsat --- > Intelsat/M 7378,7379c5903,5904 < Internet/S < Interpol --- > Internet/SM > Interpol/M 7384,7385d5908 < Iolande/M < Iolanthe/M 7387c5910 < Ionesco --- > Ionesco/M 7390,7392d5912 < Iorgo/MS < Iormina/M < Iosep/M 7395c5915 < Iphigenia --- > Iphigenia/M 7398,7399c5918,5919 < Iqbal < Iquitos --- > Iqbal/M > Iquitos/M 7408c5928 < Irene --- > Irene/M 7410c5930 < Iris --- > Iris/M 7413c5933 < Irishmen --- > Irishmen/M 7415,7417c5935,5936 < Irishwomen < Irita/M < Irkutsk --- > Irishwomen/M > Irkutsk/M 7421c5940 < Irrawaddy --- > Irrawaddy/M 7425,7426c5944,5945 < Irvine < Irving --- > Irvine/M > Irving/M 7428d5946 < Irwinn/M 7433,7434c5951 < Isabelita/M < Isabella --- > Isabella/M 7436,7438d5952 < Isac/M < Isacco/M < Isador/M 7441,7442c5955 < Isahella/M < Isaiah --- > Isaiah/M 7444,7447c5957,5959 < Iscariot < Iseabal/M < Isfahan < Isherwood --- > Iscariot/M > Isfahan/M > Isherwood/M 7449c5961 < Ishmael --- > Ishmael/M 7452d5963 < Isiahi/M 7461c5972 < Islamic --- > Islamic/M 7463c5974,5976 < Islamist --- > Islamist/M > Islamophobia > Islamophobic 7467,7468c5980 < Isolde < Ispahan --- > Isolde/M 7472c5984 < Israelite --- > Israelite/M 7474,7477c5986 < Issachar < Issi/M < Issiah/M < Issie/M --- > Issachar/M 7488,7491c5997,5999 < Itch/M < Ithaca < Ithacan < Ito --- > Ithaca/M > Ithacan/M > Ito/M 7493c6001 < Ivan --- > Ivan/M 7498,7499c6006 < Ivett/M < Ivette/M --- > Ives/M 7502d6008 < Ivonne/M 7506c6012 < Ivy --- > Ivy/M 7509,7510d6014 < Izabel/M < Izak/M 7513,7514c6017,6018 < Izhevsk < Izmir --- > Izhevsk/M > Izmir/M 7523c6027 < JPEG/MS --- > JPEG/SM 7526,7527d6029 < Jacenta/M < Jacinda/M 7529,7532c6031 < Jacintha/M < Jacinthe/M < Jack < Jackelyn/M --- > Jack/M 7537,7538d6035 < Jackquelin/M < Jackqueline/M 7540c6037 < Jacksonian --- > Jacksonian/M 7543d6039 < Jaclin/M 7547c6043 < Jacobi --- > Jacobi/M 7550a6047 > Jacobs/M 7552,7553c6049 < Jacquard < Jacquelin/M --- > Jacquard/M 7556,7561c6052 < Jacquelynn/M < Jacquenetta/M < Jacquenette/M < Jacques < Jacquetta/M < Jacquette/M --- > Jacques/M 7564,7565c6055 < Jacuzzi < Jacynth/M --- > Jacuzzi/M 7567d6056 < Jade/M 7574,7576c6063 < Jaimie/M < Jain < Jaine/M --- > Jain/M 7578c6065 < Jaipur --- > Jaipur/M 7581d6067 < Jakie/M 7592,7593c6078 < Jamestown < Jamesy/M --- > Jamestown/M 7598,7599d6082 < Jamill/M < Jamima/M 7601,7602d6083 < Jammal/M < Jammie/M 7606,7608d6086 < Janaya/M < Janaye/M < Jandy/M 7610,7612d6087 < Janean/M < Janeczka/M < Janeen/M 7614,7615d6088 < Janel/M < Janela/M 7617d6089 < Janella/M 7619,7621d6090 < Janene/M < Janenna/M < Janessa/M 7623,7624d6091 < Janeta/M < Janetta/M 7626d6092 < Janeva/M 7628d6093 < Jania/M 7631d6095 < Janifer/M 7636d6099 < Janith/M 7638d6100 < Janka/M 7640,7641d6101 < Jannel/M < Jannelle/M 7644d6103 < Janot/M 7649a6109 > Jap/SM 7653,7660d6112 < Jaquelin/M < Jaquelyn/M < Jaquenetta/M < Jaquenette/M < Jaquith/M < Jarad/M < Jard/M < Jareb/M 7662,7665c6114 < Jarib/M < Jarid/M < Jarlsberg < Jarrad/M --- > Jarlsberg/M 7669d6117 < Jarrid/M 7673d6120 < Jasen/M 7675d6121 < Jasmina/M 7679,7680c6125 < Jasun/M < Jataka --- > Jataka/M 7685,7686c6130,6131 < Jaxartes < Jay --- > Jaxartes/M > Jay/M 7689c6134,6135 < Jaycee/S --- > Jaycee/MS > Jaycees/M 7692,7693d6137 < Jaymee/M < Jaymie/M 7695d6138 < Jaynell/M 7697,7698d6139 < Jazmin/M < Jdavie/M 7702d6142 < Jeanelle/M 7706d6145 < Jeanna/M 7711d6149 < Jecho/M 7713,7714d6150 < Jedd/M < Jeddy/M 7718c6154 < Jeep --- > Jeep/M 7723c6159 < Jeffersonian --- > Jeffersonian/M 7725,7726c6161 < Jeffie/M < Jeffrey --- > Jeffrey/M 7728,7730c6163 < Jeffy/M < Jehanna/M < Jehoshaphat --- > Jehoshaphat/M 7734,7735d6166 < Jelene/M < Jemie/M 7737,7738d6167 < Jemimah/M < Jemmie/M 7742,7746d6170 < Jenda/M < Jenelle/M < Jeni/M < Jenica/M < Jeniece/M 7748,7751c6172 < Jeniffer/M < Jenilee/M < Jenine/M < Jenkins --- > Jenkins/M 7754,7755c6175 < Jennee/M < Jennette/M --- > Jenner/M 7757d6176 < Jennica/M 7760,7761d6178 < Jennilee/M < Jennine/M 7766,7767c6183 < Jephthah < Jerad/M --- > Jephthah/M 7769,7771d6184 < Jeralee/M < Jeramey/M < Jeramie/M 7773d6185 < Jereme/M 7781d6192 < Jermain/M 7783,7784c6194 < Jermayne/M < Jeroboam --- > Jeroboam/M 7786,7787c6196 < Jerome < Jeromy/M --- > Jerome/M 7790,7792d6198 < Jerrilee/M < Jerrilyn/M < Jerrine/M 7795d6200 < Jerrome/M 7797d6201 < Jerrylee/M 7802,7804d6205 < Jessa/M < Jessalin/M < Jessalyn/M 7807,7809c6208 < Jesse < Jessee/M < Jesselyn/M --- > Jesse/M 7814d6212 < Jessika/M 7817,7818c6215 < Jesus < Jeth/M --- > Jesus/M 7820c6217 < Jetway --- > Jetway/M 7824d6220 < Jewelle/M 7826,7827c6222,6223 < Jewish/P < Jewry --- > Jewish/PM > Jewry/M 7829,7837c6225,6227 < Jidda < Jilin < Jill < Jillana/M < Jillane/M < Jillayne/M < Jilleen/M < Jillene/M < Jilli/M --- > Jidda/M > Jilin/M > Jill/M 7839d6228 < Jillie/M 7845,7846c6234,6235 < Jinan < Jinnah --- > Jinan/M > Jinnah/M 7848c6237 < Jivaro --- > Jivaro/M 7851c6240 < Joan --- > Joan/M 7860,7863c6249 < Jobey/M < Jobi/M < Jobie/M < Jobina/M --- > Jobs/M 7865,7867c6251 < Jobye/M < Jobyna/M < Jocasta --- > Jocasta/M 7869d6252 < Joceline/M 7872,7873c6255,6256 < Jock < Jockey --- > Jock/M > Jockey/M 7875d6257 < Jodee/M 7879,7885c6261,6262 < Joe < Joeann/M < Joel/Y < Joela/M < Joelie/M < Joell/MN < Joella/M --- > Joe/M > Joel/M 7887,7892d6263 < Joellen/M < Joelly/M < Joellyn/M < Joelynn/M < Joesph/M < Joete/M 7898,7899c6269 < Johannah/M < Johannes --- > Johannes/M 7902,7903d6271 < Johna/MH < Johnath/M 7906d6273 < Johnette/M 7908,7909c6275 < Johnna/M < Johnnie --- > Johnnie/M 7910a6277 > Johns/M 7913,7914d6279 < Johny/M < Joice/M 7916,7917d6280 < Jolee/M < Joleen/M 7919d6281 < Joletta/M 7922,7924c6284,6285 < Joliet < Joline/M < Jolson --- > Joliet/M > Jolson/M 7926,7927d6286 < Jolyn/M < Jolynn/M 7931c6290 < Jonas --- > Jonas/M 7935,7940c6294,6297 < Jonell/M < Joni/SM < Jonie/M < Jonson < Joplin < Jordain/M --- > Jones/M > Joni/M > Jonson/M > Joplin/M 7944d6300 < Jordanna/M 7946,7947d6301 < Jorey/M < Jorgan/M 7950,7952d6303 < Jorie/M < Jorrie/M < Jorry/M 7956d6306 < Josee/M 7960d6309 < Joseito/M 7963,7964c6312 < Josephina/M < Josephine --- > Josephine/M 7967c6315 < Josephus --- > Josephus/M 7969,7970c6317 < Josh < Joshia/M --- > Josh/M 7972,7974c6319 < Joshuah/M < Josi/M < Josiah --- > Josiah/M 7979,7980c6324 < Josy/M < Joule --- > Joule/M 7984c6328 < Jovian --- > Jovian/M 7987,7991c6331,6332 < Joyan/M < Joyann/M < Joyce < Joycean < Joycelin/M --- > Joyce/M > Joycean/M 7997d6337 < Jsandye/M 8002c6342 < Jubal --- > Jubal/M 8004c6344,6345 < Judah --- > Judaeo > Judah/M 8010,8011c6351,6352 < Jude < Judea --- > Jude/M > Judea/M 8014d6354 < Judie/M 8016,8017d6355 < Juditha/M < Judon/M 8019,8020c6357 < Judy < Judye/M --- > Judy/M 8022d6358 < Juieta/M 8025c6361 < Julee/M --- > Jules/M 8028,8029c6364,6365 < Julian < Juliana --- > Julian/M > Juliana/M 8031d6366 < Juliann/M 8035,8038c6370,6371 < Julienne/M < Juliet < Julieta/M < Julietta/M --- > Julienne's > Juliet/M 8040,8041d6372 < Julina/M < Juline/M 8043,8044d6373 < Julissa/M < Julita/M 8048c6377 < Jun --- > Jun/M 8051d6379 < Junette/M 8053,8054c6381,6382 < Jungfrau < Jungian --- > Jungfrau/M > Jungian/M 8057d6384 < Junina/M 8064d6390 < Justen/M 8070,8072d6395 < Justinn/M < Justino/M < Justis/M 8075c6398 < Juvenal --- > Juvenal/M 8081c6404 < KGB --- > KGB/M 8088c6411 < Kaaba --- > Kaaba/M 8090,8093d6412 < Kacey/M < Kacie/M < Kacy/M < Kaela/M 8095,8097c6414,6415 < Kafkaesque < Kagoshima < Kahaleel/M --- > Kafkaesque/M > Kagoshima/M 8102c6420 < Kaifeng --- > Kaifeng/M 8104,8105d6421 < Kaile/M < Kailey/M 8111d6426 < Kaitlynn/M 8113d6427 < Kakalina/M 8116,8117c6430,6431 < Kalamazoo < Kalashnikov --- > Kalamazoo/M > Kalashnikov/M 8119,8123c6433,6434 < Kale/M < Kaleb/M < Kaleena/M < Kalevala < Kalgoorlie --- > Kalevala/M > Kalgoorlie/M 8125d6435 < Kalie/M 8127d6436 < Kalila/M 8129,8130d6437 < Kalinda/M < Kalindi/M 8132,8135c6439 < Kalli/M < Kally/M < Kalmyk < Kalvin/M --- > Kalmyk/M 8137c6441 < Kamchatka --- > Kamchatka/M 8139,8142d6442 < Kameko/M < Kamila/M < Kamilah/M < Kamillah/M 8145c6445 < Kan/S --- > Kan/SM 8147,8149c6447,6448 < Kandace/M < Kandahar < Kandinsky --- > Kandahar/M > Kandinsky/M 8154,8155c6453,6454 < Kano < Kanpur --- > Kano/M > Kanpur/M 8157c6456 < Kansas --- > Kansas/M 8159c6458 < Kantian --- > Kantian/M 8161c6460 < Kaohsiung --- > Kaohsiung/M 8165,8168c6464,6465 < Karaganda < Karakorum < Karalee/M < Karalynn/M --- > Karaganda/M > Karakorum/M 8171d6467 < Karee/M 8175d6470 < Karena/M 8178,8181d6472 < Karia/M < Karie/M < Karil/M < Karilynn/M 8186,8190c6477 < Kariotta/M < Karisa/M < Karissa/M < Karita/M < Karl/MNX --- > Karl/MN 8192,8194d6478 < Karlan/M < Karlee/M < Karleen/M 8196,8199d6479 < Karlene/M < Karlie/M < Karlik/M < Karlis 8201,8202d6480 < Karlotta/M < Karlotte/M 8204,8205d6481 < Karlyn/M < Karmen/M 8208d6483 < Karney/M 8211,8212d6485 < Karola/M < Karole/M 8217,8218d6489 < Karrah/M < Karrie/M 8220,8223d6490 < Karry/M < Kary/M < Karyl/M < Karylin/M 8233,8236d6499 < Kassey/M < Kassi/M < Kassia/M < Kassie/M 8241d6503 < Katee/M 8244,8245d6505 < Katerine/M < Katey/M 8250d6509 < Katharyn/M 8256c6515 < Kathiawar --- > Kathiawar/M 8259d6517 < Kathlin/M 8263d6520 < Kathryne/M 8265d6521 < Kathye/M 8269d6524 < Katine/M 8271,8273c6526 < Katleen/M < Katlin/M < Katmai --- > Katmai/M 8275c6528 < Katowice --- > Katowice/M 8279,8282d6531 < Katti/M < Kattie/M < Katuscha/M < Katusha/M 8290,8291c6539,6540 < Kawasaki < Kay --- > Kawasaki/M > Kay/M 8295d6543 < Kayle/M 8297,8299d6544 < Kayley/M < Kaylil/M < Kaylyn/M 8305c6550 < Kazantzakis --- > Kazantzakis/M 8310d6554 < Keary/M 8312c6556 < Keats --- > Keats/M 8316d6559 < Keelby/M 8318d6560 < Keelia/M 8320d6561 < Keen/M 8323c6564 < Keewatin --- > Keewatin/M 8328,8336d6568 < Kelbee/M < Kelby/M < Kelcey/M < Kelci/M < Kelcie/M < Kelcy/M < Kele/M < Kelila/M < Kellby/M 8338c6570 < Keller --- > Keller/M 8341d6572 < Kellia/M 8343,8347c6574,6575 < Kellina/M < Kellogg < Kellsie/M < Kelly < Kellyann/M --- > Kellogg/M > Kelly/M 8349,8354c6577,6578 < Kelsi/M < Kelsy/M < Kelt/SM < Kelvin < Kelwin/M < Kemerovo --- > Kelvin/M > Kemerovo/M 8356c6580,6581 < Kempis --- > Kempis/M > Ken/M 8361d6585 < Kendre/M 8370d6593 < Kennie/M 8373d6595 < Kenon/M 8376c6598 < Kentuckian/SM --- > Kentuckian/MS 8380c6602 < Kenyatta --- > Kenyatta/M 8390,8391d6611 < Keriann/M < Kerianne/M 8393d6612 < Kermie/M 8395,8398c6614,6616 < Kermy/M < Kern < Kerouac < Kerr --- > Kern/M > Kerouac/M > Kerr/M 8401,8403c6619 < Kerrill/M < Kerrin/M < Kerry --- > Kerry/M 8406,8414c6622 < Kerwinn/M < Kesley/M < Keslie/M < Kessia/M < Kessiah/M < Kettering < Ketti/M < Kettie/M < Ketty/M --- > Kettering/M 8419,8421c6627 < Kevina/M < Kevlar < Kevon/M --- > Kevlar/M 8423,8425c6629,6630 < Kevyn/M < Kewpie < Key --- > Kewpie/M > Key/M 8427,8429c6632,6634 < Keynesian < Khabarovsk < Khachaturian --- > Keynesian/M > Khabarovsk/M > Khachaturian/M 8442,8443c6647,6648 < Khrushchev < Khufu --- > Khrushchev/M > Khufu/M 8448,8450c6653 < Kiah/M < Kial/M < Kickapoo --- > Kickapoo/M 8452,8456c6655,6656 < Kiel < Kiele/M < Kienan/M < Kierkegaard < Kiersten/M --- > Kiel/M > Kierkegaard/M 8460,8463c6660,6661 < Kijiji/M < Kikelia/M < Kikuyu < Kilauea --- > Kikuyu/M > Kilauea/M 8469,8470d6666 < Killie/M < Killy/M 8475,8477c6671 < Kimberlee/M < Kimberley < Kimberli/M --- > Kimberley/M 8479d6672 < Kimberlyn/M 8481,8483d6673 < Kimbra/M < Kimmi/M < Kimmie/M 8485d6674 < Kin/M 8489d6677 < Kingsly/M 8493d6680 < Kinna/M 8495,8497c6682 < Kinnie/M < Kinny/M < Kinsey --- > Kinsey/M 8503,8507c6688 < Kipp/MR < Kippar/M < Kipper/M < Kippie/M < Kippy/M --- > Kipp/M 8509,8510d6689 < Kirbee/M < Kirbie/M 8512c6691 < Kirchhoff --- > Kirchhoff/M 8520c6699 < Kirk --- > Kirk/M 8523c6702 < Kirov --- > Kirov/M 8525,8529c6704 < Kirsteni/M < Kirsti/M < Kirstin/M < Kirstyn/M < Kisangani --- > Kisangani/M 8532,8535c6707 < Kissee/M < Kissiah/M < Kissie/M < Kissinger --- > Kissinger/M 8538,8540c6710 < Kitchener < Kitti/M < Kittie/M --- > Kitchener/M 8543,8545c6713 < Kiwanis < Kizzee/M < Kizzie/M --- > Kiwanis/M 8549,8550d6716 < Klarika/M < Klarrisa/M 8552c6718 < Klee --- > Klee/M 8557,8560c6723,6724 < Kleon/M < Kliment/M < Klimt < Kline --- > Klimt/M > Kline/M 8567c6731 < Knickerbocker --- > Knickerbocker/M 8569c6733 < Knight --- > Knight/M 8571,8574c6735,6738 < Knossos < Knowles < Knox < Knoxville --- > Knossos/M > Knowles/M > Knox/M > Knoxville/M 8578,8579c6742,6743 < Kobe < Koch --- > Kobe/M > Koch/M 8582c6746 < Kodak --- > Kodak/M 8585,8588c6749,6751 < Koenraad/M < Koestler < Kohinoor < Kohl --- > Koestler/M > Kohinoor/M > Kohl/M 8591,8592c6754 < Koln/M < Kolyma --- > Kolyma/M 8597d6758 < Konstance/M 8599,8600d6759 < Konstantine/M < Konstanze/M 8605,8606d6763 < Koral/M < Koralle/M 8609d6765 < Kordula/M 8613d6768 < Korella/M 8615,8616d6769 < Koressa/M < Korey/M 8618d6770 < Korie/M 8620,8622d6771 < Korney/M < Korrie/M < Korry/M 8625,8626c6774,6775 < Korzybski < Kosciusko --- > Korzybski/M > Kosciusko/M 8628,8629c6777,6778 < Kossuth < Kosygin --- > Kossuth/M > Kosygin/M 8631c6780 < Kowloon --- > Kowloon/M 8638,8641c6787,6790 < Krasnodar < Krasnoyarsk < Krebs < Kremlin --- > Krasnodar/M > Krasnoyarsk/M > Krebs/M > Kremlin/M 8647d6795 < Krisha/M 8649d6796 < Krishnah/M 8651,8653d6797 < Krispin/M < Krissie/M < Krissy/M 8655,8658d6798 < Kristal/M < Kristan/M < Kriste/M < Kristel/M 8660c6800 < Kristi/MN --- > Kristi/M 8663d6802 < Kristien/M 8667,8671d6805 < Kristo/SM < Kristofer/M < Kristoffer/M < Kristofor/M < Kristoforo/M 8674d6807 < Kristyn/M 8678,8682c6811,6814 < Kropotkin < Kruger < Krugerrand < Krupp < Krysta/M --- > Kropotkin/M > Kruger/M > Krugerrand/M > Krupp/M 8684,8685d6815 < Krystalle/M < Krystle/M 8690c6820 < Kubrick --- > Kubrick/M 8692c6822 < Kuibyshev --- > Kuibyshev/M 8694,8696c6824,6826 < Kunming < Kuomintang < Kurd --- > Kunming/M > Kuomintang/M > Kurd/M 8698,8700c6828,6829 < Kurdistan < Kurile < Kurosawa --- > Kurdistan/M > Kurosawa/M 8704c6833 < Kutuzov --- > Kutuzov/M 8712,8713c6841 < Kwangju < Kwanza/MS --- > Kwangju/M 8715c6843 < Ky/H --- > Ky/MH 8718d6845 < Kylen/M 8720,8721d6846 < Kylila/M < Kylynn/M 8723d6847 < Kynthia/M 8725,8726c6849 < Kyrgyzstan < Kyrstin/M --- > Kyrgyzstan/M 8728c6851 < L'Amour --- > L'Amour/M 8730,8731c6853,6854 < L'Oreal < L'Ouverture --- > L'Oreal/M > L'Ouverture/M 8741a6865 > LGBT 8754c6878 < La/M --- > La/SM 8756c6880 < Laban --- > Laban/M 8760d6883 < Lacee/M 8763d6885 < Lacie/M 8765c6887 < Ladoga --- > Ladoga/M 8767c6889 < Lady --- > Lady/M 8770c6892 < Lafayette --- > Lafayette/M 8773,8776c6895,6897 < Lagrange < Lagrangian < Lahore < Laina/M --- > Lagrange/M > Lagrangian/M > Lahore/M 8778,8779c6899 < Laird/M < Laius --- > Laius/M 8785c6905 < Lakota --- > Lakota/M 8791,8793c6911,6913 < Lamaze < Lamb < Lambert --- > Lamaze/M > Lamb/M > Lambert/M 8795c6915 < Lambrusco --- > Lambrusco/M 8797d6916 < Lammond/M 8801d6919 < Lanae/M 8803c6921 < Lancashire --- > Lancashire/M 8807c6925 < Land --- > Land/M 8810c6928 < Landsat --- > Landsat/M 8813d6930 < Lanette/M 8815c6932 < Lang --- > Lang/M 8817,8820c6934,6936 < Langland < Langley < Langmuir < Langsdon/M --- > Langland/M > Langley/M > Langmuir/M 8824d6939 < Lanita/M 8825a6941 > Lankan/M 8827,8828d6942 < Lanni/M < Lannie/M 8833a6948 > Laos/M 8835c6950 < Laplace --- > Laplace/M 8839d6953 < Laraine/M 8842c6956 < Laredo --- > Laredo/M 8844,8845d6957 < Larina/M < Larine/M 8848,8849c6960 < Lark/M < Larousse --- > Larousse/M 8851c6962 < Lars/N --- > Lars/MN 8854d6964 < Laryssa/M 8859c6969 < Lat --- > Lat/M 8861d6970 < Latashia/M 8863c6972 < Latia/M --- > Latham/M 8870,8871d6978 < Latrena/M < Latrina/M 8875,8876c6982,6984 < Laud/R < Laue --- > Laud/MR > Lauder/M > Laue/M 8879c6987 < Laundromat --- > Laundromat/M 8881,8883d6988 < Lauraine/M < Laural/M < Lauralee/M 8886,8887d6990 < Lauree/M < Laureen/M 8889d6991 < Laurella/M 8891d6992 < Laurena/M 8893d6993 < Laurene/M 8898,8899d6997 < Laurianne/M < Laurice/M 8901d6998 < Lauritz/M 8903,8904c7000 < Laval < Lavena/M --- > Laval/M 8906d7001 < Laverna/M 8910,8911c7005 < Lavinie/M < Lavoisier --- > Lavoisier/M 8913d7006 < Law 8915c7008 < Lawrence --- > Lawrence/M 8917c7010 < Lawson --- > Lawson/M 8919,8920c7012 < Lay/M < Layamon --- > Layamon/M 8923d7014 < Layney/M 8929c7020 < Le/SMN --- > Le/SM 8932,8933c7023,7024 < Leadbelly < Leah --- > Leadbelly/M > Leah/M 8936c7027 < Leander --- > Leander/M 8941,8942d7031 < Leanor/M < Leanora/M 8946c7035 < Leavenworth --- > Leavenworth/M 8949d7037 < Lebbie/M 8952c7040 < Leda --- > Leda/M 8955,8956d7042 < Leeann/M < Leeanne/M 8959,8960d7044 < Leelah/M < Leeland/M 8962d7045 < Leesa/M 8964c7047 < Leeuwenhoek --- > Leeuwenhoek/M 8967,8968c7050 < Lefty/M < Legendre --- > Legendre/M 8970c7052 < Leghorn --- > Leghorn/M 8972d7053 < Legra/M 8981,8982c7062 < Leigh < Leigha/M --- > Leigh/M 8985d7064 < Leilah/M 8987d7065 < Leisha/M 8990d7067 < Lelah/M 8995,8997d7071 < Lemar/M < Lemmie/M < Lemmy/M 9003,9005d7076 < Lenci/M < Lenee/M < Lenette/M 9009,9011c7080 < Leninist < Lenka/M < Lenna/M --- > Leninist/M 9020a7090 > Lenten/M 9022,9023d7091 < Leodora/M < Leoine/M 9025,9026c7093 < Leoline/M < Leon --- > Leon/M 9028d7094 < Leonanie/M 9031c7097 < Leoncavallo --- > Leoncavallo/M 9034,9035d7099 < Leonelle/M < Leonerd/M 9037c7101 < Leonid --- > Leonid/M 9044d7107 < Leontyne/M 9048c7111 < Lepidus --- > Lepidus/M 9051c7114 < Lerner --- > Lerner/M 9053a7117 > Les/M 9055d7118 < Leshia/M 9057d7119 < Lesli/M 9059d7120 < Lesly/M 9061c7122 < Lesseps --- > Lesseps/M 9065d7125 < Lesya/M 9069d7128 < Lethia/M 9071d7129 < Letisha/M 9074d7131 < Letta/M 9076d7132 < Letti/M 9079d7134 < Leupold/M 9085c7140 < Leviathan --- > Leviathan/M 9094d7148 < Lewie/M 9096,9098c7150,7151 < Lewis < Lewiss < Lexi/SM --- > Lewis/M > Lexi/M 9100d7152 < Lexine/M 9103d7154 < Lexmark/M 9107,9108d7157 < Lezley/M < Lezlie/M 9117d7165 < Lianna/M 9119d7166 < Lib 9121d7167 < Libbi/M 9123c7169 < Libby --- > Libby/M 9127a7174 > LibreOffice/M 9132,9133c7179 < Licha/M < Lichtenstein --- > Lichtenstein/M 9136c7182 < Lie --- > Lie/M 9138c7184 < Liebfraumilch --- > Liebfraumilch/M 9141c7187 < Lief/M --- > Lief's 9143d7188 < Liesa/M 9147c7192 < Lila/SM --- > Lila/M 9154c7199 < Liliuokalani --- > Liliuokalani/M 9156,9157c7201,7202 < Lille < Lilli/MS --- > Lille/M > Lilli/M 9161,9162c7206 < Lilliputian/SM < Lilllie/M --- > Lilliputian/MS 9166d7209 < Lilyan/M 9170,9171c7213,7214 < Limburger < Limoges --- > Limburger/M > Limoges/M 9179c7222 < Lind --- > Lind/M 9181c7224 < Lindbergh --- > Lindbergh/M 9183d7225 < Lindie/M 9185,9188c7227,7229 < Lindsay < Lindsey < Lindsy/M < Lindy --- > Lindsay/M > Lindsey/M > Lindy/M 9190,9193d7230 < Linell/M < Linet/M < Linette/M < Link/M 9199,9202c7236 < Linnet/M < Linnie/M < Linoel/M < Linotype --- > Linotype/M 9205c7239 < Linux/S --- > Linux/MS 9207d7240 < Linzy/M 9209,9212c7242,7244 < Lionello/M < Lipizzaner < Lippi < Lippmann --- > Lipizzaner/M > Lippi/M > Lippmann/M 9215d7246 < Lira/M 9217d7247 < Lisabeth/M 9221d7250 < Lisetta/M 9223,9224d7251 < Lisha/M < Lishe/M 9228,9229d7254 < Lissi/M < Lissie/M 9234c7259 < Liszt --- > Liszt/M 9240d7264 < Liuka/M 9242d7265 < Liva/M 9245c7268 < Liverpudlian/MS --- > Liverpudlian/SM 9247,9248c7270,7271 < Livingston < Livingstone --- > Livingston/M > Livingstone/M 9250d7272 < Livvie/M 9252,9253c7274 < Livvyy/M < Livy --- > Livy/M 9262,9264c7283,7284 < Llewellyn < Lloyd < Llywellyn/M --- > Llewellyn/M > Lloyd/M 9267,9269c7287,7288 < Lobachevsky < Lochinvar < Lock/M --- > Lobachevsky/M > Lochinvar/M 9271c7290 < Lockean --- > Lockean/M 9274c7293 < Lodge --- > Lodge/M 9277,9279c7296,7297 < Loella/M < Loewe < Loewi --- > Loewe/M > Loewi/M 9283c7301 < Lohengrin --- > Lohengrin/M 9286d7303 < Loise/M 9289,9291c7306,7307 < Loleta/M < Lolita < Lollard --- > Lolita/M > Lollard/M 9293c7309 < Lolly/M --- > Lolly's 9302,9303c7318 < Lonee/M < Long --- > Long/M 9308,9310d7322 < Lonna/M < Lonnard/M < Lonni/M 9318,9320d7329 < Loralee/M < Loralie/M < Loralyn/M 9324,9325d7332 < Loree/M < Loreen/M 9327,9328c7334 < Lorelle/M < Loren/S --- > Loren/M 9331,9332c7337,7338 < Lorentz < Lorenz --- > Lorentz/M > Lorenz/M 9339,9340d7344 < Lorianna/M < Lorianne/M 9342,9343d7345 < Lorilee/M < Lorilyn/M 9346,9347d7347 < Lorine/M < Lorita/M 9351d7350 < Lorrayne/M 9353d7351 < Lorri/M 9355,9356d7352 < Lorrin/M < Lorry/M 9357a7354 > Los 9359d7355 < Lothaire/M 9370c7366 < Louis --- > Louis/M 9373d7368 < Louisette/M 9378,9379c7373 < Lourdes < Loutitia/M --- > Lourdes/M 9383c7377 < Lovelace --- > Lovelace/M 9386c7380 < Lowell --- > Lowell/M 9390d7383 < Lowrance/M 9394,9395c7387 < Loydie/M < Loyola --- > Loyola/M 9402,9404c7394,7396 < Lubavitcher < Lubbock < Lubumbashi --- > Lubavitcher/M > Lubbock/M > Lubumbashi/M 9406c7398 < Lucais/M --- > Lucas/M 9408d7399 < Lucho/M 9410,9411c7401,7402 < Lucia/MS < Lucian --- > Lucia/M > Lucian/M 9418d7408 < Lucila/M 9420d7409 < Lucilia/M 9424d7412 < Lucine/M 9426d7413 < Lucita/M 9430,9432c7417,7419 < Lucky/M < Lucretia < Lucretius --- > Lucky's > Lucretia/M > Lucretius/M 9435c7422 < Ludhiana --- > Ludhiana/M 9437d7423 < Ludovika/M 9441d7426 < Luelle/M 9443c7428 < Luftwaffe --- > Luftwaffe/M 9453,9454c7438 < Lulita/M < Lully --- > Lully/M 9456a7441 > Lumière/M 9459c7444 < Lupercalia --- > Lupercalia/M 9462d7446 < Lurette/M 9464,9467d7447 < Lurleen/M < Lurlene/M < Lurline/M < Lusa/M 9470d7449 < Lutero/M 9478d7456 < Luxemburg/M 9481c7459 < Lvov --- > Lvov/M 9486,9487c7464,7465 < Lycra < Lycurgus --- > Lycra/M > Lycurgus/M 9489c7467 < Lydia --- > Lydia/M 9493c7471 < Lyell --- > Lyell/M 9495c7473 < Lyly --- > Lyly/M 9499c7477 < Lynch --- > Lynch/M 9502,9503d7479 < Lyndel/M < Lyndell/M 9507,9511d7482 < Lyndsie/M < Lyndy/M < Lynea/M < Lynelle/M < Lynett/M 9513,9514c7484 < Lynn < Lynna/M --- > Lynn/M 9516,9520d7485 < Lynnea/M < Lynnell/M < Lynnelle/M < Lynnet/M < Lynnett/M 9522d7486 < Lynsey/M 9523a7488 > Lyons/M 9525c7490 < Lysenko --- > Lysenko/M 9547d7511 < MIPSes 9552a7517 > MOOC 9554c7519 < MPEG/MS --- > MPEG/SM 9561c7526 < MTV --- > MTV/M 9567d7531 < Mabelle/M 9569,9570c7533,7534 < Mac < MacArthur --- > Mac/M > MacArthur/M 9572c7536 < MacDonald --- > MacDonald/M 9576,9577c7540,7541 < Macaulay < Macbeth --- > Macaulay/M > Macbeth/M 9580c7544 < Mace --- > Mace/M 9584c7548 < Mach --- > Mach/M 9586c7550 < Machiavellian --- > Machiavellian/M 9592,9594c7556,7558 < Mackinaw < Macmillan < Macon --- > Mackinaw/M > Macmillan/M > Macon/M 9601d7564 < Madalena/M 9610d7572 < Madel/M 9613,9616d7574 < Madelena/M < Madelene/M < Madelin/M < Madelina/M 9618,9619d7575 < Madella/M < Madelle/M 9624,9625d7579 < Madlen/M < Madlin/M 9630d7583 < Mady/M 9632d7584 < Maegan/M 9635,9636c7587 < Mafioso < Mag/M --- > Mafioso/M 9638d7588 < Magdaia/M 9640c7590 < Magdalena --- > Magdalena/M 9643,9644c7593 < Magellanic < Maggee/M --- > Magellanic/M 9651,9653c7600,7601 < Magnitogorsk < Magnum < Magog --- > Magnitogorsk/M > Magog/M 9655c7603 < Magritte --- > Magritte/M 9666c7614 < Mahdi --- > Mahdi/M 9669c7617 < Mahler --- > Mahler/M 9672d7619 < Mahomet/M 9675d7621 < Maible/M 9677,9678d7622 < Maiga/M < Maighdiln/M 9680,9681c7624,7625 < Mailer < Maillol --- > Mailer/M > Maillol/M 9683c7627 < Maimonides --- > Maimonides/M 9688d7631 < Maisey/M 9691d7633 < Maitilde/M 9694d7635 < Maje/M 9696c7637 < Major --- > Major/M 9698c7639 < Majuro --- > Majuro/M 9700c7641 < Maker --- > Maker/M 9705,9709c7646,7649 < Malacca < Malachi < Malagasy < Malamud < Malanie/M --- > Malacca/M > Malachi/M > Malagasy/M > Malamud/M 9719,9720c7659 < Malchy/M < Malcolm --- > Malcolm/M 9726,9727c7665 < Malena/M < Mali --- > Mali/M 9733,9734c7671 < Malinde/M < Malinowski --- > Malinowski/M 9736,9738c7673,7674 < Malissia/M < Mallarme < Mallissa/M --- > Mallarme/M > Mallarmé/M 9740d7675 < Mallorie/M 9743d7677 < Malorie/M 9746c7680 < Malraux --- > Malraux/M 9754d7687 < Malynda/M 9756,9757c7689,7690 < Mameluke < Mamet --- > Mameluke/M > Mamet/M 9764,9765c7697 < Manasseh < Manaus --- > Manasseh/M 9769c7701 < Manchurian --- > Manchurian/M 9776,9777c7708,7709 < Mandela < Mandelbrot --- > Mandela/M > Mandelbrot/M 9780c7712 < Mandingo --- > Mandingo/M 9782d7713 < Mandriva/M 9784c7715 < Manet --- > Manet/M 9787,9788c7718,7719 < Mani < Manichean --- > Mani/M > Manichean/M 9793c7724 < Mann/G --- > Mann/GM 9795a7727 > Manning/M 9800c7732 < Mansfield --- > Mansfield/M 9802c7734 < Mantegna --- > Mantegna/M 9817,9819c7749,7750 < Marabel/M < Maracaibo < Marat --- > Maracaibo/M > Marat/M 9823,9824c7754,7755 < Marc < Marceau --- > Marc/M > Marceau/M 9827d7757 < Marcelia/M 9831,9832d7760 < Marcellina/M < Marcelline/M 9837,9838d7764 < Marchall/M < Marchelle/M 9841c7767 < Marciano --- > Marciano/M 9843,9844d7768 < Marcile/M < Marcille/M 9846c7770,7771 < Marconi --- > Marconi/M > Marcos/M 9851d7775 < Mareah/M 9853,9854d7776 < Marena/M < Maressa/M 9857,9858c7779 < Margalo/M < Margaret --- > Margaret/M 9864,9865c7785 < Margarette/M < Margarita --- > Margarita/M 9869d7788 < Margeaux/M 9872,9873d7790 < Margette/M < Margi/M 9885c7802 < Marian --- > Marian/M 9887c7804 < Mariann/M --- > Marianas/M 9889c7806 < Marianne --- > Marianne/M 9892d7808 < Maribelle/M 9894d7809 < Marice/M 9896d7810 < Maridel/M 9898,9899d7811 < Marieann/M < Mariejeanne/M 9901d7812 < Mariele/M 9903d7813 < Mariellen/M 9906,9908d7815 < Marigold/M < Marijn/M < Marijo/M 9911,9912d7817 < Marilin/M < Marillin/M 9914c7819 < Marin --- > Marin/M 9917d7821 < Marinna/M 9920c7824 < Mariquilla/M --- > Maris/M 9926,9927c7830 < Maritain < Maritsa --- > Maritain/M 9930,9931c7833 < Marius < Mariya/M --- > Marius/M 9934,9936d7835 < Marje/M < Marji/M < Marjie/M 9939d7837 < Marjy/M 9942,9943c7840 < Marketa/M < Markham --- > Markham/M 9945c7842,7843 < Markov --- > Markov/M > Marks/M 9948d7845 < Marlane/M 9950,9951c7847 < Marlborough < Marleah/M --- > Marlborough/M 9957,9958c7853 < Marlie/M < Marlin --- > Marlin/M 9963,9964c7858 < Marlowe < Marlyn/M --- > Marlowe/M 9967,9968c7861 < Marna/M < Marne --- > Marne/M 9971d7863 < Marnia/M 9973c7865 < Maronite --- > Maronite/M 9976c7868 < Marquette --- > Marquette/M 9978c7870 < Marquis --- > Marquis/M 9981d7872 < Marrilee/M 9984d7874 < Marrissa/M 9988c7878 < Marseille/S --- > Marseilles/M 9991d7880 < Marshal/M 9993,9994d7881 < Marsiella/M < Mart/MN 9996,10001c7883,7884 < Martainn/M < Martel < Martelle/M < Marten/M < Martguerita/M < Martha --- > Martel/M > Martha/M 10003d7885 < Marthena/M 10005c7887 < Martial --- > Martial/M 10007d7888 < Martica/M 10009c7890 < Martin --- > Martin/M 10014d7894 < Martita/M 10017,10018c7897 < Martynne/M < Marv/MN --- > Marv/M 10020d7898 < Marve/M 10022,10024c7900 < Marven/M < Marvin < Marwin/M --- > Marvin/M 10032d7907 < Maryanna/M 10034d7908 < Marybelle/M 10037,10039d7910 < Maryjane/M < Maryjo/M < Maryl/M 10041c7912 < Marylee/M --- > Marylander/M 10043d7913 < Marylinda/M 10045,10046d7914 < Marylynne/M < Maryrose/M 10048d7915 < Marysa/M 10051,10053c7918,7920 < Masaryk < Mascagni < Masefield --- > Masaryk/M > Mascagni/M > Masefield/M 10059c7926 < Masonic --- > Masonic/M 10062,10065c7929,7932 < Massachusetts < Massasoit < Massenet < Massey --- > Massachusetts/M > Massasoit/M > Massenet/M > Massey/M 10069a7937 > Masters/M 10071d7938 < Matelda/M 10074a7942 > Mather/M 10075a7944 > Mathews/M 10077,10078c7946 < Mathian/M < Mathias --- > Mathias/M 10081c7949 < Mathis --- > Mathis/M 10083c7951 < Matilda --- > Matilda/M 10085,10086c7953,7954 < Matisse < Matt --- > Matisse/M > Matt/M 10090,10091d7957 < Matthaeus/M < Mattheus/M 10093c7959,7960 < Matthias --- > Matthews/M > Matthias/M 10095,10096d7961 < Matthiew/M < Matthus/M 10104c7969 < Maugham --- > Maugham/M 10106c7971 < Maupassant --- > Maupassant/M 10108d7972 < Maure/M 10110,10113c7974,7975 < Maureene/M < Maurene/M < Mauriac < Maurice --- > Mauriac/M > Maurice/M 10117,10118d7978 < Maurise/M < Maurita/M 10120c7980 < Mauritanian/MS --- > Mauritanian/SM 10124d7983 < Maurizia/M 10127c7986 < Maurois --- > Maurois/M 10130c7989 < Mauser --- > Mauser/M 10132d7990 < Mavra/M 10134d7991 < Maxi/M 10136,10138c7993 < Maxim < Maximilian < Maximilianus/M --- > Maximilian/M 10142,10143c7997 < Maxwell < Maxy/M --- > Maxwell/M 10149c8003,8004 < Mayfair --- > Mayer/M > Mayfair/M 10153,10155c8008 < Maynord/M < Mayo < Mayor/M --- > Mayo/M 10157a8011 > Mays/M 10160c8014 < Mazarin --- > Mazarin/M 10162c8016 < Mazda --- > Mazda/M 10175c8029 < McCarthy --- > McCarthy/M 10180c8034 < McClellan --- > McClellan/M 10183,10184c8037,8038 < McCormick < McCoy --- > McCormick/M > McCoy/M 10221,10223c8075,8077 < Mead < Meade < Meadows --- > Mead/M > Meade/M > Meadows/M 10229,10230c8083 < Mechelle/M < Medan --- > Medan/M 10232,10233c8085,8086 < Medellin < Media --- > Medellin/M > Media/M 10236,10238c8089,8091 < Medici < Medina < Mediterranean/SM --- > Medici/M > Medina/M > Mediterranean/MS 10241c8094 < Meg/MN --- > Meg/M 10243,10244d8095 < Megen/M < Meggi/M 10246d8096 < Meggy/M 10248,10249d8097 < Meghann/M < Mehetabel/M 10254c8102 < Meir --- > Meir/M 10259d8106 < Melamie/M 10261c8108 < Melanesian --- > Melanesian/M 10264,10266c8111 < Melantha/M < Melany/M < Melba --- > Melba/M 10268,10269c8113,8114 < Melchior < Melchizedek --- > Melchior/M > Melchizedek/M 10271,10272d8115 < Melesa/M < Melessa/M 10276d8118 < Melinde/M 10279,10281d8120 < Melisandra/M < Melisenda/M < Melisent/M 10283d8121 < Melisse/M 10285d8122 < Melitta/M 10288d8124 < Mellicent/M 10290,10293c8126 < Mellisa/M < Mellisent/M < Mellon < Melloney/M --- > Mellon/M 10295d8127 < Melodee/M 10298d8129 < Melonie/M 10300d8130 < Melosa/M 10307c8137 < Memling --- > Memling/M 10309c8139 < Menander --- > Menander/M 10311,10312c8141,8142 < Mencius < Mencken --- > Mencius/M > Mencken/M 10315,10316c8145,8146 < Mendelian < Mendelssohn --- > Mendelian/M > Mendelssohn/M 10318d8147 < Mendie/M 10320,10321c8149 < Mendoza < Mendy/M --- > Mendoza/M 10324c8152 < Menes --- > Menes/M 10332,10333c8160,8161 < Menotti < Mensa --- > Menotti/M > Mensa/M 10336,10337c8164,8166 < Menzies < Mephistopheles --- > Menzies/M > Mephisto > Mephistopheles/M 10340,10341c8169,8170 < Mercator < Mercedes --- > Mercator/M > Mercedes/M 10344,10345c8173 < Mercia < Mercie/M --- > Mercia/M 10349,10355c8177 < Mercy/M < Meredeth/M < Meredith < Meredithe/M < Merell/M < Meridel/M < Meridith/M --- > Meredith/M 10357,10362c8179 < Merilee/M < Merill/M < Merilyn/M < Merino < Meris < Merissa/M --- > Merino/M 10364d8180 < Merla/M 10367,10374c8183,8184 < Merlina/M < Merline/M < Merlot < Merna/M < Merola/M < Merovingian < Merralee/M < Merrel/M --- > Merlot/M > Merovingian/M 10377d8186 < Merridie/M 10379,10382d8187 < Merrielle/M < Merrile/M < Merrilee/M < Merrili/M 10384c8189 < Merrily/M --- > Merrily's 10387c8192 < Merry/M --- > Merry's 10390c8195 < Merton --- > Merton/M 10396c8201 < Mesa --- > Mesa/M 10400c8205 < Mesolithic --- > Mesolithic/M 10405c8210 < Messiaen --- > Messiaen/M 10409d8213 < Messrs 10415,10416c8219,8220 < Methuselah < Metternich --- > Methuselah/M > Metternich/M 10419c8223 < Mexicali --- > Mexicali/M 10423c8227,8228 < Meyerbeer --- > Meyerbeer/M > Meyers/M 10427c8232 < MiG --- > MiG/M 10431d8235 < Mic 10433,10436c8237,8240 < Micah < Micawber < Mich < Michael --- > Micah/M > Micawber/M > Mich/M > Michael/M 10438,10440d8241 < Michaelina/M < Michaeline/M < Michaella/M 10444d8244 < Michale/M 10446d8245 < Micheil/M 10451d8249 < Michelina/M 10456c8254 < Michelson --- > Michelson/M 10458c8256 < Michigander/SM --- > Michigander/MS 10467c8265 < Micronesian --- > Micronesian/M 10470c8268 < Middleton --- > Middleton/M 10473,10474c8271 < Midge/M < Midland/S --- > Midland/MS 10477c8274 < Midwestern/R --- > Midwestern/MR 10479d8275 < Mignonne/M 10481,10482d8276 < Miguela/M < Miguelita/M 10484d8277 < Mikaela/M 10490d8282 < Mikol/M 10492d8283 < Mil/MY 10497,10498d8287 < Mildrid/M < Mile/SM 10499a8289 > Miles/M 10501,10503d8290 < Milicent/M < Milissent/M < Milka/M 10505c8292 < Mill/SR --- > Mill/SMR 10507,10508c8294,8296 < Millay < Millet --- > Millay/M > Miller/M > Millet/M 10512,10513c8300,8301 < Millikan < Millisent/M --- > Millikan/M > Mills/M 10515c8303 < Milne --- > Milne/M 10519,10523c8307,8309 < Milt/M < Miltiades < Miltie/M < Milton < Miltonic --- > Miltiades/M > Milton/M > Miltonic/M 10525d8310 < Milty/M 10527d8311 < Milzie/M 10530c8314 < Min/MR --- > Min/M 10534c8318 < Mindanao --- > Mindanao/M 10537d8320 < Miner/M 10539d8321 < Minetta/M 10540a8323 > Ming/M 10544d8326 < Minnaminnie/M 10550d8331 < Minni/M 10552d8332 < Minnnie/M 10556d8335 < Minor/M 10564c8343 < Minuit --- > Minuit/M 10567d8345 < Miquela/M 10570c8348 < Mirabeau --- > Mirabeau/M 10576,10577c8354 < Miranda < Mireielle/M --- > Miranda/M 10580d8356 < Mirelle/M 10583d8358 < Mirilla/M 10585c8360 < Miro --- > Miro/M 10589c8364 < Miskito --- > Miskito/M 10592c8367 < Mississauga --- > Mississauga/M 10598c8373 < Mistassini --- > Mistassini/M 10600d8374 < Misti 10604d8377 < Mitchael/M 10606c8379 < Mitchell --- > Mitchell/M 10614,10615c8387,8388 < Mixtec < Mizar --- > Mixtec/M > Mizar/M 10622d8394 < Mob 10626,10631c8398,8399 < Modesta/M < Modestia/M < Modestine/M < Modesto < Modesty/M < Modigliani --- > Modesto/M > Modigliani/M 10634c8402 < Mogadishu --- > Mogadishu/M 10639d8406 < Mohammed/M 10641c8408 < Mohammedanism/MS --- > Mohammedanism/SM 10643d8409 < Mohandis/M 10647d8412 < Mohican/MS 10650,10651c8415 < Moina/M < Moira --- > Moira/M 10652a8417 > Moises/M 10661c8426 < Molina --- > Molina/M 10663,10664d8427 < Mollee/M < Molli/M 10671c8434 < Moluccas --- > Moluccas/M 10673d8435 < Mommy/M 10678d8439 < Monah/M 10681c8442 < Mondrian --- > Mondrian/M 10684c8445 < Monet --- > Monet/M 10694,10695c8455,8456 < Monmouth < Monongahela --- > Monmouth/M > Monongahela/M 10701,10703c8462,8464 < Mont < Montague < Montaigne --- > Mont/M > Montague/M > Montaigne/M 10706c8467 < Montcalm --- > Montcalm/M 10708c8469 < Montenegrin --- > Montenegrin/M 10710,10713c8471,8474 < Monterrey < Montesquieu < Montessori < Monteverdi --- > Monterrey/M > Montesquieu/M > Montessori/M > Monteverdi/M 10716c8477 < Montgolfier --- > Montgolfier/M 10719c8480 < Monticello --- > Monticello/M 10722c8483 < Montrachet --- > Montrachet/M 10726,10727c8487,8488 < Moody < Moog --- > Moody/M > Moog/M 10731c8492 < Moore --- > Moore/M 10736,10737c8497,8498 < Moravia < Moravian --- > Moravia/M > Moravian/M 10740,10743c8501,8502 < Mordred < Mordy/M < More < Moreen/M --- > Mordred/M > More/M 10749,10750d8507 < Morganica/M < Morganne/M 10752d8508 < Morgun/M 10755d8510 < Morie/M 10758d8512 < Morissa/M 10761,10763c8515 < Morlee/M < Morley < Morly/M --- > Morley/M 10767c8519 < Moro --- > Moro/M 10770c8522 < Moroni --- > Moroni/M 10774,10775c8526,8527 < Morris < Morrison --- > Morris/M > Morrison/M 10777d8528 < Morry/M 10781,10782c8532 < Mortie/M < Mortimer --- > Mortimer/M 10788c8538 < Moseley --- > Moseley/M 10791a8542 > Moslem/M 10794c8545 < Mosul --- > Mosul/M 10798,10800c8549,8552 < Mott < Mount < Mountbatten --- > Mott/M > Moulton/M > Mount/M > Mountbatten/M 10802c8554 < Moussorgsky --- > Moussorgsky/M 10806d8557 < Moyna/M 10811,10812d8561 < Mozelle/M < Mozes/M 10814c8563 < Mozillian/SM --- > Mozillian/MS 10823,10825d8571 < Muffin/M < Mufi/M < Mufinella/M 10828c8574 < Muhammadan/SM --- > Muhammadan/MS 10830,10831c8576 < Muir < Muire/M --- > Muir/M 10838c8583 < Mullins --- > Mullins/M 10840,10841c8585,8586 < Multan < Multics/S --- > Multan/M > Multics 10843,10844c8588,8589 < Mumford < Munch --- > Mumford/M > Munch/M 10847d8591 < Munmro/M 10849c8593 < Munro --- > Munro/M 10851c8595 < Munster --- > Munster/M 10854c8598 < Murat --- > Murat/M 10857c8601 < Murdoch --- > Murdoch/M 10859,10860d8602 < Mureil/M < Murial/M 10862,10863c8604 < Murielle/M < Murillo --- > Murillo/M 10865,10866c8606,8607 < Murmansk < Murphy --- > Murmansk/M > Murphy/M 10869c8610 < Murrumbidgee --- > Murrumbidgee/M 10871d8611 < Murvyn/M 10881c8621 < Mussorgsky --- > Mussorgsky/M 10883,10884c8623,8624 < Muzak < My/M --- > Muzak/M > My's 10889,10890d8628 < Myca/M < Mycah/M 10892,10893c8630 < Mycenaean < Mychal/M --- > Mycenaean/M 10894a8632 > Myers/M 10897d8634 < Mylo/M 10899,10900d8635 < Myrah/M < Myranda/M 10903,10905d8637 < Myrilla/M < Myrle/M < Myrlene/M 10907,10911c8639 < Myron < Myrta/M < Myrtia/M < Myrtice/M < Myrtie/M --- > Myron/M 10913,10915c8641 < Myrvyn/M < Myrwyn/M < Mysore --- > Mysore/M 10916a8643 > Münchhausen/M 10919,10920c8646,8647 < NAACP < NAFTA --- > NAACP/M > NAFTA/M 10926,10927c8653,8654 < NBA < NBC --- > NBA/M > NBC/M 10930c8657 < NCAA --- > NCAA/M 10937,10938c8664,8665 < NFL < NGO/MS --- > NFL/M > NGO/SM 10940c8667 < NHL --- > NHL/M 10949c8676 < NPR --- > NPR/M 10953a8681 > NSA/M 10968c8696 < Nabokov --- > Nabokov/M 10970,10972c8698 < Nadean/M < Nadeen/M < Nader --- > Nader/M 10975d8700 < Nadiya/M 10977d8701 < Nady/M 10980,10982c8704,8706 < Nagoya < Nagpur < Nagy --- > Nagoya/M > Nagpur/M > Nagy/M 10984c8708 < Nahum --- > Nahum/M 10989d8712 < Nalani/M 10996,10997c8719 < Nanak < Nananne/M --- > Nanak/M 10999,11001c8721 < Nancee/M < Nancey/M < Nanchang --- > Nanchang/M 11003,11005c8723 < Nancie/M < Nancy < Nanete/M --- > Nancy/M 11008,11009d8725 < Nanice/M < Nanine/M 11011,11012d8726 < Nanking/MS < Nannette/M 11015d8728 < Nanny/M 11018c8731 < Nansen --- > Nansen/M 11021d8733 < Naoma/M 11023d8734 < Nap/M 11029,11031c8740 < Napoleonic < Nappie/M < Nappy/M --- > Napoleonic/M 11036d8744 < Nariko/M 11040c8748 < Narragansett --- > Narragansett/M 11042,11043c8750,8751 < Nash < Nashua --- > Nash/M > Nashua/M 11049,11050c8757 < Natal/M < Natala/M --- > Natal's 11052d8758 < Natalee/M 11055,11056d8760 < Natalina/M < Nataline/M 11058d8761 < Nataniel/M 11060,11061c8763 < Natassia/M < Natchez --- > Natchez/M 11063d8764 < Nathalia/M 11065c8766 < Nathan/S --- > Nathan/SM 11069c8770,8771 < Nathanil/M --- > Nathans/M > Nation/M 11073,11074c8775 < Natka/M < Natty/M --- > Natty's 11076c8777 < Naugahyde --- > Naugahyde/M 11078,11079c8779 < Nautilus < Navaho/M --- > Nautilus/M 11082c8782 < Navarre --- > Navarre/M 11086,11088c8786,8788 < Nazarene < Nazareth < Nazca --- > Nazarene/M > Nazareth/M > Nazca/M 11090d8789 < Naziism/SM 11099d8797 < Neala/M 11101,11103d8798 < Neall/M < Nealon/M < Nealson/M 11105,11106c8800,8801 < Neanderthal/MS < Neapolitan --- > Neanderthal/SM > Neapolitan/M 11111c8806 < Nebuchadnezzar --- > Nebuchadnezzar/M 11116d8810 < Neddie/M 11118d8811 < Nedi/M 11121,11122c8814 < Nefen/M < Nefertiti --- > Nefertiti/M 11129c8821,8822 < Nehemiah --- > Negros/M > Nehemiah/M 11132,11133d8824 < Neila/M < Neile/M 11135,11136d8825 < Neilla/M < Neille/M 11138,11139d8826 < Nelia/M < Nelie/M 11147c8834 < Nelson --- > Nelson/M 11150c8837 < Neogene --- > Neogene/M 11157c8844 < Nerf --- > Nerf/M 11159,11168c8846,8847 < Nerita/M < Nero < Neron/M < Nert/M < Nerta/M < Nerte/M < Nerti/M < Nertie/M < Nerty/M < Neruda --- > Nero/M > Neruda/M 11171,11172c8850 < Nesselrode < Nessi/M --- > Nesselrode/M 11174d8851 < Nessy/M 11179c8856 < Nestorius --- > Nestorius/M 11181,11182c8858,8860 < Netherlander/MS < Netherlands --- > Netflix/M > Netherlander/SM > Netherlands/M 11185d8862 < Netti/M 11187,11188d8863 < Nettle/M < Netty/M 11190,11191c8865,8866 < Nev < Neva --- > Nev/M > Neva/M 11200d8874 < Nevsa/M 11205c8879 < Newman --- > Newman/M 11207d8880 < Newsvine/M 11212c8885 < Nexis --- > Nexis/M 11214d8886 < Neysa/M 11217c8889 < Ni --- > Ni/M 11222,11223c8894,8895 < Nibelung < Nicaea --- > Nibelung/M > Nicaea/M 11228c8900 < Nicene --- > Nicene/M 11231c8903 < Nicholas --- > Nicholas/M 11233,11234c8905,8906 < Nicholle/M < Nicholson --- > Nichols/M > Nicholson/M 11237d8908 < Nickey/M 11240c8911 < Nicklaus --- > Nicklaus/M 11242,11244c8913 < Nickola/SM < Nickolai/M < Nickolaus/M --- > Nickolas/M 11248c8917 < Nicodemus --- > Nicodemus/M 11251c8920,8921 < Nicolai/S --- > Nicolai > Nicolas/M 11253d8922 < Nicolea/M 11255,11257c8924 < Nicoli/SM < Nicolina/M < Nicoline/M --- > Nicolis 11262,11263c8929,8930 < Niels/N < Nietzsche --- > Nielsen/M > Nietzsche/M 11271,11272c8938 < Nijinsky < Nikaniki/M --- > Nijinsky/M 11276c8942 < Nikkei --- > Nikkei/M 11278d8943 < Nikkie/M 11284,11287c8949 < Nikolayev < Nikoletta/M < Nikolia/M < Nikolos/M --- > Nikolayev/M 11289d8950 < Nil/SM 11290a8952 > Nils 11292,11293c8954,8955 < Nimitz < Nimrod --- > Nimitz/M > Nimrod/M 11295d8956 < Ninetta/M 11298,11299d8958 < Ninnetta/M < Ninnette/M 11301,11302c8960,8961 < Nintendo < Niobe --- > Nintendo/M > Niobe/M 11306c8965 < Nirvana --- > Nirvana/M 11308,11309c8967 < Nisei < Nissa/M --- > Nisei/M 11311,11313d8968 < Nisse/M < Nissie/M < Nissy/M 11318d8972 < Nixie 11320c8974 < Nkrumah --- > Nkrumah/M 11323d8976 < Noach/M 11325d8977 < Noak/M 11327,11329c8979 < Noami/M < Nobe/M < Nobel --- > Nobel/M 11331d8980 < Nobie/M 11333d8981 < Noby/M 11336,11338d8983 < Noelani/M < Noell/M < Noella/M 11340,11341d8984 < Noellyn/M < Noelyn/M 11343d8985 < Noh 11347d8988 < Nolana/M 11349d8989 < Nolie/M 11351,11353c8991 < Nollie/M < Nolly/M < Nome --- > Nome/M 11356d8993 < Nonah/M 11360d8996 < Nonnah/M 11366,11367d9001 < Norbie/M < Norby/M 11369d9002 < Norean/M 11371d9003 < Norene/M 11374,11376c9006 < Norina/M < Norine/M < Norma --- > Norma/M 11380,11383c9010 < Normie/M < Normy/M < Norplant < Norri/MS --- > Norplant/M 11385c9012 < Norry/M --- > Norris/M 11388c9015 < Norsemen --- > Norsemen/M 11391c9018 < Northampton --- > Northampton/M 11403c9030 < Norwich --- > Norwich/M 11405c9032 < Nostradamus --- > Nostradamus/M 11407c9034 < Nottingham --- > Nottingham/M 11411c9038 < Nova --- > Nova/M 11413d9039 < Novelia/M 11415c9041 < Novgorod --- > Novgorod/M 11418c9044 < Novokuznetsk --- > Novokuznetsk/M 11425,11427c9051,9053 < Nubia < Nubian < Nukualofa --- > Nubia/M > Nubian/M > Nukualofa/M 11432,11433c9058,9059 < Nuremberg < Nureyev --- > Nuremberg/M > Nureyev/M 11437d9062 < Nydia/M 11441,11452c9066,9077 < O'Brien < O'Casey < O'Connell < O'Connor < O'Donnell < O'Hara < O'Higgins < O'Keeffe < O'Neil < O'Neill < O'Rourke < O'Toole --- > O'Brien/M > O'Casey/M > O'Connell/M > O'Connor/M > O'Donnell/M > O'Hara/M > O'Higgins/M > O'Keeffe/M > O'Neil/M > O'Neill/M > O'Rourke/M > O'Toole/M 11463c9088 < OK/SM --- > OK/SMDG 11477,11478c9102,9103 < Oakley < Oates --- > Oakley/M > Oates/M 11481,11482c9106 < Obadiah < Obadias/M --- > Obadiah/M 11483a9108 > Obamacare 11485d9109 < Obediah/M 11487,11488c9111 < Oberon < Obidiah/M --- > Oberon/M 11490,11491c9113 < Oby/M < Occam --- > Occam/M 11493c9115 < Occidental/SM --- > Occidental/MS 11499c9121 < Octavia --- > Octavia/M 11504,11507d9125 < Ode/RM < Odele/M < Odelia/M < Odelinda/M 11509,11510d9126 < Odella/M < Odelle/M 11513,11514c9129 < Odets < Odetta/M --- > Odets/M 11516d9130 < Odey/M 11518,11519d9131 < Odilia/M < Odille/M 11527c9139 < Oedipal --- > Oedipal/M 11531,11532c9143 < Ofella/M < Offenbach --- > Offenbach/M 11534,11536c9145 < Ofilia/M < Ogbomosho < Ogdan/M --- > Ogbomosho/M 11538d9146 < Ogdon/M 11540c9148 < Oglethorpe --- > Oglethorpe/M 11545d9152 < Ojibway/MS 11547,11549c9154,9156 < Okeechobee < Okefenokee < Okhotsk --- > Okeechobee/M > Okefenokee/M > Okhotsk/M 11554,11555c9161,9162 < Oklahoman < Oktoberfest --- > Oklahoman/M > Oktoberfest/M 11558d9164 < Olag/M 11561c9167 < Oldenburg --- > Oldenburg/M 11565d9170 < Ole/MV 11568,11569d9172 < Olenka/M < Olenolin/M 11571d9173 < Olia/M 11576,11577c9178 < Olivero/M < Olivette/M --- > Oliver/M 11580,11582c9181 < Olivie/MR < Oliviero/M < Oliy/M --- > Olivier/M 11585c9184 < Olmec --- > Olmec/M 11589,11590d9187 < Olva/M < Olvan/M 11596,11597c9193,9194 < Olympic/S < Olympie/M --- > Olympic/SM > Olympics/M 11603c9200 < Omayyad --- > Omayyad/M 11605d9201 < Omero/M 11608,11609c9204 < Onassis < Ondrea/M --- > Onassis/M 11611c9206 < Onega --- > Onega/M 11614,11616d9208 < Onfre/M < Onfroi/M < Onida/M 11619d9210 < Onofredo/M 11628d9218 < Opalina/M 11631a9222 > OpenOffice/M 11633,11634c9224 < Ophelie/M < Ophiuchus --- > Ophiuchus/M 11639,11643d9228 < Oralee/M < Oralia/M < Oralie/M < Oralla/M < Oralle/M 11645c9230 < Orange --- > Orange/M 11648d9232 < Orbadiah/M 11656,11660d9239 < Orelee/M < Orelia/M < Orelie/M < Orella/M < Orelle/M 11662,11663c9241,9242 < Oreo < Orestes --- > Oreo/M > Orestes/M 11665c9244 < Orient --- > Orient/M 11680c9259 < Orphic --- > Orphic/M 11682d9260 < Orran/M 11685,11686d9262 < Orsa/M < Orsola/M 11689d9264 < Ortensia/M 11696,11697c9271,9272 < Orwell < Orwellian --- > Orwell/M > Orwellian/M 11698a9274 > Os/M 11703,11704c9279 < Osborne < Osbourn/M --- > Osborne/M 11707c9282 < Osceola --- > Osceola/M 11709c9284 < Oshawa --- > Oshawa/M 11718c9293 < Ostwald --- > Ostwald/M 11720,11725c9295 < Oswald < Oswell/M < Otes < Otha/M < Othelia/M < Othella/M --- > Oswald/M 11727,11728d9296 < Othilia/M < Othilie/M 11733,11735c9301,9303 < Otto < Ottoman < Ouagadougou --- > Otto/M > Ottoman/M > Ouagadougou/M 11737,11738c9305,9307 < Ovid < Owen/S --- > Ovid/M > Owen/SM > Owens/M 11741c9310 < Oxnard --- > Oxnard/M 11743c9312 < Oxus --- > Oxus/M 11745c9314 < Oz --- > Oz/M 11759a9329 > PCMCIA 11762,11763c9332,9333 < PDA/MS < PDF/MS --- > PDA/SM > PDF/SM 11769a9340 > PGP 11772c9343 < PLO --- > PLO/M 11786c9357 < PTA --- > PTA/M 11801d9371 < Packston/M 11803d9372 < Pacorro/M 11805,11808c9374 < Paddie/M < Paddy/M < Paderewski < Padget/M --- > Paderewski/M 11813,11815c9379,9380 < Padriac/M < Paganini < Page --- > Paganini/M > Page/M 11817c9382 < Pahlavi --- > Pahlavi/M 11819,11820c9384 < Pail/M < Paine --- > Paine/M 11824,11825c9388,9389 < Palau < Palembang --- > Palau/M > Palembang/M 11827,11828c9391,9392 < Paleogene < Paleolithic --- > Paleogene/M > Paleolithic/M 11833,11834c9397,9398 < Palestrina < Paley --- > Palestrina/M > Paley/M 11836c9400 < Palin/MS --- > Palin/M 11838,11841c9402,9404 < Pall/M < Palladio < Palm/MR < Palmerston --- > Palladio/M > Palmer/M > Palmerston/M 11848,11854c9411,9412 < Pamelina/M < Pamella/M < Pamirs < Pammi/M < Pammie/M < Pammy/M < Pampers --- > Pamirs/M > Pampers/M 11859d9416 < Panchito/M 11863c9420 < Pankhurst --- > Pankhurst/M 11865d9421 < Pansie/M 11867c9423 < Pantagruel --- > Pantagruel/M 11869c9425 < Pantheon --- > Pantheon/M 11874d9429 < Papagena/M 11877,11879c9432,9433 < Paquito/M < Paracelsus < Paraclete --- > Paracelsus/M > Paraclete/M 11882a9437 > Paralympic/S 11885a9441 > Paraná/M 11887c9443 < Pareto --- > Pareto/M 11890c9446 < Park/SR --- > Park/SMR 11891a9448 > Parker/M 11893,11894c9450,9453 < Parkman < Parliament --- > Parkman/M > Parks/M > Parliament/M > Parmenides 11897,11901c9456,9458 < Parnell < Parr < Parrish < Parrnell/M < Parry --- > Parnell/M > Parr/M > Parrish/M 11905c9462 < Parsons --- > Parsons/M 11914c9471 < Pasternak --- > Pasternak/M 11916c9473 < Pat/N --- > Pat/MN 11918c9475 < Patagonian --- > Patagonian/M 11922,11925c9479,9480 < Paterson < Patience/M < Patin/M < Patna --- > Paterson/M > Patna/M 11934,11935d9488 < Patrizio/M < Patrizius/M 11939c9492 < Patti --- > Patti/M 11941,11942c9494 < Pattin/M < Patton --- > Patton/M 11947d9498 < Pauletta/M 11949c9500 < Pauli --- > Pauli/M 11952,11953c9503,9504 < Pauline < Paulita/M --- > Pauline/M > Pauling/M 11956c9507 < Pavarotti --- > Pavarotti/M 11959d9509 < Pavla/M 11961,11962c9511,9512 < Pavlova < Pavlovian --- > Pavlova/M > Pavlovian/M 11964d9513 < Paxon/M 11974c9523 < Peale --- > Peale/M 11977d9525 < Pearla/M 11980d9527 < Pearline/M 11982,11984c9529,9530 < Peary < Pebrook/M < Pechora --- > Peary/M > Pechora/M 11994,11995d9539 < Peggi/M < Peggie/M 11997c9541 < Pei --- > Pei/M 12000c9544 < Pekinese/MS --- > Pekinese/M 12006a9551 > Pen/M 12009d9553 < Penelopa/M 12011c9555 < Penn --- > Penn/M 12014,12015d9557 < Penni/M < Pennie/M 12018c9560 < Pennsylvanian/SM --- > Pennsylvanian/MS 12030c9572 < Peoria --- > Peoria/M 12033d9574 < Pepillo/M 12036d9576 < Pepito/M 12038,12039c9578,9579 < Pepys < Pequot --- > Pepys/M > Pequot/M 12041,12043c9581,9583 < Percheron < Percival < Percy --- > Percheron/M > Percival/M > Percy/M 12047,12050c9587,9588 < Peria/M < Perice/M < Periclean < Pericles --- > Periclean/M > Pericles/M 12051a9590 > Perkins/M 12058d9596 < Pernell/M 12060c9598 < Peron --- > Peron/M 12062,12063c9600,9601 < Perren/M < Perri/M --- > Perri/MR > Perrier/M 12065,12066c9603,9604 < Perry/R < Perseid --- > Perry/M > Perseid/M 12070c9608 < Pershing --- > Pershing/M 12077,12078c9615 < Peshawar < Pet --- > Peshawar/M 12083a9621 > Peters/MN 12086d9623 < Peterus/M 12089c9626 < Petra --- > Petra/M 12091d9627 < Petrina/M 12093d9628 < Petronia/M 12095d9629 < Petronille/M 12097d9630 < Petunia/M 12099d9631 < Peyter/M 12104c9636 < Phaedra --- > Phaedra/M 12106,12107c9638 < Phaidra/M < Phanerozoic --- > Phanerozoic/M 12114d9644 < Phedra/M 12116d9645 < Phelia/M 12118,12119c9647,9648 < Phidias < Phil/Y --- > Phidias/M > Phil/MY 12121d9649 < Philbert/M 12123,12125c9651,9652 < Philemon < Philip/S < Philipa/M --- > Philemon/M > Philip/MS 12128c9655 < Philippians --- > Philippians/M 12129a9657 > Philippines/M 12131,12132c9659 < Philis/M < Philistine --- > Philistine/M 12134,12135c9661 < Phillie/M < Phillip/S --- > Phillip/SM 12138c9664 < Phillipp/M --- > Phillips/M 12143d9668 < Phip/M 12145c9670 < Phobos --- > Phobos/M 12150,12152c9675 < Photoshop/MS < Photoshopped < Photoshopping --- > Photoshop/M 12157d9679 < Phylis/M 12160,12161d9681 < Phyllys/M < Phylys/M 12167c9687 < Piccadilly --- > Piccadilly/M 12169c9689 < Pickett --- > Pickett/M 12172c9692 < Pict --- > Pict/M 12175d9694 < Pier/M 12177d9695 < Pierette/M 12184d9701 < Pietrek/M 12186,12187d9702 < Piggy/M < Pigmy/SM 12189,12191c9704,9707 < Pilate/S < Pilcomayo < Pilgrim/S --- > Pilate/MS > Pilates/M > Pilcomayo/M > Pilgrim/SM 12194d9709 < Pincas/M 12198c9713 < Pinkerton --- > Pinkerton/M 12201c9716 < Pinter --- > Pinter/M 12204,12205d9718 < Pip/MR < Piper/M 12208,12212c9721,9723 < Pippo/M < Pippy/M < Piraeus < Pirandello < Pisa --- > Piraeus/M > Pirandello/M > Pisa/M 12214c9725 < Pisistratus --- > Pisistratus/M 12217c9728 < Pitt/S --- > Pitt/SM 12218a9730 > Pitts/M 12221c9733 < Pizarro --- > Pizarro/M 12225c9737 < Planck --- > Planck/M 12230c9742 < Plath --- > Plath/M 12243c9755 < Pliny --- > Pliny/M 12252c9764,9765 < Podgorica --- > Poconos/M > Podgorica/M 12254,12255c9767,9768 < Podunk < Poe --- > Podunk/M > Poe/M 12257a9771 > Poincaré/M 12263c9777,9778 < Pol/Y --- > Pokémon/M > Pol/MY 12270c9785 < Politburo --- > Politburo/M 12273c9788 < Pollock --- > Pollock/M 12276c9791 < Pollyanna --- > Pollyanna/M 12282,12283c9797,9798 < Polyphemus < Pomerania --- > Polyphemus/M > Pomerania/M 12285,12286c9800,9801 < Pomona < Pompadour --- > Pomona/M > Pompadour/M 12290,12291c9805,9806 < Ponce < Pontchartrain --- > Ponce/M > Pontchartrain/M 12293c9808 < Pontianak --- > Pontianak/M 12296,12297c9811,9812 < Poona < Pope --- > Poona/M > Pope/M 12299c9814 < Popocatepetl --- > Popocatepetl/M 12302,12303c9817 < Poppy/M < Popsicle --- > Popsicle/M 12307c9821,9822 < Port/R --- > Port/MR > Porter/M 12309d9823 < Portie/M 12312c9826 < Portsmouth --- > Portsmouth/M 12315d9828 < Porty/M 12320c9833 < Potemkin --- > Potemkin/M 12322c9835 < Potsdam --- > Potsdam/M 12324c9837 < Potter --- > Potter/M 12327,12328c9840,9841 < Pound < Poussin --- > Pound/M > Poussin/M 12329a9843 > PowerPC/M 12331c9845 < Powers --- > Powers/M 12335c9849 < Pr/MN --- > Pr/M 12338c9852 < Praetorian --- > Praetorian/M 12341c9855 < Prakrit --- > Prakrit/M 12345c9859 < Praxiteles --- > Praxiteles/M 12350d9863 < Pren/M 12352d9864 < Prent/M 12356,12357c9868,9869 < Presbyterian/MS < Presbyterianism/SM --- > Presbyterian/SM > Presbyterianism/MS 12359,12361c9871,9872 < President/SM < Presley < Preston --- > Presley/M > Preston/M 12365,12366c9876,9877 < Price < Priestley --- > Price/M > Priestley/M 12369d9879 < Principal 12374d9883 < Priscella/M 12377d9885 < Prissie/M 12382c9890 < Procrustean --- > Procrustean/M 12388,12389c9896,9897 < Prokofiev < Promethean --- > Prokofiev/M > Promethean/M 12394c9902 < Protagoras --- > Protagoras/M 12397c9905 < Protestantism/MS --- > Protestantism/SM 12399c9907 < Proudhon --- > Proudhon/M 12402a9911 > Provençal/M 12404,12405c9913,9914 < Providence/MS < Provo --- > Providence/SM > Provo/M 12410d9918 < Prudi/M 12416c9924 < Prut --- > Prut/M 12419c9927 < Psalms --- > Psalms/M 12421c9929 < Pseudomonas/MS --- > Pseudomonas/M 12425c9933 < Ptolemaic --- > Ptolemaic/M 12429,12430c9937,9938 < Puccini < Puck --- > Puccini/M > Puck/M 12432,12434c9940,9942 < Puebla < Pueblo < Puff/M --- > Puebla/M > Pueblo/M > Puerto 12437,12438c9945,9946 < Pulaski < Pulitzer --- > Pulaski/M > Pulitzer/M 12440c9948 < Punch --- > Punch/M 12444,12445c9952,9953 < Purana < Purcell --- > Purana/M > Purcell/M 12450,12451c9958,9959 < Puritan < Puritanism/SM --- > Puritan/M > Puritanism/MS 12454,12455c9962,9963 < Pusey < Pushkin --- > Pusey/M > Pushkin/M 12458,12459c9966 < Putnam < Putnem/M --- > Putnam/M 12465c9972 < Pym --- > Pym/M 12471c9978 < Pyrrhic --- > Pyrrhic/M 12473,12474c9980,9981 < Pythagorean < Pythias --- > Pythagorean/M > Pythias/M 12475a9983,9984 > Pétain/M > Pôrto/M 12476a9986 > QA 12487c9997 < Qingdao --- > Qingdao/M 12494c10004 < Quasimodo --- > Quasimodo/M 12500c10010 < Quebecois --- > Quebecois/M 12502c10012 < Queen/S --- > Queen/MS 12508d10017 < Querida/M 12513d10021 < Quill/M 12518c10026 < Quinn --- > Quinn/M 12523d10030 < Quintilla/M 12525d10031 < Quintina/M 12528c10034 < Quirinal --- > Quirinal/M 12531c10037 < Quixote --- > Quixote/M 12533,12534c10039,10040 < Qumran < Quonset --- > Qumran/M > Quonset/M 12535a10042,10045 > Qur'anic > Quran > Quranic > Québecois/M 12537c10047 < R/MGD --- > R/MD 12553a10064 > RISC 12565c10076 < RTFM/GSD --- > RTFM 12570d10080 < Rabbi/M 12572c10082 < Rabelaisian --- > Rabelaisian/M 12577d10086 < Rachele/M 12579c10088 < Rachmaninoff --- > Rachmaninoff/M 12581d10089 < Rad/M 12583,12584d10090 < Raddie/M < Raddy/M 12586d10091 < Raeann/M 12590,12594d10094 < Rafaela/M < Rafaelia/M < Rafaelita/M < Rafaellle/M < Rafaello/M 12598d10097 < Raffarty/M 12604c10103 < Rahal/M --- > Ragnarök/M 12612,12613c10111 < Rainier < Rakel/M --- > Rainier/M 12616d10113 < Ralina/M 12618d10114 < Ram 12622c10118 < Ramakrishna --- > Ramakrishna/M 12624c10120 < Ramayana --- > Ramayana/M 12630,12633c10126,10128 < Ramonda/M < Ramos < Ramsay < Ramses --- > Ramos/M > Ramsay/M > Ramses/M 12637,12638c10132 < Rancell/M < Rand --- > Rand/M 12642d10135 < Randee/M 12644d10136 < Randene/M 12646,12647d10137 < Randie/M < Randolf/M 12650d10139 < Ranee/M 12653,12656c10142 < Rania/M < Ranice/M < Ranique/M < Rankin --- > Rankin/M 12658,12660d10143 < Ranna/M < Ransell/M < Ransom/M 12662,12663c10145,10146 < Raphael < Raphaela/M --- > Raphael/M > Rappaport/M 12666d10148 < Raquela/M 12669,12670d10150 < Rasia/M < Rasla/M 12672c10152,10153 < Rasputin --- > Rasputin/M > Rasta 12674c10155,10156 < Rastafarian/M --- > Rastafarian/MS > Rastafarianism 12678,12679c10160 < Ravel < Raven/M --- > Ravel/M 12683c10164 < Rawalpindi --- > Rawalpindi/M 12685c10166 < Ray --- > Ray/M 12688d10168 < Raychel/M 12690c10170 < Rayleigh --- > Rayleigh/M 12695,12696d10174 < Raynard/M < Raynell/M 12699d10176 < Rayshell/M 12704,12705c10181 < Read/GM < Reade --- > Reade/G 12709,12711c10185 < Reagen/M < Realtor < Reamonn/M --- > Realtor/M 12714,12715d10187 < Rebbecca/M < Rebe/M 12717c10189 < Rebecca/M --- > Rebecca's 12719,12721c10191 < Rebeka/M < Rebekah < Rebekkah/M --- > Rebekah/M 12726d10195 < Reddit/M 12730c10199 < Redmond --- > Redmond/M 12732d10200 < Reeba/M 12738,12740c10206 < Reeta/M < Reeva/M < Reeves --- > Reeves/M 12743d10208 < Reg/N 12746d10210 < Reggi/MS 12748d10211 < Reggy/M 12750c10213 < Reginae --- > Reginae/M 12752d10214 < Reginauld/M 12756c10218 < Rehnquist --- > Rehnquist/M 12758,12760c10220,10221 < Reid/R < Reidar/M < Reider/M --- > Reichstag's > Reid/M 12764,12765c10225 < Reinald/M < Reinaldo/SM --- > Reinaldo/M 12768c10228 < Reinhardt --- > Reinhardt/M 12770,12773c10230 < Reinold/M < Reinwald/M < Rem/M < Remanence/S --- > Remanence 12775c10232 < Remarque --- > Remarque/M 12777c10234 < Remington --- > Remington/M 12781d10237 < Renado/M 12794,12795d10249 < Renell/M < Renelle/M 12799c10253 < Renoir --- > Renoir/M 12809,12813c10263,10265 < Retha/M < Reube/M < Reuben < Reunion < Reuters --- > Reuben/M > Reunion/M > Reuters/M 12819c10271,10272 < Revere --- > Revelations/M > Revere/M 12821d10273 < Revkah/M 12823c10275 < Rex --- > Rex/M 12825c10277 < Reyes --- > Reyes/M 12830a10283 > Reynolds/M 12833,12835c10286,10287 < Rhea < Rheba/M < Rhee --- > Rhea/M > Rhee/M 12837,12838c10289 < Rhenish < Rheta/M --- > Rhenish/M 12840,12841d10290 < Rhetta/M < Rhiamon/M 12844d10292 < Rhianon/M 12849,12850c10297,10298 < Rhode < Rhodes --- > Rhode/S > Rhodes/M 12853,12855d10300 < Rhodia/M < Rhodie/M < Rhody/M 12860,12863c10305 < Riane/M < Riannon/M < Rianon/M < Ribbentrop --- > Ribbentrop/M 12867,12868c10309 < Ricardo < Ricca/M --- > Ricardo/M 12870c10311 < Rice --- > Rice/M 12872,12874c10313,10315 < Richard/S < Richardo/M < Richardson --- > Richard/MS > Richards/M > Richardson/M 12879,12883c10320,10321 < Richmound/M < Richter < Richthofen < Richy/M < Rici/M --- > Richter/M > Richthofen/M 12891c10329 < Rickover --- > Rickover/M 12894d10331 < Ricoriki/M 12896c10333 < Ride --- > Ride/M 12910,12912c10347,10349 < Riley < Rilke < Rimbaud --- > Riley/M > Rilke/M > Rimbaud/M 12915d10351 < Ring/M 12919d10354 < Riobard/M 12921,12922c10356,10357 < Rip/M < Ripley --- > Rios/M > Ripley/M 12924c10359 < Risorgimento --- > Risorgimento/M 12930,12932c10365,10367 < Rivalee/M < Rivera < Rivers --- > Rivas/M > Rivera/M > Rivers/M 12934d10368 < Rivi/M 12936,12937d10369 < Rivkah/M < Rivy/M 12939c10371 < Rizal --- > Rizal/M 12942,12944d10373 < Roana/M < Roanna/M < Roanne/M 12947c10376 < Rob/MZ --- > Rob/M 12949,12950d10377 < Robbert/M < Robbi/M 12952a10380 > Robbins/M 12954,12957d10381 < Robbyn/M < Robena/M < Robenia/M < Robers/M 12961a10386 > Roberts/M 12963,12964c10388,10389 < Robeson < Robespierre --- > Robeson/M > Robespierre/M 12968,12969d10392 < Robinett/M < Robinetta/M 12972c10395 < Robinson --- > Robinson/M 12975c10398 < Robson --- > Robson/M 12984,12985d10406 < Rochell/M < Rochella/M 12988,12993c10409,10411 < Rochette/M < Rock < Rockefeller < Rockey/M < Rockford < Rockie/M --- > Rock/M > Rockefeller/M > Rockford/M 12996c10414 < Rockwell --- > Rockwell/M 13002d10419 < Roddie/M 13005d10421 < Roderich/M 13008d10423 < Rodge/MZR 13009a10425 > Rodgers/M 13012,13015c10428,10429 < Rodie/M < Rodin < Rodina/M < Rodney --- > Rodin/M > Rodney/M 13022d10435 < Rodrique/M 13028c10441,10442 < Rogerio/M --- > Roger/M > Rogers/M 13031a10446 > Roku/M 13033c10448 < Roland --- > Roland/M 13037d10451 < Roley/M 13040,13041c10454,10455 < Rolland < Rollerblade --- > Rolland/M > Rollerblade/M 13043a10458 > Rollins/M 13045c10460 < Rolodex --- > Rolodex/M 13055c10470 < Romano --- > Romano/M 13057c10472,10473 < Romansh --- > Romans/M > Romansh/M 13062c10478 < Romeo --- > Romeo/M 13065c10481 < Romney --- > Romney/M 13067,13068d10482 < Romona/M < Romonda/M 13074d10487 < Ronalda/M 13076,13077d10488 < Ronica/M < Ronna/M 13079d10489 < Ronnica/M 13084,13085d10493 < Roobbie/M < Roomba/MS 13090,13092d10497 < Rora/M < Rori/M < Rorie/M 13094c10499 < Rorschach --- > Rorschach/M 13098,13100d10502 < Rosabel/M < Rosabella/M < Rosabelle/M 13107d10508 < Rosalinde/M 13110d10510 < Rosalynd/M 13113d10512 < Rosana/M 13116c10515 < Rosario --- > Rosario/M 13121d10519 < Roseanna/M 13125,13127d10522 < Roselia/M < Roselin/M < Roseline/M 13130d10524 < Rosemaria/M 13133d10526 < Rosemonde/M 13136d10528 < Rosene/M 13138,13141c10530,10531 < Rosetta < Rosette/M < Roshelle/M < Rosicrucian --- > Rosetta/M > Rosicrucian/M 13146d10535 < Rosmunda/M 13151,13152c10540 < Rossy/M < Rostand --- > Rostand/M 13156c10544 < Rosy/M --- > Rosy's 13159,13160c10547,10548 < Rothko < Rothschild --- > Rothko/M > Rothschild/M 13163c10551 < Rouault --- > Rouault/M 13167d10554 < Rouvin/M 13169c10556 < Row/MN --- > Rover/M 13171c10558 < Rowe --- > Rowe/M 13176d10562 < Rowney/M 13181d10566 < Roxi/M 13183d10567 < Roxine/M 13186c10570 < Royal --- > Royal/M 13188c10572 < Royce --- > Royce/M 13190,13197d10573 < Rozalie/M < Rozalin/M < Rozamond/M < Rozanna/M < Rozanne/M < Roze/M < Rozele/M < Rozella/M 13199,13200d10574 < Rozina/M < Rriocard/M 13205d10578 < Rube/M 13207c10580 < Rubetta/M --- > Rubens/M 13211d10583 < Rubie/M 13214,13215c10586 < Rubina/M < Rubinstein --- > Rubinstein/M 13219,13221c10590 < Ruddie/M < Ruddy/M < Rudie/M --- > Ruddy's 13223c10592 < Rudolf --- > Rudolf/M 13235d10603 < Rumania/M 13239,13240c10607,10608 < Runnymede < Runyon --- > Runnymede/M > Runyon/M 13242,13243d10609 < Ruperta/M < Ruperto/M 13249,13250c10615,10616 < Ruskin < Russ --- > Ruskin/M > Russ/M 13257d10622 < Rustie/M 13261a10627 > Rutgers/M 13263,13267c10629 < Ruthann/M < Ruthanne/M < Ruthe/M < Rutherford < Ruthi/M --- > Rutherford/M 13269d10630 < Ruthy/M 13272d10632 < Ruttger/M 13280,13281d10639 < Ryann/M < Rycca/M 13283,13285c10641 < Ryder < Ryley/M < Ryon/M --- > Ryder/M 13287,13288c10643 < Ryun/M < S/MNY --- > S/MN 13304c10659 < SEC --- > SEC/M 13311c10666 < SNP/MS --- > SNP/SM 13318a10674 > SQL 13329c10685 < SUSE --- > SUSE/M 13330a10687 > SVN/M 13335,13336c10692,10693 < Saar < Saarinen --- > Saar/M > Saarinen/M 13342c10699 < Sabin --- > Sabin/M 13345d10701 < Sabra 13348c10704 < Sacajawea --- > Sacajawea/M 13355c10711 < Sadat --- > Sadat/M 13357c10713 < Sadducee --- > Sadducee/M 13359d10714 < Sadella/M 13362,13363c10717 < Sadye/M < Safavid --- > Safavid/M 13370,13371c10724 < Sahel < Saidee/M --- > Sahel/M 13374c10727 < Sakai --- > Sakai/M 13377c10730 < Sakharov --- > Sakharov/M 13379,13384c10732,10736 < Saks < Sal/Y < Saladin < Salado < Salaidh/M < Salamis --- > Saks/M > Sal/MY > Saladin/M > Salado/M > Salamis/M 13391,13392c10743,10744 < Salinas < Salinger --- > Salinas/M > Salinger/M 13395c10747 < Salk --- > Salk/M 13397d10748 < Salli/M 13399c10750 < Sallust --- > Sallust/M 13401,13404d10751 < Sallyann/M < Sallyanne/M < Salmon/M < Saloma/M 13406,13407d10752 < Salomi/M < Salomo/M 13409d10753 < Salomone/M 13417d10760 < Salvidor/M 13420c10763 < Sam --- > Sam/M 13423c10766 < Samara --- > Samara/M 13434c10777 < Samson --- > Samson/M 13437,13438c10780 < Samuel < Samuele/M --- > Samuel/M 13440d10781 < San 13441a10783 > San/M 13446,13449c10788,10791 < Sand/Z < Sandburg < Sande/MZR < Sander/M --- > Sand/ZM > Sandburg/M > Sande/M > Sanders/M 13453c10795 < Sandinista --- > Sandinista/M 13459d10800 < Sandye/M 13461c10802 < Sanforized --- > Sanforized/M 13463c10804,10805 < Sanhedrin --- > Sanger/M > Sanhedrin/M 13469c10811 < Santa --- > Santa/M 13471,13472c10813,10814 < Santayana < Santeria --- > Santayana/M > Santeria/M 13474c10816 < Santos --- > Santos/M 13476d10817 < Sapphire/M 13480d10820 < Saraann/M 13483,13484c10823 < Sarah < Sarajane/M --- > Sarah/M 13493,13495d10831 < Sarena/M < Sarene/M < Sarette/M 13498c10834 < Sargent --- > Sargent/M 13500d10835 < Sari/M 13502d10836 < Sarine/M 13506,13507c10840,10841 < Sarto < Sartre --- > Sarto/M > Sartre/M 13510d10843 < Sashenka/M 13515,13516c10848,10849 < Sassanian < Sassoon --- > Sassanian/M > Sassoon/M 13525d10857 < Saudra/M 13527,13528c10859 < Sauncho/M < Saunder/MS --- > Saunders/M 13531,13532c10862,10863 < Saussure < Sauterne/MS --- > Saussure/M > Sauternes 13534c10865 < Savage --- > Savage/M 13538,13539c10869,10870 < Savonarola < Savoy --- > Savonarola/M > Savoy/M 13541d10871 < Saw/M 13543,13544d10872 < Sawyere/M < Sax 13548d10875 < Say/MRZ 13550c10877,10878 < Sayre/MS --- > Sayers/M > Sayre/M 13552a10881 > Scala/M 13555,13557c10884,10886 < Scandinavian/SM < Scaramouch < Scarborough --- > Scandinavian/MS > Scaramouch/M > Scarborough/M 13559,13560c10888 < Scarlatti < Scarlet/M --- > Scarlatti/M 13565c10893 < Schelling --- > Schelling/M 13569c10897 < Schiller --- > Schiller/M 13572c10900 < Schliemann --- > Schliemann/M 13574,13575c10902,10903 < Schmidt < Schnabel --- > Schmidt/M > Schnabel/M 13579c10907 < Schopenhauer --- > Schopenhauer/M 13583c10911,10912 < Schubert --- > Schrödinger/M > Schubert/M 13586c10915 < Schumann --- > Schumann/M 13594c10923 < Schweitzer --- > Schweitzer/M 13597a10927 > Scientologist/SM 13607c10937 < Scotchmen --- > Scotchmen/M 13609c10939,10940 < Scotchwomen --- > Scotchwomen/M > Scotia/M 13612c10943 < Scotsmen --- > Scotsmen/M 13614,13615c10945,10946 < Scotswomen < Scott --- > Scotswomen/M > Scott/M 13619,13621c10950 < Scottsdale < Scotty < Scout --- > Scottsdale/M 13623,13624c10952,10953 < Scranton < Scriabin --- > Scranton/M > Scriabin/M 13627c10956 < Scrooge --- > Scrooge/M 13629c10958 < Scud --- > Scud/M 13632,13634c10961,10963 < Scythia < Scythian < Se/MH --- > Scythia/M > Scythian/M > Se/MHN 13636c10965 < Seaborg --- > Seaborg/M 13640d10968 < Seana/M 13650d10977 < Secunia/M 13653d10979 < See/M 13654a10981 > Seeger/M 13663d10989 < Seka/M 13670,13671c10996 < Selestina/M < Seleucid --- > Seleucid/M 13673,13674d10997 < Selia/M < Selie/M 13678,13680c11001 < Selinda/M < Seline/M < Seljuk --- > Seljuk/M 13687c11008 < Semarang --- > Semarang/M 13689c11010 < Semiramis --- > Semiramis/M 13692c11013 < Semtex --- > Semtex/M 13695,13696c11016 < Senator < Sendai --- > Sendai/M 13700,13702c11020,11022 < Senghor < Senior < Sennacherib --- > Senghor/M > Senior/M > Sennacherib/M 13706,13707c11026,11027 < Sephardi < Sephira/M --- > Sep > Sephardi/M 13711,13712c11031,11032 < Septuagint/SM < Sequoya --- > Septuagint/MS > Sequoya/M 13717d11036 < Serene 13719,13720d11037 < Serge/M < Sergeant/M 13724c11041 < Serpens --- > Serpens/M 13729,13732c11046,11048 < Seton < Seumas/M < Seurat < Seuss --- > Seton/M > Seurat/M > Seuss/M 13734,13735c11050,11051 < Severn < Severus --- > Severn/M > Severus/M 13737,13739c11053,11055 < Sevres < Seward < Sextans --- > Sevres/M > Seward/M > Sextans/M 13742c11058 < Seyfert --- > Seyfert/M 13745,13747c11061 < Shackleton < Shadow/M < Shae/M --- > Shackleton/M 13749,13750d11062 < Shaina/M < Shaine/M 13754,13757c11066,11067 < Shakespearean < Shalna/M < Shalne/M < Shalom/M --- > Shakespearean/M > Shalom's 13760,13765d11069 < Shanan/M < Shanda/M < Shandee/M < Shandeigh/M < Shandie/M < Shandra/M 13770d11073 < Shanie/M 13773,13777c11076 < Shannah/M < Shannan/M < Shannen/M < Shannon < Shanon/M --- > Shannon/M 13779,13780c11078 < Shantee/M < Shantung --- > Shantung/M 13783d11080 < Sharai/M 13785,13787c11082,11083 < Shari < Shari'a < Sharia/M --- > Shari'a/M > Shari/M 13789,13792d11084 < Sharity/M < Sharl/M < Sharla/M < Sharleen/M 13794d11085 < Sharline/M 13796,13797c11087 < Sharon < Sharona/M --- > Sharon/M 13801d11090 < Sharyl/M 13803d11091 < Shaughn/M 13813d11100 < Shay/M 13815,13817d11101 < Shaylah/M < Shaylyn/M < Shaylynn/M 13822c11106 < Sheba --- > Sheba/M 13825,13826d11108 < Sheelagh/M < Sheelah/M 13828d11109 < Sheeree/M 13830,13831d11110 < Sheff/M < Sheffie/M 13833d11111 < Sheffy/M 13837d11114 < Shela/M 13839,13840d11115 < Shelba/M < Shelbi/M 13842d11116 < Shelden/M 13846,13848c11120 < Shelley < Shelli/M < Shellie/M --- > Shelley/M 13853,13854c11125 < Shena/M < Shenandoah --- > Shenandoah/M 13857c11128 < Sheol --- > Sheol/M 13862d11132 < Shepperd/M 13868,13874c11138,11139 < Sheridan < Sherie/M < Sherill/M < Sherilyn/M < Sherline/M < Sherlock < Sherlocke/M --- > Sheridan/M > Sherlock/M 13876,13879c11141,11142 < Sherman < Shermie/M < Shermy/M < Sherpa --- > Sherman/M > Sherpa/M 13884,13886c11147 < Sherwood < Sherwynd/M < Sherye/M --- > Sherwood/M 13888a11150 > Shetlands/M 13891c11153 < Shi'ite --- > Shi'ite/M 13894c11156 < Shijiazhuang --- > Shijiazhuang/M 13896c11158 < Shillong --- > Shillong/M 13905,13907d11166 < Shirlee/M < Shirleen/M < Shirlene/M 13909d11167 < Shirline/M 13913d11170 < Shopzilla/M 13915c11172 < Shorthorn --- > Shorthorn/M 13917d11173 < Shoshanna/M 13919d11174 < Shoshoni/SM 13922,13924c11177,11179 < Shreveport < Shriner < Shropshire --- > Shreveport/M > Shriner/M > Shropshire/M 13926,13929c11181 < Shurlock/M < Shurlocke/M < Shurwood/M < Shylock --- > Shylock/M 13931c11183 < Si --- > Si/M 13935,13936d11186 < Siana/M < Sianna/M 13938,13944c11188 < Sibbie/M < Sibby/M < Sibeal/M < Sibel/M < Sibelius < Sibella/M < Sibelle/M --- > Sibelius/M 13947d11190 < Sibilla/M 13949c11192 < Sibyl --- > Sibyl/M 13956,13958c11199 < Sidnee/M < Sidney < Sidoney/M --- > Sidney/M 13960,13962c11201,11202 < Sidonnie/M < Siegfried < Siemens --- > Siegfried/M > Siemens/M 13965d11204 < Siffre/M 13967,13969d11205 < Sigfrid/M < Sigfried/M < Sigismond/M 13971,13973c11207,11208 < Sigismund < Sigismundo/M < Sigmund --- > Sigismund/M > Sigmund/M 13975,13976c11210 < Sigurd < Sigvard/M --- > Sigurd/M 13981,13983c11215,11217 < Sikkim < Sikkimese < Sikorsky --- > Sikkim/M > Sikkimese/M > Sikorsky/M 13985,13986d11218 < Sile/M < Sileas/M 13990d11221 < Silvain/M 13999c11230 < Sim/SM --- > Sim's 14002c11233 < Simmental --- > Simmental/M 14005c11236 < Simon --- > Simon/M 14008,14009d11238 < Simonette/M < Simonne/M 14011c11240,11241 < Sims --- > Simpsons/M > Sims/M 14013,14015c11243,11245 < Sinatra < Sinclair < Sinclare/M --- > Sinatra/M > Sinbad/M > Sinclair/M 14017d11246 < Sindee/M 14021c11250 < Singer --- > Singer/M 14027d11255 < Sion 14029d11256 < Siouxie/M 14032,14033d11258 < Sisely/M < Sisile/M 14035d11259 < Sissy/M 14037,14038c11261,11262 < Sistine < Sisyphean --- > Sistine/M > Sisyphean/M 14040d11263 < Siusan/M 14045d11267 < Skell/M 14048,14051d11269 < Skip/M < Skipp/MR < Skipper/M < Skippie/M 14054,14056c11272,11273 < Skopje < Sky/M < Skye --- > Skopje/M > Skye/M 14069c11286 < Sloan --- > Sloan/M 14073c11290 < Slovakia --- > Slovakia/M 14079c11296 < Sly/M --- > Sly's 14082c11299 < Smetana --- > Smetana/M 14084,14085c11301,11302 < Smith < Smithson --- > Smith/M > Smithson/M 14089,14091c11306,11308 < Smolensk < Smollett < Smuts --- > Smolensk/M > Smollett/M > Smuts/M 14101,14102c11318,11319 < Snow < Snowbelt --- > Snow/M > Snowbelt/M 14109,14110c11326,11327 < Socratic < Soddy --- > Socratic/M > Soddy/M 14114c11331 < Soho --- > Soho/M 14118d11334 < Sollie/M 14120,14122c11336,11338 < Solomon < Solon < Solzhenitsyn --- > Solomon/M > Solon/M > Solzhenitsyn/M 14130c11346 < Sondheim --- > Sondheim/M 14137,14139d11352 < Sonni/M < Sonnie/M < Sonnnie/M 14145d11357 < Sophey/M 14147c11359 < Sophia --- > Sophia/M 14149,14150c11361,11362 < Sophoclean < Sophocles --- > Sophoclean/M > Sophocles/M 14156d11367 < Sosanna/M 14158a11370 > Sourceforge/M 14161c11373 < Southampton --- > Southampton/M 14164,14165c11376,11377 < Southerner/SM < Southey --- > Southerner/M > Southey/M 14168c11380 < Soviet --- > Soviet/M 14171c11383 < Soyuz --- > Soyuz/M 14174c11386 < Spackle --- > Spackle/M 14183c11395 < Sparks --- > Sparks/M 14185c11397 < Spartacus --- > Spartacus/M 14187,14188c11399 < Speaker < Spears --- > Spears/M 14190,14191c11401,11403 < Spence/R < Spencerian --- > Spence/RM > Spencer/M > Spencerian/M 14193,14194c11405 < Spenglerian < Spense/RM --- > Spenglerian/M 14196c11407 < Spenserian --- > Spenserian/M 14202d11412 < Spike/M 14204c11414 < Spinoza --- > Spinoza/M 14210,14211c11420,11421 < Spock < Spokane --- > Spock/M > Spokane/M 14216c11426 < Sputnik --- > Sputnik/M 14218c11428 < Squanto --- > Squanto/M 14221c11431 < Srinagar --- > Srinagar/M 14226d11435 < Stacee/M 14229d11437 < Stacia/M 14233,14237c11441,11442 < Stafani/M < Staffard/M < Stafford < Staford/M < StairMaster --- > Stafford/M > StairMaster/M 14240c11445 < Stalinist --- > Stalinist/M 14242c11447 < Stamford --- > Stamford/M 14245c11450 < Standish --- > Standish/M 14250c11455 < Stanislavsky --- > Stanislavsky/M 14252,14253c11457 < Stanleigh/M < Stanley --- > Stanley/M 14255c11459 < Stanton --- > Stanton/M 14258,14260c11462,11463 < Star/M < Starbucks < Stark --- > Starbucks/M > Stark/M 14262,14264d11464 < Starla/M < Starlene/M < Starlin/M 14271c11471 < Stavro/MS --- > Stavros 14273c11473 < Steadicam --- > Steadicam/M 14275,14277c11475 < Stearne/M < Steele < Stefa/M --- > Steele/M 14282d11479 < Steffane/M 14285,14287c11482,11483 < Steffie/M < Stein/R < Steinbeck --- > Stein/MR > Steinbeck/M 14288a11485 > Steiner/M 14291,14292c11488,11489 < Stella < Stendhal --- > Stella/M > Stendhal/M 14294d11490 < Stepha/M 14296d11491 < Stephana/M 14299d11493 < Stephannie/M 14301,14306c11495,11497 < Stephen/S < Stephenie/M < Stephenson < Stephi/M < Stephie/M < Stephine/M --- > Stephen/MS > Stephens/M > Stephenson/M 14308c11499 < Stern --- > Stern/M 14310,14311c11501 < Sterno < Stesha/M --- > Sterno/M 14314d11503 < Stevana/M 14317,14318c11506,11507 < Stevena/M < Stevenson --- > Stevens/M > Stevenson/M 14320,14321d11508 < Stevy/M < Steward/M 14325d11511 < Stillmann/M 14329,14330c11515,11516 < Stinky/M < Stirling --- > Stinky's > Stirling/M 14333c11519 < Stockton --- > Stockton/M 14340,14341c11526,11527 < Stone < Stonehenge --- > Stone/M > Stonehenge/M 14343,14348c11529,11531 < Storm/M < Stormi/M < Stormie/M < Stormy/M < Stout < Stowe --- > Stormy's > Stout/M > Stowe/M 14351,14353c11534,11536 < Stradivarius < Strasbourg < Strauss --- > Stradivarius/M > Strasbourg/M > Strauss/M 14357,14358c11540,11541 < Strindberg < Stromboli --- > Strindberg/M > Stromboli/M 14365,14366c11548,11549 < Stuyvesant < Stygian --- > Stuyvesant/M > Stygian/M 14372c11555 < Sucre --- > Sucre/M 14379,14385c11562,11567 < Sue < Suellen/M < Suetonius < Suez < Suffolk < Sufi < Sufism --- > Sue/M > Suetonius/M > Suez/M > Suffolk/M > Sufi/M > Sufism/M 14388c11570 < Sukarno --- > Sukarno/M 14399d11580 < Sully 14404a11586 > Summers/M 14406c11588 < Sumter --- > Sumter/M 14412c11594 < Sundas --- > Sundas/M 14415c11597 < Sung --- > Sung/M 14419,14421c11601,11602 < Sunny/M < Sunnyvale < Sunshine/M --- > Sunny's > Sunnyvale/M 14425c11606 < Superior --- > Superior/M 14429,14431c11610,11611 < Surabaya < Surat < Surinam/M --- > Surabaya/M > Surat/M 14437d11616 < Susanetta/M 14439c11618 < Susanna --- > Susanna/M 14442d11620 < Susette/M 14446c11624 < Sussex --- > Sussex/M 14448d11625 < Sutherlan/M 14453d11629 < Suzann/M 14465c11641 < Svengali --- > Svengali/M 14469c11645 < Swanee --- > Swanee/M 14480,14481c11656 < Sweet < Swen/M --- > Sweet/M 14490d11664 < Sybila/M 14493d11666 < Sybyl/M 14495,14496d11667 < Sydel/M < Sydelle/M 14499,14500c11670 < Sylas/M < Sylvan/M --- > Sylvan's 14504d11673 < Syman/M 14508c11677 < Synge --- > Synge/M 14511c11680 < Syriac --- > Syriac/M 14513d11681 < Szechuan/M 14516c11684,11685 < T'ang --- > Sèvres/M > T'ang/M 14518a11688 > TARP 14546d11715 < Tab/MR 14550,14554d11718 < Tabbatha/M < Tabbi/M < Tabbie/M < Tabbitha/M < Tabby/M 14557d11720 < Tabina/M 14561c11724 < Tacitus --- > Tacitus/M 14564d11726 < Tadd/M 14566,14570d11727 < Taddeusz/M < Tadeas/M < Tadeo/M < Tades < Tadio/M 14572d11728 < Tadzhikistan/M 14574,14575c11730 < Taejon < Taffy/M --- > Taejon/M 14578c11733 < Tagore --- > Tagore/M 14582c11737 < Tahoe --- > Tahoe/M 14584d11738 < Tailor/M 14588c11742 < Taiping --- > Taiping/M 14590d11743 < Taite/M 14593c11746 < Taiyuan --- > Taiyuan/M 14597c11750 < Talbot --- > Talbot/M 14600c11753 < Taliesin --- > Taliesin/M 14605,14606d11757 < Tallia/M < Tallie/M 14608d11758 < Tallou/M 14610d11759 < Tally/M 14615,14616d11763 < Talyah/M < Tam/M 14619d11765 < Tamarah/M 14621d11766 < Tamarra/M 14628d11772 < Tamiko/M 14630d11773 < Tamma/M 14632d11774 < Tammara/M 14639d11780 < Tamqrah/M 14641,14642c11782 < Tamworth < Tan --- > Tamworth/M 14644,14646c11784 < Tancred < Tandi/M < Tandie/M --- > Tancred/M 14648c11786 < Taney --- > Taney/M 14651,14652c11789 < Tangshan < Tanhya/M --- > Tangshan/M 14656d11792 < Tanitansy/M 14659d11794 < Tanney/M 14661,14663c11796 < Tannie/M < Tanny/M < Tansy/M --- > Tannhäuser/M 14672d11804 < Tarah/M 14678c11810 < Tarim --- > Tarim/M 14680,14683c11812 < Tarkington < Tarra/M < Tarrah/M < Tarrance/M --- > Tarkington/M 14685,14686c11814,11815 < Tartary < Tartuffe --- > Tartary/M > Tartuffe/M 14691,14692c11820 < Tasia/M < Tasman --- > Tasman/M 14694,14695c11822,11823 < Tasmanian < Tass --- > Tasmanian/M > Tass/M 14697c11825 < Tate --- > Tate/M 14699,14700c11827 < Tatiania/M < Tatum --- > Tatum/M 14702,14704c11829 < Tawney < Tawnya/M < Tawsha/M --- > Tawney/M 14709c11834 < Tchaikovsky --- > Tchaikovsky/M 14713d11837 < Teador/M 14716c11840 < Technicolor --- > Technicolor/M 14720,14722d11843 < Tedd/M < Tedda/M < Teddi/M 14726,14729d11846 < Tedie/M < Tedman/M < Tedmund/M < Tedra/M 14733d11849 < Teheran/M 14736,14738c11852,11854 < TelePrompter < Telemachus < Telemann --- > TelePrompter/M > Telemachus/M > Telemann/M 14740a11857 > Teller/M 14742d11858 < Temp/M 14745d11860 < Temple/M 14747c11862 < Tenn --- > Tenn/M 14750c11865 < Tennyson --- > Tennyson/M 14752d11866 < Teodoor/M 14755d11868 < Teodorico/M 14759,14760c11872 < Terence < Terencio/M --- > Terence/M 14763,14764c11875 < Tereshkova < Teresina --- > Tereshkova/M 14766d11876 < Teressa/M 14768d11877 < Teriann/M 14775d11883 < Terrel/M 14780d11887 < Terrijo/M 14782d11888 < Territorial 14784,14786c11890 < Terry < Terrye/M < Tersina/M --- > Terry/M 14790,14791c11894,11895 < Tesla < Tess --- > Tesla/M > Tess/M 14793d11896 < Tessi/M 14795d11897 < Tessy/M 14798c11900 < Tetons --- > Tetons/M 14800c11902 < Teutonic --- > Teutonic/M 14802c11904 < Tex --- > Tex/M 14808c11910 < Thackeray --- > Thackeray/M 14810,14812c11912 < Thaddeus < Thaddus/M < Thadeus/M --- > Thaddeus/M 14815,14817c11915 < Thain/M < Thaine/M < Thales --- > Thales/M 14820d11917 < Thane/M 14822,14823c11919,11920 < Thanksgiving/SM < Thant --- > Thanksgiving/MS > Thant/M 14826c11923 < Thatch/MR --- > Thatcher/M 14829,14830d11925 < Thayne/M < The 14832,14833d11926 < Theadora/M < Thebault/M 14836,14837d11928 < Thedric/M < Thedrick/M 14841c11932 < Themistocles --- > Themistocles/M 14844c11935 < Theocritus --- > Theocritus/M 14846c11937 < Theodora --- > Theodora/M 14851,14853c11942,11944 < Theosophy < Theravada < Theresa --- > Theosophy/M > Theravada/M > Theresa/M 14855,14858d11945 < Theresina/M < Theresita/M < Theressa/M < Therine/M 14863c11950 < Thespian --- > Thespian/M 14865c11952 < Thessalonian/S --- > Thessalonian/SM 14866a11954 > Thessaloníki/M 14869d11956 < Thibaud/M 14872c11959 < Thimbu --- > Thimbu/M 14877d11963 < Thomasa/M 14880d11965 < Thomasine/M 14882,14884c11967,11969 < Thomistic < Thompson < Thomson --- > Thomistic/M > Thompson/M > Thomson/M 14889d11973 < Thorn 14891d11974 < Thornie/M 14893,14895c11976,11978 < Thorny/M < Thoroughbred < Thorpe --- > Thorny's > Thoroughbred/M > Thorpe/M 14907c11990 < Thurber --- > Thurber/M 14918c12001 < Tiberius --- > Tiberius/M 14921d12003 < Tibold/M 14923c12005 < Ticonderoga --- > Ticonderoga/M 14925d12006 < Tiebold/M 14927d12007 < Tiena/M 14931,14938c12011 < Tiertza/M < Tiff/M < Tiffani/M < Tiffanie/M < Tiffany < Tiffi/M < Tiffie/M < Tiffy/M --- > Tiffany/M 14943d12015 < Tildie/M 14945,14946c12017 < Tiler/M < Tillich --- > Tillich/M 14950c12021 < Tilsit --- > Tilsit/M 14955,14956d12025 < Timmi/M < Timmie/M 14958d12026 < Timofei/M 14960,14963c12028 < Timor < Timoteo/M < Timothea/M < Timothee/M --- > Timor/M 14965c12030 < Timothy --- > Timothy/M 14970d12034 < Tine/M 14973c12037 < Tinkertoy --- > Tinkertoy/M 14975,14978c12039 < Tintoretto < Tiphani/M < Tiphanie/M < Tiphany/M --- > Tintoretto/M 14980,14981c12041 < Tipperary < Tirana/M --- > Tipperary/M 14986d12045 < Tirrell/M 14991,14992c12050,12051 < Titania < Titanic --- > Titania/M > Titanic/M 14994,14996c12053,12055 < Titicaca < Tito/SM < Titus --- > Titicaca/M > Tito/M > Titus/M 15005d12063 < Tobiah/M 15009,15013c12067,12070 < Tobit < Toby < Tobye/M < Tocantins < Tocqueville --- > Tobit/M > Toby/M > Tocantins/M > Tocqueville/M 15015,15017c12072 < Todd < Toddie/M < Toddy/M --- > Todd/M 15020,15022c12075 < Toiboid/M < Toinette/M < Tojo --- > Tojo/M 15024c12077 < Tokugawa --- > Tokugawa/M 15028c12081 < Tolkien --- > Tolkien/M 15030c12083 < Toltec --- > Toltec/M 15034,15035c12087 < Tomasina/M < Tomasine/M --- > Tomas/M 15038d12089 < Tome/M 15040d12090 < Tomkin/M 15042d12091 < Tommi/M 15044c12093 < Tommy --- > Tommy/M 15046c12095 < Tomsk --- > Tomsk/M 15051,15052d12099 < Tonie/M < Tonnie/M 15054c12101 < Tony --- > Tony/M 15056d12102 < Tonye/M 15062c12108 < Tore/M --- > Tore's 15065d12110 < Torie/M 15068c12113 < Torquemada --- > Torquemada/M 15070c12115 < Torrance --- > Torrance/M 15073,15074c12118,12119 < Torrens < Torres --- > Torrens/M > Torres/M 15078d12122 < Torrin/M 15080,15081c12124,12125 < Tortola < Tortuga --- > Tortola/M > Tortuga/M 15085c12129 < Toscanini --- > Toscanini/M 15088c12132 < Toulouse --- > Toulouse/M 15091,15094c12135 < Town/M < Townes < Towney/M < Townie/M --- > Townes/M 15096d12136 < Towny/M 15100,15101d12139 < Trace/M < Tracee/M 15108c12146 < Trajan --- > Trajan/M 15110c12148 < Transcaucasia --- > Transcaucasia/M 15112c12150,12151 < Transylvania --- > Transylvania/M > Transylvanian/M 15117d12155 < Travus/M 15119,15120c12157 < Treblinka < Trefor/M --- > Treblinka/M 15125d12161 < Trenna/M 15129,15135c12165,12166 < Tresa/M < Trescha/M < Tressa/M < Trev/MR < Trevar/M < Trevelyan < Trever/M --- > Trev/M > Trevelyan/M 15143c12174 < Trieste --- > Trieste/M 15149d12179 < Trip/M 15151c12181 < Tripitaka --- > Tripitaka/M 15159d12188 < Tristam/M 15163d12191 < Trixi/M 15165d12192 < Trixy/M 15166a12194 > Troilus/M 15168c12196 < Trollope --- > Trollope/M 15171c12199 < Trotsky --- > Trotsky/M 15174d12201 < Trstram/M 15176d12202 < Truda/M 15178,15179c12204 < Trudeau < Trudey/M --- > Trudeau/M 15181d12205 < Trudie/M 15185,15187c12209 < Trujillo < Trula/M < Trumaine/M --- > Trujillo/M 15189d12210 < Trumann/M 15192c12213 < Truth --- > Truth/M 15194d12214 < Tsingtao 15199c12219 < Tu --- > Tu/M 15202,15203c12222 < Tubman < Tuck/R --- > Tubman/M 15205,15206d12223 < Tuckie/M < Tucky/M 15215d12231 < Tulley/M 15227c12243 < Tupperware --- > Tupperware/M 15229c12245 < Turgenev --- > Turgenev/M 15238,15239c12254,12255 < Turner < Turpin --- > Turner/M > Turpin/M 15248,15249c12264,12265 < Tutankhamen < Tutsi --- > Tutankhamen/M > Tutsi/M 15253,15254c12269,12270 < Twain < Tweed --- > Twain/M > Tweed/M 15258c12274,12275 < Twinkies --- > Twinkies/M > Twitter/M 15264,15266c12281 < Tybi/M < Tybie/M < Tycho --- > Tycho/M 15270,15271d12284 < Tymon/M < Tymothy/M 15273,15274c12286,12287 < Tyndale < Tyndall --- > Tyndale/M > Tyndall/M 15276c12289 < Tyre --- > Tyre/M 15278d12290 < Tyrol/M 15280c12292 < Tyrone --- > Tyrone/M 15290c12302 < UI/MS --- > UI/SM 15298,15299c12310,12311 < UPI < UPS --- > UPI/M > UPS/M 15301d12312 < URLs 15304a12316 > USB 15306c12318 < USDA --- > USDA/M 15315a12328 > UTC 15317c12330 < Ubangi --- > Ubangi/M 15320c12333 < Ucayali --- > Ucayali/M 15322,15323c12335 < Udale/M < Udall --- > Udall/M 15334,15335d12345 < Ulaanbaatar/M < Ulberto/M 15342,15344d12351 < Ulrick/M < Ulrika/M < Ulrikaumeko/M 15348c12355 < Ulyanovsk --- > Ulyanovsk/M 15352d12358 < Umeko/M 15355c12361 < Ungava --- > Ungava/M 15366,15367c12372,12373 < Upanishads < Updike --- > Upanishads/M > Updike/M 15370,15371c12376,12378 < Ur < Ural/S --- > Ur/M > Ural/SM > Urals/M 15377d12383 < Urbanus/M 15379c12385 < Urey --- > Urey/M 15381,15384c12387,12390 < Uriah < Uriel < Uris < Urquhart --- > Uriah/M > Uriel/M > Uris/M > Urquhart/M 15386,15391c12392,12393 < Ursala/M < Ursola/M < Urson/M < Ursula < Ursulina/M < Ursuline --- > Ursula/M > Ursuline/M 15394c12396 < Urumqi --- > Urumqi/M 15396c12398 < Ustinov --- > Ustinov/M 15400d12401 < Utahn 15433c12434 < Va --- > Va/M 15439,15441c12440 < Val/MY < Valaree/M < Valaria/M --- > Val/M 15445,15446d12443 < Vale/M < Valeda/M 15448,15449d12444 < Valene/M < Valenka/M 15452d12446 < Valentijn/M 15456c12450 < Valentino --- > Valentino/M 15462,15463c12456 < Valery < Valerye/M --- > Valery/M 15465,15466d12457 < Valida/M < Valina/M 15473,15476c12464 < Vallie/M < Vally/M < Valma/M < Valois --- > Valois/M 15478d12465 < Valry/M 15480,15481c12467,12469 < Van < Vance --- > Valéry/M > Van/M > Vance/M 15485,15486c12473,12474 < Vanderbilt < Vandyke --- > Vanderbilt/M > Vandyke/M 15492,15493d12479 < Vannie/M < Vanny/M 15497,15499c12483,12485 < Varanasi < Varese < Vargas --- > Varanasi/M > Varese/M > Vargas/M 15501c12487 < Vasili/MS --- > Vasili/M 15508,15509c12494,12495 < Vauban < Vaughan --- > Vauban/M > Vaughan/M 15514c12500 < Vedanta --- > Vedanta/M 15516a12503 > Vegas/M 15518c12505 < Vela --- > Vela/M 15520c12507 < Velazquez --- > Velazquez/M 15525c12512,12513 < Velvet/M --- > Velásquez/M > Velázquez/M 15530d12517 < Venita/M 15535c12522 < Venusian --- > Venusian/M 15538,15540c12525,12526 < Veradis < Verde < Verdi --- > Verde/M > Verdi/M 15544,15550d12529 < Verene/M < Verge/M < Vergil/M < Veriee/M < Verile/M < Verina/M < Verine/M 15552d12530 < Verla/M 15554c12532 < Vermeer --- > Vermeer/M 15557c12535 < Vern/MN --- > Vern/M 15559,15560c12537 < Verne < Vernen/M --- > Verne/M 15562d12538 < Vernice/M 15566,15567c12542,12543 < Veronese < Veronica --- > Veronese/M > Veronica/M 15569d12544 < Veronike/M 15573,15574c12548 < Vespasian < Vespers --- > Vespasian/M 15578d12551 < Vevay/M 15581,15582c12554,12555 < Viagra < Vic --- > Viagra/M > Vic/M 15584c12557 < Vichy --- > Vichy/M 15589c12562 < Vicky --- > Vicky/M 15591d12563 < Victoir/M 15599,15600d12570 < Vidovic/M < Vidovik/M 15602c12572 < Viennese --- > Viennese/M 15604,15605c12574,12575 < Vietcong < Vietminh --- > Vietcong/M > Vietminh/M 15610d12579 < Viki/M 15613d12581 < Vikky/M 15615,15616c12583 < Vilhelmina/M < Villa --- > Villa/M 15618c12585 < Villon --- > Villon/M 15625,15627c12592 < Vincent/MS < Vincenty/M < Vincenz/M --- > Vincent/M 15629,15630d12593 < Vinita/M < Vinni/M 15636d12598 < Viole/M 15640d12601 < Virge/M 15644d12604 < Virgina/M 15650,15651c12610,12611 < Visakhapatnam < Visayans --- > Visakhapatnam/M > Visayans/M 15656d12615 < Vita/M 15658d12616 < Vitia/M 15666,15667c12624 < Viva/M < Vivaldi --- > Vivaldi/M 15670,15671c12627 < Vivia/M < Vivian --- > Vivian/M 15673,15674d12628 < Vivianna/M < Vivianne/M 15677d12630 < Viviene/M 15679,15681d12631 < Viviyan/M < Vivyan/M < Vivyanne/M 15683,15684c12633 < Vladamir/M < Vladimir --- > Vladimir/M 15686c12635 < Vlaminck --- > Vlaminck/M 15697c12646 < Volta --- > Volta/M 15703,15706c12652 < Vonni/M < Vonnie/M < Vonny/M < Voronezh --- > Voronezh/M 15714d12659 < Vyky/M 15722a12668 > WMD 15725a12672 > WTO 15735,15736c12682,12683 < Waco < Wade --- > Waco/M > Wade/M 15739,15742c12686,12688 < Wagnerian < Wahhabi < Waikiki < Wain/M --- > Wagnerian/M > Wahhabi/M > Waikiki/M 15744d12689 < Wait/MR 15746d12690 < Waiter/M 15749c12693 < Waksman --- > Waksman/M 15753,15754c12697,12698 < Waldensian < Waldheim --- > Waldensian/M > Waldheim/M 15756d12699 < Waldon/M 15759c12702 < Walesa --- > Walesa/M 15762c12705 < Walkman --- > Walkman/M 15764,15765c12707 < Wallace < Wallache/M --- > Wallace/M 15767c12709,12710 < Wallenstein --- > Wallenstein/M > Waller/M 15769,15771c12712,12714 < Wallis < Walliw/M < Walloon --- > Wallis/M > Walloon/M > Walls/M 15772a12716 > Walmart/M 15774c12718 < Walpurgisnacht --- > Walpurgisnacht/M 15776a12721,12722 > Walter/M > Walters/M 15779d12724 < Waly/M 15782,15784d12726 < Wandie/M < Wandis/M < Waneta/M 15786d12727 < Wanids/M 15789c12730 < Ward/N --- > Ward/M 15792c12733 < Warhol --- > Warhol/M 15795c12736 < Warren --- > Warren/M 15797c12738 < Warwick --- > Warwick/M 15800c12741 < Wash --- > Wash/M 15802,15803c12743,12744 < Washingtonian/SM < Wassermann --- > Washingtonian/MS > Wassermann/M 15805,15807c12746,12748 < Waterbury < Waterford < Watergate --- > Waterbury/M > Waterford/M > Watergate/M 15810,15815c12751,12757 < Watkins < Watson < Watt/S < Watteau < Watusi < Waugh --- > Watkins/M > Watson/M > Watt/SM > Watteau/M > Watts/M > Watusi/M > Waugh/M 15819,15820d12760 < Way/M < Waylan/M 15822,15823d12761 < Waylen/M < Waylin/M 15825,15826c12763,12764 < Wayne < Weave/M --- > Wayne/M > Weave/RM 15828c12766 < Web/R --- > Web/MR 15830c12768,12769 < Webb --- > Webb/M > Weber/M 15835c12774 < Wedgwood --- > Wedgwood/M 15838c12777 < Wehrmacht --- > Wehrmacht/M 15840d12778 < Weidar/M 15847,15848c12785 < Weizmann < Welbie/M --- > Weizmann/M 15850d12786 < Welch 15854c12790 < Welles --- > Welles/M 15856c12792 < Wells --- > Wells/M 15859c12795 < Welshmen --- > Welshmen/M 15861,15862d12796 < Wenda/M < Wendall/M 15864d12797 < Wendeline/M 15867d12799 < Wendie/M 15869,15871d12800 < Wendye/M < Wenona/M < Wenonah/M 15878c12807 < Wessex --- > Wessex/M 15882d12810 < Westbrooke/M 15884,15885c12812 < Westinghouse < Westleigh/M --- > Westinghouse/M 15887c12814 < Westminster --- > Westminster/M 15889c12816 < Westphalia --- > Westphalia/M 15891d12817 < Weylin/M 15893c12819 < Wharton --- > Wharton/M 15901,15903c12827,12828 < Whistler < Whit < Whitaker --- > Whistler/M > Whitaker/M 15907,15908c12832,12833 < Whitehall < Whitehead --- > Whitehall/M > Whitehead/M 15913c12838 < Whitman --- > Whitman/M 15915c12840 < Whitsunday/SM --- > Whitsunday/MS 15917c12842 < Whittier --- > Whittier/M 15919,15920c12844 < Wiatt/M < Wicca --- > Wicca/M 15925c12849 < Wiggins --- > Wiggins/M 15929a12854 > Wikileaks 15936c12861 < Wilberforce --- > Wilberforce/M 15940d12864 < Wilburt/M 15943c12867 < Wilde/R --- > Wilde/MR 15945,15948c12869,12870 < Wildon/M < Wileen/M < Wilek/M < Wiles --- > Wilder/M > Wiles/M 15957d12878 < Wilie/M 15959,15960c12880,12881 < Wilkes < Wilkins --- > Wilkes/M > Wilkins/M 15964d12884 < Willabella/M 15966,15968c12886 < Willamina/M < Willard < Willdon/M --- > Willard/M 15970,15972c12888 < Willemstad < Willetta/M < Willette/M --- > Willemstad/M 15975,15976c12891,12893 < William/S < Williamson --- > William/SM > Williams/M > Williamson/M 15978,15979c12895 < Willis < Willow/M --- > Willis/M 15981d12896 < Willyt/M 15983d12897 < Wilmar/M 15987,15989d12900 < Wilona/M < Wilone/M < Wilow/M 15991,15992c12902 < Wilsonian < Wilt/M --- > Wilsonian/M 15997d12906 < Win/M 15999,16000c12908,12909 < Winchester/S < Windbreaker --- > Winchester/MS > Windbreaker/M 16003,16004c12912,12913 < Windhoek < Windows --- > Windhoek/M > Windows/M 16007c12916 < Windy/M --- > Windy's 16012,16013d12920 < Wini/M < Winifield/M 16018d12924 < Winnah/M 16021,16022c12927 < Winni/M < Winnie --- > Winnie/M 16027d12931 < Winonah/M 16030c12934 < Winters --- > Winters/M 16035c12939 < Wisconsinite/SM --- > Wisconsinite/MS 16037d12940 < Wit/M 16040,16042c12943,12944 < Wittie/M < Witty/M < Witwatersrand --- > Witty's > Witwatersrand/M 16046,16048c12948,12950 < Wolf < Wolfe < Wolff --- > Wolf/M > Wolfe/M > Wolff/M 16050,16052c12952 < Wolfie/M < Wolfy/M < Wollongong --- > Wollongong/M 16054c12954 < Wolsey --- > Wolsey/M 16056c12956 < Wonder --- > Wonder/M 16059c12959 < Wood/S --- > Wood/SM 16063d12962 < Woodman 16064a12964 > Woods/M 16067,16068c12967 < Woody/M < Woolf --- > Woolf/M 16071c12970 < Woolworth --- > Woolworth/M 16075c12974 < Worcestershire --- > Worcestershire/M 16081,16082c12980 < Worms < Worth --- > Worms/M 16084d12981 < Worthy/M 16090,16092c12987,12988 < Wren < Wrennie/M < Wright --- > Wren/M > Wright/M 16096c12992 < Wuhan --- > Wuhan/M 16098,16099c12994 < Wyatan/M < Wyatt --- > Wyatt/M 16102a12998 > Wyeth/M 16104d12999 < Wylma/M 16109,16110d13003 < Wynnie/M < Wynny/M 16113c13006 < Wyomingite/MS --- > Wyomingite/SM 16126c13019 < Xanadu --- > Xanadu/M 16128,16130c13021,13022 < Xanthippe < Xavier < Xaviera/M --- > Xanthippe/M > Xavier/M 16136,16137c13028 < Xenophon < Xenos --- > Xenophon/M 16139,16140c13030 < Xerxes < Xever/M --- > Xerxes/M 16142c13032 < Xi'an --- > Xi'an/M 16145c13035 < Ximenes --- > Ximenes/M 16152,16154d13041 < Xylia/M < Xylina/M < Xymenes/M 16156c13043 < YMCA --- > YMCA/M 16160c13047 < YWCA --- > YWCA/M 16165d13051 < Yahveh/M 16167c13053 < Yakima --- > Yakima/M 16169c13055 < Yakutsk --- > Yakutsk/M 16171d13056 < Yalonda/M 16177,16179c13062 < Yamoussoukro < Yanaton/M < Yance/M --- > Yamoussoukro/M 16182c13065 < Yang --- > Yang/M 16189,16190c13072 < Yaqui < Yard/M --- > Yaqui/M 16193,16194c13075 < Yaroslavl < Yasmeen/M --- > Yaroslavl/M 16197c13078 < Yates --- > Yates/M 16202,16203c13083 < Yehudit/M < Yekaterinburg --- > Yekaterinburg/M 16205c13085 < Yellowknife --- > Yellowknife/M 16207c13087 < Yeltsin --- > Yeltsin/M 16212c13092 < Yerevan --- > Yerevan/M 16216,16218d13095 < Yettie/M < Yetty/M < Yevette/M 16220c13097 < Yggdrasil --- > Yggdrasil/M 16223d13099 < Ynes/M 16228c13104 < Yokohama --- > Yokohama/M 16231,16232d13106 < Yolane/M < Yolanthe/M 16234,16236c13108 < Yonkers < Yooper/MS < Yorgo/MS --- > Yonkers/M 16240c13112 < Yorkie --- > Yorkie/M 16249,16251c13121,13122 < Young < Youngstown < Yovonnda/M --- > Young/M > Youngstown/M 16253c13124 < Ypsilanti --- > Ypsilanti/M 16257c13128 < Yugo --- > Yugo/M 16265d13135 < Yulma/M 16269d13138 < Yurik/M 16275c13144 < Z/SDMNXT --- > Z/SMNXT 16277d13145 < Zabrina/M 16280d13147 < Zacharia/SM 16282c13149 < Zacharie/M --- > Zacharias 16284d13150 < Zacherie/M 16287d13152 < Zackariah/M 16296c13161 < Zamboni --- > Zamboni/M 16298,16299c13163 < Zamora < Zandra/M --- > Zamora/M 16301d13164 < Zaneta/M 16304,16306c13167,13169 < Zapata < Zaporozhye < Zapotec --- > Zapata/M > Zaporozhye/M > Zapotec/M 16311d13173 < Zared/M 16313d13174 < Zarla/M 16317,16319c13178 < Zebadiah/M < Zebedee < Zebulen/M --- > Zebedee/M 16321,16322c13180 < Zechariah < Zed/M --- > Zechariah/M 16328c13186 < Zelig --- > Zelig/M 16335,16338c13193,13195 < Zephaniah < Zephyrus < Zeppelin < Zerk/M --- > Zephaniah/M > Zephyrus/M > Zeppelin/M 16344c13201 < Zhengzhou --- > Zhengzhou/M 16347c13204 < Zhukov --- > Zhukov/M 16350c13207 < Ziegfeld --- > Ziegfeld/M 16354d13210 < Zilvia/M 16362c13218 < Ziploc --- > Ziploc/M 16364d13219 < Zitella/M 16368,16371c13223,13224 < Zollie/M < Zollverein < Zolly/M < Zoloft --- > Zollverein/M > Zoloft/M 16373,16375d13225 < Zonda/M < Zondra/M < Zonnya/M 16377,16381c13227 < Zorah/M < Zorana/M < Zorina/M < Zorine/M < Zorn --- > Zorn/M 16388,16389c13234 < Zsazsa/M < Zsigmondy --- > Zsigmondy/M 16393d13237 < Zulema/M 16397c13241 < Zuni --- > Zuni/M 16399d13242 < Zuzana/M 16401c13244 < Zworykin --- > Zworykin/M 16404a13248 > Zürich/M 16430c13274 < abbreviate/XDSGN --- > abbreviate/DSGNX 16431a13276 > abbé/SM 16436a13282 > abductee/MS 16441c13287 < aberration/SM --- > aberration/MS 16461c13307 < abjuration/MS --- > abjuration/SM 16482c13328 < abolitionist/MS --- > abolitionist/SM 16485c13331 < abominate/XDSGN --- > abominate/DSGNX 16492c13338 < abortionist/SM --- > abortionist/MS 16501c13347 < abrasive/MYSP --- > abrasive/MYPS 16504c13350 < abridge/DSG --- > abridge/DSLG 16519c13365 < abseil/MDRSG --- > abseil/MDSG 16524c13370 < absentminded/PY --- > absentminded/YP 16526d13371 < absinth/M 16528c13373 < absolute/PMYTNRS --- > absolute/PMYTNS 16537d13381 < absorbed/U 16540d13383 < absorber/S 16542c13385 < absorption/SM --- > absorption/M 16544d13386 < absorptivity 16547c13389 < abstemious/YP --- > abstemious/PY 16549c13391 < abstention/SM --- > abstention/MS 16552c13394 < abstract/TGSPMDRY --- > abstract/GSPMDY 16557c13399 < abstruse/RPYT --- > abstruse/YP 16559a13402 > absurdist/MS 16564c13407,13408 < abuse/EGVDSM --- > abuse's > abuse/EGVDS 16582c13426 < academician/SM --- > academician/MS 16586c13430 < accelerate/GNDSX --- > accelerate/GNXDS 16589d13432 < accelerometer/S 16593c13436 < accentuate/DSGN --- > accentuate/GNDS 16602d13444 < acceptor/S 16604d13445 < accessed/A 16608c13449 < accession/GMDS --- > accession/MDGS 16611d13451 < accidence 16613c13453 < accidental/MYS --- > accidental/SMY 16615c13455 < acclamation/SM --- > acclamation/M 16618,16619d13457 < acclimatisation < acclimatise/DSG 16624c13462 < accommodate/DSGNX --- > accommodate/XGNDS 16628c13466 < accompaniment/SM --- > accompaniment/MS 16632c13470 < accomplish/GLDS --- > accomplish/DSLG 16640c13478 < accordionist/SM --- > accordionist/MS 16651,16652c13489,13490 < accoutre/DSGL < accoutrements/M --- > accoutre/DSG > accoutrements 16656d13493 < accreted 16661c13498 < acculturate/GNDS --- > acculturate/DSGN 16663c13500 < accumulate/DSGNVX --- > accumulate/XGNVDS 16665,16666c13502,13503 < accumulator/SM < accuracy/ISM --- > accumulator/MS > accuracy/IM 16671,16672d13507 < accurst < accusal 16695d13529 < achievable/U 16697d13530 < achieved/A 16706c13539 < acidify/GDSN --- > acidify/GDS 16708d13540 < acidophiles 16711c13543 < acknowledge/DSG --- > acknowledge/DSGL 16714c13546 < acknowledgment/MS --- > acknowledgment/SM 16724c13556 < acquaintance/MS --- > acquaintance/SM 16732c13564 < acquisition/SM --- > acquisition/MS 16737d13568 < acquittance 16745c13576 < acrimonious/PY --- > acrimonious/YP 16756a13588 > acrylamide 16758c13590,13591 < act/ASDGVM --- > act's > act/ASDGV 16761d13593 < actinides 16766,16768c13598 < activated/U < activation/CAIM < activations --- > activation/ICAM 16770c13600,13601 < active/IKYSM --- > active's > active/ISY 16774c13605 < activity/ASIM --- > activity/ISM 16793d13623 < acyclic 16802,16803c13632 < adaptation/SM < adapted/U --- > adaptation/MS 16806,16807d13634 < adaptive/Y < adaptivity 16816d13642 < addictive/P 16819c13645 < additive/SMY --- > additive/SM 16821,16822c13647,13649 < address/AGDSM < addressable/U --- > address's > address/AGDS > addressable 16829c13656 < adept/TMRYPS --- > adept/MYPS 16834c13661 < adhere/ZGDRS --- > adhere/GDS 16838c13665 < adhesive/SPM --- > adhesive/PSM 16841d13667 < adiabatically 16844a13671 > adiós 16852c13679 < adjournment/MS --- > adjournment/SM 16854c13681 < adjudicate/GNVDSX --- > adjudicate/GNVXDS 16859c13686 < adjuration/SM --- > adjuration/MS 16863d13689 < adjusted/U 16866d13691 < adjustor/SM 16871,16872c13696,13697 < administer/SDG < administrate/GNVXDS --- > administer/DGS > administrate/XDSGNV 16875c13700 < administrator/SM --- > administrator/MS 16889c13714 < admittance/SM --- > admittance/M 16895c13720 < admonishment/SM --- > admonishment/MS 16916c13741 < adrenalin/M --- > adrenalin's 16917a13743 > adrenergic 16919c13745 < adroit/PTRY --- > adroit/PY 16923c13749 < adsorption/MS --- > adsorption/SM 16930c13756 < adulterate/XGNDS --- > adulterate/GNDS 16963c13789 < advertise/ZGLDRS --- > advertise/LZGDRS 16968,16969d13793 < advertize/GDSL < advertizement/SM 16971c13795 < advice/SM --- > advice/M 16977d13800 < advisedly/I 16979a13803 > advisor/SM 16983c13807 < advocator/SM --- > advocator/MS 16985c13809 < adware/MS --- > adware/SM 16989d13812 < aeolian 16996c13819 < aerie/M --- > aerie/MS 17002d13824 < aerobraking 17014,17015c13836 < aery/TRSM < aesthete/S --- > aesthete/MS 17020,17021d13840 < aether < aetiology 17024c13843 < affable/TR --- > affable 17027c13846,13847 < affect/EGVDSM --- > affect's > affect/EGDS 17037c13857,13858 < affiliate/EGNDSM --- > affiliate's > affiliate/EGNDS 17041d13861 < affine 17054c13874 < affordable/U --- > affordably 17076c13896 < afterburner/SM --- > afterburner/MS 17083c13903 < aftermarket/SM --- > aftermarket/MS 17090c13910 < afterthought/MS --- > afterthought/SM 17099a13920 > ageing/SM 17108c13929 < agglomerate/XDSMGN --- > agglomerate/DSMGNX 17110c13931 < agglutinate/XDSGNV --- > agglutinate/DSXGN 17112c13933 < aggrandize/LGDS --- > aggrandize/GLDS 17114c13935 < aggravate/GNDSX --- > aggravate/GNXDS 17118d13938 < aggregated/E 17121,17122c13941,13942 < aggression/SM < aggressive/YP --- > aggression/M > aggressive/PY 17126d13945 < aggrieved/Y 17129c13948 < agile/YTR --- > agile/Y 17132d13950 < agism 17134d13951 < agitated/Y 17145c13962 < agonist --- > agonist/S 17150,17151c13967 < agoraphobic/SM < agouti --- > agoraphobic/MS 17164d13979 < agrochemical/S 17176c13991 < aid/SMDRZG --- > aid/SMDG 17206d14020 < airframe/S 17232d14045 < airstream 17242c14055 < airworthy/TPR --- > airworthy/P 17253d14065 < alanine 17261d14072 < albedo 17269d14079 < alchemical 17277d14086 < aldehyde 17287c14096 < alert/TGMDRYPS --- > alert/GMDYPS 17298,17299c14107 < algebraical/Y < algebraist --- > algebraically 17302d14109 < algorithmically 17319,17322d14125 < aline/LGDS < alinement/MS < aliphatic < aliquot/S 17326c14129 < alkali/M --- > alkali/MS 17339c14142 < allegiance/SM --- > allegiance/MS 17345d14147 < allegri 17348d14149 < allelic 17356c14157 < alleviate/DSXGN --- > alleviate/DSGN 17362c14163 < alliterate/DSGNVX --- > alliterate/DSXGNV 17365d14165 < allocatable 17367d14166 < allocated/U 17370,17371d14168 < allocator/S < allophones 17374,17375d14170 < allotrope < allotropic 17380c14175 < allowable --- > allowable/U 17391c14186 < allusive/YP --- > allusive/PY 17397d14191 < almanack/S 17420,17421c14214,14215 < alphabetization/MS < alphabetize/DRSZG --- > alphabetization/SM > alphabetize/ZGDRS 17435,17436c14229 < altercate/XN < altercation/M --- > altercation/SM 17438c14231 < alternate/XDSMYGNV --- > alternate/DSMYGNVX 17441c14234 < alternator/MS --- > alternator/SM 17462c14255 < amalgamate/DSGNX --- > amalgamate/XGNDS 17472c14265 < amateurish/PY --- > amateurish/YP 17489a14283 > ambience/MS 17495c14289 < ambitious/PY --- > ambitious/YP 17513c14307,14309 < ambush/ZGMDS --- > ambush/GMDS > ameba/MS > amebae 17514a14311 > ameboid 17521d14317 < amended/U 17525c14321 < amercement/MS --- > amercement/SM 17528d14323 < amethystine 17530c14325 < amiable/P --- > amiable 17540d14334 < amine/S 17548d14341 < ammonites 17564,17565c14357 < amongst < amontillado/MS --- > amontillado/SM 17572c14364 < amortization/MS --- > amortization/SM 17575a14368 > amoxicillin 17585a14379 > ampicillin 17589c14383 < amplify/DRSZGNX --- > amplify/NDRSXZG 17592d14385 < ampul/MS 17597a14391 > amuck 17600d14393 < amused/U 17605d14397 < anabolic 17615,17616d14406 < anagrammatic < anagrammatically 17623c14413 < analogous/PY --- > analogous/YP 17628c14418 < analyses --- > analyses/A 17632a14423 > analyticalally 17636,17637d14426 < anamorphic < anapaest/SM 17640,17641d14428 < anaphora < anaphoric 17643c14430 < anarchical/Y --- > anarchically 17665c14452 < anchorperson/MS --- > anchorperson/SM 17682d14468 < anechoic 17686c14472 < anemometer/MS --- > anemometer/SM 17689d14474 < aneroid 17694c14479 < anesthetist/SM --- > anesthetist/MS 17696,17697c14481 < anesthetize/DSG < aneurism/SM --- > anesthetize/GDS 17710d14493 < anglepoise 17726a14510 > angulation 17730c14514 < animadvert/SGD --- > animadvert/GSD 17732c14516 < animalcule/MS --- > animalcule/SM 17738c14522 < anime --- > anime/M 17749,17750d14532 < anisotropic < anisotropy/S 17756d14537 < annal/S 17759c14540 < anneal/GDRS --- > anneal/GDS 17763d14543 < annexe/M 17766c14546 < annihilator/MS --- > annihilator/SM 17769d14548 < annotated/U 17779d14557 < annoyware/S 17786d14563 < annuli 17790,17791c14567 < annulus < annunciation/MS --- > annunciation/SM 17801c14577 < anonymization/SM --- > anonymization/MS 17810c14586 < answer/BMDRGS --- > answer/BMDGS 17845d14620 < anthropic 17847,17848c14622 < anthropogenic < anthropoid/SM --- > anthropoid/MS 17850c14624 < anthropologist/MS --- > anthropologist/SM 17852d14625 < anthropometric 17856c14629 < anthropomorphize/DSG --- > anthropomorphize/DS 17863c14636 < antibiotic/SM --- > antibiotic/MS 17867,17868c14640,14641 < antichrist/MS < anticipate/GNVXDS --- > antichrist/SM > anticipate/GNXDS 17880c14653 < anticoagulant/SM --- > anticoagulant/MS 17882,17883c14655,14656 < anticommunist/MS < anticyclone/MS --- > anticommunist/SM > anticyclone/SM 17898,17899c14671,14672 < antilogarithm/MS < antimacassar/SM --- > antilogarithm/SM > antimacassar/MS 17906,17907c14679,14680 < antioxidant/SM < antiparticle/MS --- > antioxidant/MS > antiparticle/SM 17921c14694 < antiquarian/MS --- > antiquarian/SM 17927a14701 > antiscience 17937,17938c14711 < antispasmodic/SM < antistatic --- > antispasmodic/MS 17940,17941d14712 < antisymmetric < antisymmetry 17950,17951c14721,14723 < antiviral/S < antivirus/MS --- > antivenom > antiviral/MS > antivirus/M 17957c14729 < antral --- > antrum 17975d14746 < aorist 17989,17990d14759 < aperiodic < aperiodically 18002c14771 < aphrodisiac/MS --- > aphrodisiac/SM 18010d14778 < apnea 18025a14794 > apoptotic 18028c14797 < apostatize/DSG --- > apostatize/GDS 18032,18033c14801 < apostrophe/SM < apostrophized --- > apostrophe/MS 18038,18039c14806 < apotheosizes < app/MS --- > app/SM 18053,18054c14820 < appeased/U < appeasement/MS --- > appeasement/SM 18065c14831 < appertain/DGS --- > appertain/GDS 18073d14838 < applecart 18083d14847 < applicative 18087a14852,14853 > appliqué/SMG > appliquéd 18091,18092c14857,14858 < appointment/ESMA < apportion/ALDGS --- > appointment/AESM > apportion/AGDLS 18095c14861 < apposite/PYNV --- > apposite/YNVP 18098c14864 < appositive/MS --- > appositive/SM 18101d14866 < appraisees 18105c14870 < appreciate/XDSGNV --- > appreciate/DSXGNV 18113c14878 < apprehensive/PY --- > apprehensive/YP 18118d14882 < apprize/GDS 18120,18121c14884 < approachability < approachable/IU --- > approachable/UI 18124c14887 < appropriate/DSPXYGN --- > appropriate/PYGNXDS 18128c14891 < appropriator/MS --- > appropriator/SM 18135c14898 < approximate/XYGNDS --- > approximate/DSXYGN 18161d14923 < aquiculture/M 18168d14929 < arachnoid 18173,18174c14934,14935 < arbitrageur/MS < arbitrament/MS --- > arbitrageur/SM > arbitrament/SM 18180c14941 < arbitrator/SM --- > arbitrator/MS 18183d14943 < arbores 18188,18190c14948,14949 < arcade/MGS < arcana < arcane/PY --- > arcade/MS > arcane 18205c14964 < archbishopric/MS --- > archbishopric/SM 18207d14965 < archdeaconry 18209c14967 < archdiocese/SM --- > archdiocese/MS 18214c14972 < archeologist/MS --- > archeologist/SM 18216d14973 < archeopteryx 18221d14977 < archetypical 18224a14981 > archipelagoes 18229c14986 < architecture/SM --- > architecture/MS 18233d14989 < archived/U 18238d14993 < ardency 18258c15013 < argumentative/YP --- > argumentative/PY 18262c15017 < arid/TRY --- > arid/Y 18273c15028 < arithmetician/SM --- > arithmetician/MS 18275c15030,15031 < arm/EAGDSM --- > arm's > arm/EAGDS 18287d15042 < armless 18303d15057 < aromaticity 18308d15061 < aroused/U 18312c15065 < arraignment/MS --- > arraignment/SM 18314,18315c15067 < arrangeable < arrangement/ASME --- > arrangement/AESM 18322d15073 < arrestable 18332c15083 < arrow/GMDS --- > arrow/MS 18339d15089 < arsenide 18344d15093 < artefactual 18355a15105 > arthroscopy 18360c15110 < articulate/PXDSYGN --- > articulate/YGNPDSX 18363d15112 < articulatory 18386c15135 < aryl/MS --- > aryl/SM 18389d15137 < asbestosis 18394,18395d15141 < ascendency/M < ascendent/SM 18398c15144 < ascertain/BLGDS --- > ascertain/GDSBL 18403d15148 < ascorbic 18406c15151 < ascription/MS --- > ascription/M 18439c15184 < asphyxiate/DSGNX --- > asphyxiate/DSXGN 18446d15190 < aspirational 18454d15197 < assailed/U 18456c15199 < assassinate/GNDSX --- > assassinate/GNXDS 18461,18463c15204,15206 < assemblage/MS < assemble/EADSG < assembler/MS --- > assemblage/SM > assemble/ERZGSD > assembler/EM 18465c15208 < assembly/AM --- > assembly/EAM 18477d15219 < assessable 18487c15229,15230 < assign/ALGDSM --- > assign's > assign/ALGDS 18489c15232 < assignation/SM --- > assignation/MS 18491c15234 < assignee/MS --- > assignee/M 18495d15237 < assimilable 18505,18507c15247,15248 < associate/EDSGNVM < associated/U < associateship --- > associate's > associate/EDSGNV 18509d15249 < associational 18511,18512d15250 < associative/Y < associativity 18516c15254 < assortment/SM --- > assortment/MS 18519d15256 < assuaged/U 18521,18522c15258 < assuming/AU < assumption/MS --- > assumption/SM 18538c15274 < astonish/DSGL --- > astonish/DSLG 18545c15281 < astral/Y --- > astral 18549c15285 < astringent/MYS --- > astringent/SMY 18556c15292 < astrologist/SM --- > astrologist/MS 18577d15312 < asymptote/S 18593d15327 < atheistically 18594a15329 > atherosclerotic 18604d15338 < atlantes 18606c15340 < atmosphere/SM --- > atmosphere/MS 18614,18616d15347 < atomicity < atomistic < atomization 18625a15357 > atrioventricular 18636a15369 > attaché/MS 18643,18644c15376 < attained/U < attainment/MS --- > attainment/SM 18646c15378,15379 < attempt/ASDGM --- > attempt's > attempt/ASDG 18648c15381 < attendance/MS --- > attendance/SM 18653d15385 < attentional 18655c15387 < attentive/IYP --- > attentive/IPY 18658d15389 < attenuated/U 18660d15390 < attenuator/S 18662c15392 < attestation/MS --- > attestation/SM 18672,18674c15402,15404 < attractant/SM < attraction/SM < attractive/UPY --- > attractant/MS > attraction/MS > attractive/UY 18676,18678c15406 < attractor/S < attributable/U < attribute/BXDSMGNV --- > attribute/DSMGNVBX 18681c15409 < attributive/SMY --- > attributive/MYS 18691c15419 < audacious/PY --- > audacious/YP 18699d15426 < audiobook/SM 18701c15428 < audiologist/MS --- > audiologist/SM 18704c15431 < audiophile/MS --- > audiophile/SM 18708,18709c15435 < audit/GVMDS < audited/U --- > audit/GMDS 18716d15441 < augite 18718c15443 < augmentation/SM --- > augmentation/MS 18727,18728c15452 < auntie/M < aunty/SM --- > auntie/SM 18735d15458 < auric 18739,18740c15462 < auroral < auscultate/XDSGN --- > auscultate/GNDSX 18748c15470,15471 < auteur/MS --- > auteur's > auteurs 18751c15474 < authenticate/GNDSX --- > authenticate/XGNDS 18754d15476 < authenticator/S 18759c15481 < authoritarian/SM --- > authoritarian/MS 18783,18784c15505 < autocue < autodidact/MS --- > autodidact/SM 18787d15507 < autoignition 18798,18799c15518 < automobile/MGDS < automorphism/S --- > automobile/DSMG 18815d15533 < availabilities 18821c15539 < avaricious/YP --- > avaricious/Y 18828d15545 < avenged/U 18834c15551 < averse/XNV --- > averse/XN 18844c15561 < avid/TRY --- > avid/Y 18866d15582 < awakened/U 18869c15585,15586 < aware/UPT --- > awardee/S > aware/UP 18871d15587 < awarer 18878d15593 < awestricken 18891a15607 > awol 18895,18896d15610 < axehead/S < axeman 18898d15611 < axillary 18902,18903c15615 < axiomatizing < axis/MS --- > axis/M 18908d15619 < ay/M 18916d15626 < azimuthal 18932c15642 < babysitter/SM --- > babysitter/MS 18934c15644 < baccalaureate/MS --- > baccalaureate/SM 18947,18948c15657 < backbench/RSZ < backbencher/M --- > backbench/S 18967c15676 < background/MRSZ --- > background/MRZS 18988c15697 < backslapper/MS --- > backslapper/SM 19002a15712 > backstory/S 19007c15717 < backtrack/GSD --- > backtrack/SDG 19009c15719 < backward/SPY --- > backward/PSY 19018c15728 < bacteria/SM --- > bacteria/M 19024c15734 < bacteriologist/MS --- > bacteriologist/SM 19026d15735 < bacteriophage 19034c15743 < badge/MZDRSG --- > badge/MZGRS 19075d15783 < bakehouse 19083,19084c15791,15792 < balance/UDSGM < balanced/A --- > balance's > balance/UDSG 19096,19097d15803 < balefuller < balefullest 19104d15809 < ballade/S 19140c15845 < banal/RYT --- > banal/Y 19143c15848,15849 < band/ESGDM --- > band's > band/ESGD 19156d15861 < bandpass 19166,19168c15871 < banefuller < banefullest < bang/SZGMDR --- > bang/SGMDR 19185c15888 < banned/U --- > banned 19187,19188c15890 < banning/U < bannister/MS --- > banning 19195d15896 < banshie/MS 19212c15913,15914 < bar/ECUTSM --- > bar's > bar/ECUTS 19215c15917 < barbarianism/SM --- > barbarianism/MS 19225d15926 < barbeque/DSMG 19233d15933 < barcarolle/MS 19251d15950 < bargepole 19254a15954 > barista/MS 19257c15957,15958 < bark/CSGDM --- > bark's > bark/CSGD 19262d15962 < barleycorn/S 19270c15970 < barnstorm/ZGSDR --- > barnstorm/SDRZG 19290a15991,15992 > barrelled > barrelling 19304,19305d16005 < barycenter < barycentric 19308c16008 < basalt/SM --- > basalt/M 19310c16010,16011 < base/CDRSLTGM --- > base's > base/CDSLTG 19319a16021 > baser 19335d16036 < basketful 19345c16046 < bassoonist/MS --- > bassoonist/SM 19374c16075 < bathysphere/SM --- > bathysphere/MS 19395c16096 < battlefront/SM --- > battlefront/MS 19399c16100 < battleship/MS --- > battleship/SM 19403d16103 < baulk/MDGS 19421c16121 < beachcomber/MS --- > beachcomber/SM 19462c16162 < beatify/GDSXN --- > beatify/GXNDS 19469c16169 < beautician/MS --- > beautician/SM 19472,19473c16172,16173 < beautiful/TRY < beautify/DRSZGN --- > beautiful/Y > beautify/NDRSZG 19474a16175 > beaux 19488c16189 < bedazzle/GLDS --- > bedazzle/GDSL 19506,19507d16206 < bedlinen < bedmaker/S 19515d16213 < bedsheets 19527d16224 < beechwood 19529c16226 < beefburger/MS --- > beefburger/SM 19531d16227 < beefeater 19543d16238 < beermat/S 19562c16257 < befuddle/GDSL --- > befuddle/GLDS 19565a16261 > begat 19596c16292 < behaviorist/SM --- > behaviorist/MS 19611c16307 < belated/PY --- > belated/Y 19614c16310 < beleaguer/SGD --- > beleaguer/GSD 19619d16314 < believability/U 19623d16317 < believed/U 19626c16320 < belittle/DSLG --- > belittle/LDSG 19633c16327 < belletrist/SM --- > belletrist/MS 19640c16334 < belligerent/SMY --- > belligerent/MYS 19648c16342 < bellybutton/MS --- > bellybutton/SM 19664,19665c16358,16359 < benchmark/GMS < bend/BSZGMDR --- > benchmark/MS > bend/BSZGMR 19681c16375 < benevolence/MS --- > benevolence/SM 19776c16470 < bevel/JGMDS --- > bevel/GMDS 19784c16478 < bewilder/SLGD --- > bewilder/LSGD 19797a16492,16494 > biased/U > biassed > biassing 19802,19803c16499 < biblicists < bibliographer/SM --- > bibliographer/MS 19840c16536 < bifurcate/DSXGN --- > bifurcate/XDSGN 19871,19872d16566 < bilharzia < biliary 19876a16571 > bilirubin 19889c16584 < billionaire/MS --- > billionaire/SM 19893,19894c16588 < billowy/RT < billposters --- > billowy 19900d16593 < bimodal 19904c16597,16598 < bind/AUGSM --- > bind's > bind/AUGS 19909a16604 > bingeing 19917d16611 < binodal 19927d16620 < bioengineering 19943,19945d16635 < biometric/S < biometry < biomorph 19953a16644 > bioreactor/S 19954a16646 > biosensor/S 19958d16649 < biota 19961d16651 < biotechnologist 19963d16652 < biotic 19970d16658 < bipedalism 19989,19991c16677 < birdtables < birdwatcher/MS < birdwatching --- > birdwatcher/SM 19993,19994d16678 < birefringence < birefringent 19996c16680 < birth/GMD --- > birth/ZGMDR 19997a16682 > birther/M 20001c16686 < birthright/SM --- > birthright/MS 20003c16688 < birthstone/MS --- > birthstone/SM 20015d16699 < bistable 20021a16706 > bitcoin/SM 20032c16717 < bitty/TPR --- > bitty/TR 20043c16728 < bizarre/YP --- > bizarre/Y 20045c16730 < bl/D --- > bl/DG 20054,20055c16739,16740 < blackball/SMDG < blackberry/SMG --- > blackball/SGMD > blackberry/GSM 20059a16745 > blackface 20071d16756 < blackshirts 20088c16773 < blameless/PY --- > blameless/YP 20092c16777 < blammo/GDS --- > blammo 20097c16782 < blandishment/MS --- > blandishment/SM 20111a16797 > blasé 20141c16827 < blessed/TRYP --- > blessed/YP 20145d16830 < blether/GSD 20153c16838 < blindfold/GSMD --- > blindfold/SMDG 20164c16849 < blissful/PY --- > blissful/YP 20178c16863 < bloatware/S --- > bloatware 20183c16868,16869 < block/UGDSM --- > block's > block/UGDS 20196c16882 < blogroll/MS --- > blogroll/SM 20208d16893 < bloodied/U 20215c16900 < bloodmobile/SM --- > bloodmobile/MS 20218d16902 < bloodsport/S 20221,20223c16905,16906 < bloodstone < bloodstream/MS < bloodsucker/MS --- > bloodstream/SM > bloodsucker/SM 20227,20228c16910 < bloodthirsty/TPR < bloodworm --- > bloodthirsty/RPT 20230d16911 < bloodymindedness 20245,20247c16926,16927 < bloviate/SGD < bloviation < bloviator/SM --- > bloviate/GNDS > bloviator/MS 20254c16934 < blowjob/MS! --- > blowjob/SM 20264,20265d16943 < blub/S < blubbed 20268d16945 < blubbing 20278a16956 > blueing/M 20280c16958 < bluejacket/MS --- > bluejacket/SM 20286,20287c16964,16965 < blueprint/GMDS < bluestocking/MS --- > blueprint/MDGS > bluestocking/SM 20295c16973 < blunder/MDRZGJS --- > blunder/MDRZGS 20309d16986 < blushing/UY 20317c16994 < board/JZGMDRS --- > board/ZGMDRS 20319d16995 < boardgames 20321c16997 < boardinghouse/SM --- > boardinghouse/MS 20329d17004 < boatclubs 20344c17019 < bobbysoxer/MS --- > bobbysoxer/SM 20349c17024 < bobsledder/SM --- > bobsledder/MS 20365d17039 < bodiless 20369c17043 < bodybuilder/MS --- > bodybuilder/SM 20384d17057 < boggling/Y 20386,20387c17059 < bogie/M < bogometer/S --- > bogie/MS 20389,20390c17061 < bogosity/S < bogotify/DSG --- > bogosity 20392d17062 < bogy/SM 20398d17067 < boiled/U 20419,20420c17088 < boloney/M < bolshevik/M --- > bolshevik/SM 20424c17092,17093 < bolt/USGDM --- > bolt's > bolt/USGD 20430c17099 < bombardment/MS --- > bombardment/SM 20454d17122 < bonemeal 20457c17125 < boney --- > boneyard 20466d17133 < bonnie 20468c17135,17136 < bonsai/MS --- > bonobo/MS > bonsai/M 20484c17152 < bookbinder/MS --- > bookbinder/SM 20488d17155 < booked/U 20501c17168 < bookseller/SM --- > bookseller/MS 20508d17174 < bookwork 20523c17189,17190 < boot/ASGDM --- > boot's > boot/ASGD 20527a17195 > bootie/M 20531c17199 < bootlegger/SM --- > bootlegger/MS 20534d17201 < bootprints 20548,20549c17215,17216 < borderland/SM < borderline/SM --- > borderland/MS > borderline/MS 20560c17227 < borrow/SDRZGBJ --- > borrow/SDRZGJ 20568,20571c17235,17238 < bosom/USM < bosomy/RT < boson/S < boss/DRSGM --- > bosom's > bosom/US > bosomy > boss/DSGM 20588,20589c17255 < bothy < botnet/MS --- > botnet/SM 20595c17261 < bottommost --- > botulinum 20599,20600c17265 < bougainvillaea/S < bougainvillea/SM --- > bougainvillea/MS 20616d17280 < boundedness 20619c17283 < boundless/YP --- > boundless/PY 20621c17285 < bounteous/PY --- > bounteous/YP 20623c17287 < bountiful/PY --- > bountiful/YP 20630c17294 < boustrophedon/S --- > boustrophedon 20633c17297,17298 < boutonniere/SM --- > boutonniere/MS > boutonnière/MS 20643d17307 < bowie 20645d17308 < bowlder/SM 20660d17322 < boxful 20664d17325 < boxtops 20673d17333 < boyscout 20675a17336 > bpm 20679d17339 < braced/U 20683d17342 < bracing/Y 20686d17344 < bracketed/U 20691a17350 > bradycardia 20694c17353 < braggadocio/MS --- > braggadocio/SM 20703d17361 < braincell/S 20705c17363 < brainchildren --- > brainchildren/M 20707c17365 < brainless/YP --- > brainless/Y 20709c17367 < brainstorm/GSMD --- > brainstorm/SMDG 20711,20712c17369 < brainteaser/MS < brainteasing --- > brainteaser/SM 20722c17379 < brambly/TR --- > brambly 20762c17419 < breadboard/MS --- > breadboard/SM 20764c17421 < breadcrumb/SM --- > breadcrumb/MS 20769c17426 < breadwinner/MS --- > breadwinner/SM 20777c17434 < breakfast/GMDS --- > breakfast/MDGS 20791,20795c17448,17451 < breastplate/MS < breaststroke/MS < breastwork/SM < breath/MDRSZGBJ < breathalyser/S --- > breastplate/SM > breaststroke/SM > breastwork/MS > breath/MDRSZGB 20805,20806d17460 < breccias < brecciated 20845,20846c17499 < bridged/U < bridgehead/MS --- > bridgehead/SM 20852c17505,17506 < brief/CSDTGJM --- > brief's > brief/CSDTGJ 20864c17518 < brigantine/SM --- > brigantine/MS 20868c17522 < brightness/MS --- > brightness/M 20877d17530 < brimfull 20889d17541 < brinksmanship/M 20891d17542 < brio 20907,20908c17558,17559 < broadcast/AMGSD < broadcaster/SM --- > broadcast/AMDGS > broadcaster/MS 20912d17562 < broadleaved 20914c17564 < broadminded/P --- > broadminded 20918c17568 < broadsword/MS --- > broadsword/SM 20927c17577 < broke/G --- > broke 20942d17591 < broncho/SM 20945,20946c17594,17595 < broncobuster/MS < brontosaur/SM --- > broncobuster/SM > brontosaur/MS 20963c17612 < brotherhood/SM --- > brotherhood/MS 20983d17631 < bruised/U 20996,20997d17643 < brushy < brusk/RT 21014,21015c17660 < bubonic < buccaneer/SMDG --- > buccaneer/SGMD 21022c17667,17668 < buckle/UDSGM --- > buckle's > buckle/UDSG 21024d17669 < buckminsterfullerene 21031a17677 > buckyball/SM 21039c17685 < budgerigar/SM --- > budgerigar/MS 21051c17697,17698 < bug/CSM --- > bug's > bug/CS 21065a17713 > builtin 21085c17733 < bulletproof/GSD --- > bulletproof/SDG 21092c17740 < bullheaded/YP --- > bullheaded/PY 21106c17754 < bully/DRSMTG --- > bully/DSMG 21124c17772 < bumptious/YP --- > bumptious/PY 21130c17778 < bunco/MDG --- > bunco/SMDG 21133d17780 < bundled/U 21141c17788,17789 < bunk/CDGSM --- > bunk's > bunk/CDGS 21144c17792 < bunko/M --- > bunko/SMDG 21155c17803,17804 < burden/USGDM --- > burden's > burden/USGD 21160c17809 < bureaucrat/SM --- > bureaucrat/MS 21176c17825 < burgomaster/MS --- > burgomaster/SM 21179,21180c17828 < buried/U < burk/S --- > burka/S 21186c17834 < burn/MDRZGSBJ --- > burn/MDRZGSB 21188d17835 < burned/U 21195c17842 < burnt/U --- > burnt 21196a17844 > burqa/S 21216d17863 < bushfire 21219d17865 < bushland 21231,21232c17877 < businesspeople < businessperson/MS --- > businessperson/SM 21239,21240c17884 < busmen < buss/MD --- > buss/M 21242d17885 < bustard/S 21260a17904 > buttercream 21272,21273c17916,17918 < button/USDGM < buttonhole/MGDS --- > button's > button/USDG > buttonhole/DSMG 21277c17922 < buxom/RT --- > buxom 21284a17930 > buzzkill/SM 21322c17968 < cabinetmaker/SM --- > cabinetmaker/MS 21327c17973 < cablecast/MGS --- > cablecast/GMS 21346a17993 > caddie/MDS 21349c17996 < caddy/GDSM --- > caddying 21360d18006 < caesarian/MS 21368a18015 > café/SM 21370a18018,18019 > cagier > cagiest 21374d18022 < cagy/PTR 21402c18050 < calculate/AXGNVDS --- > calculate/AGNVDSX 21406c18054 < calculator/MS --- > calculator/SM 21412c18060 < calender/MDGS --- > calender's 21417d18064 < calibrated/U 21420c18067 < calico/M --- > calico/MS 21422d18068 < calif/MS 21454,21455d18099 < calorimeter/S < calorimetry 21457c18101 < calumniate/DSGN --- > calumniate/GNDS 21478d18121 < camerae 21489c18132,18133 < camp/CSTGDM --- > camp's > camp/CSGD 21493,21494c18137 < campanological < campanologist/SM --- > campanologist/MS 21506c18149 < can/SMDRJZG --- > can/SMDRZG 21510a18154 > canapé/MS 21516d18159 < canceled/U 21518c18161 < cancellation/MS --- > cancellation/SM 21526,21527c18169 < candelas < candid/RYPT --- > candid/YP 21538,21539c18180,18181 < candlestick/SM < candlewick/MS --- > candlestick/MS > candlewick/SM 21558c18200 < cannibalize/DSG --- > cannibalize/GDS 21566d18207 < cannula 21574c18215 < canonization/MS --- > canonization/SM 21579c18220,18221 < cant/CZRDGSM --- > cant's > cant/CZRDGS 21581d18222 < cantaloup/SM 21591c18232 < cantilever/GSMD --- > cantilever/MDGS 21595c18236 < cantonment/SM --- > cantonment/MS 21605c18246 < capable/TR --- > capable/I 21611d18251 < capacitive 21614c18254 < caparison/MDSG --- > caparison/MDGS 21630c18270 < capitulate/AGNXDS --- > capitulate/ADSXGN 21639c18279 < capricious/YP --- > capricious/PY 21662d18301 < caracul/M 21665c18304 < caramelize/GDS --- > caramelize/DSG 21668a18308 > caravansarai/S 21675c18315 < carbohydrate/MS --- > carbohydrate/SM 21681d18320 < carbonic 21684d18322 < carbonyl 21687a18326 > carbs 21690,21691c18329 < carburetor/MS < carcase/S --- > carburetor/SM 21694,21695c18332 < carcinogenesis < carcinogenic/SM --- > carcinogenic/MS 21708,21709c18345,18346 < cardinality < cardiogram/MS --- > cardio > cardiogram/SM 21712,21713c18349 < cardioid < cardiologist/SM --- > cardiologist/MS 21714a18351 > cardiomyopathy 21720d18356 < cared/U 21731c18367 < careless/YP --- > careless/PY 21744,21746c18380 < caricaturisation < caricaturist/MS < caricaturization --- > caricaturist/SM 21761a18396 > carnie/M 21763a18399 > carnivora 21765c18401 < carnivorous/YP --- > carnivorous/PY 21781c18417 < carpenter/MDSG --- > carpenter/MDGS 21795d18430 < carrell/SM 21801,21802c18436 < carroty/RT < carrousel/SM --- > carroty 21818c18452 < cartographer/MS --- > cartographer/SM 21823c18457 < cartoonist/SM --- > cartoonist/MS 21837c18471 < caseharden/GSD --- > caseharden/DGS 21843a18478 > cashback/M 21867c18502 < castigator/MS --- > castigator/SM 21874d18508 < castrato 21888c18522 < cataleptic/SM --- > cataleptic/MS 21890a18525,18526 > catalogue/DSMG > catalogued/U 21901c18537 < catastrophe/SM --- > catastrophe/MS 21914,21915c18550 < catchphrase/MS < catchup/M --- > catchphrase/SM 21929c18564 < caterwaul/GSMD --- > caterwaul/SMDG 21937c18572 < catheterize/GDS --- > catheterize/DSG 21943d18577 < cationic 21950a18585 > catsup/MS 21969d18603 < caulking/M 22003d18636 < cavitation 22009d18641 < cayman/MS 22020d18651 < cedarwood 22031d18661 < celebrated/U 22036d18665 < celebs 22052a18682 > cellulitis 22073c18703 < cent/ARM --- > cent/SZMR 22076c18706 < centenarian/SM --- > centenarian/MS 22079c18709 < center/MDGS --- > center/MDG 22081,22082c18711,18712 < centerfold/SM < centerpiece/SM --- > centerfold/MS > centerpiece/MS 22085c18715 < centiliter/SM --- > centiliter/MS 22087c18717 < centimeter/SM --- > centimeter/MS 22089c18719 < central/TSMRY --- > central/SMY 22094,22096c18724,18725 < centralize/CDSG < centralizer/SM < centric/F --- > centralize/CGDS > centralizer/MS 22098c18727 < centrifuge/MGDS --- > centrifuge/DSMG 22102,22103d18730 < centroid/S < cents 22117a18745 > cerebrovascular 22129,22130c18757 < certain/UYT < certainer --- > certain/UY 22134,22136c18761,18763 < certificate/MGNXDS < certification/M < certify/DSG --- > certificate/MGDS > certification's > certify/CDSNXG 22158c18785,18786 < chain/UGDSM --- > chain's > chain/UGDS 22163c18791 < chairmanship/MS --- > chairmanship/SM 22165c18793 < chairperson/MS --- > chairperson/SM 22179d18806 < challenging/Y 22182,22184c18809,18810 < chamberlain/SM < chambermaid/SM < chamberpot/S --- > chamberlain/MS > chambermaid/MS 22187d18812 < chammy/SM 22197c18822 < chancellor/SM --- > chancellor/MS 22203c18828 < chandelier/MS --- > chandelier/SM 22218c18843 < channelize/GDS --- > channelize/DSG 22220c18845 < chant/ZGMDRJS --- > chant/ZGMDRS 22224,22226c18849 < chanticleer/SM < chantry/S < chanty/SM --- > chanticleer/MS 22252c18875 < characteristic/MS --- > characteristic/SM 22255c18878 < characterize/GDS --- > characterize/DSG 22263c18886 < charge/EAMGDS --- > charge/AESDGM 22270c18893 < charioteer/SM --- > charioteer/MS 22272,22273c18895 < charismatic/SM < charismatically --- > charismatic/MS 22285c18907 < charming/TRY --- > charming/Y 22291c18913,18914 < charter/ASGDM --- > charter's > charter/ASGD 22293d18915 < chartists 22306c18928 < chastisement/MS --- > chastisement/SM 22311a18934 > chateaux 22323c18946 < chauffeur/MDGS --- > chauffeur/GMDS 22330d18952 < cheapish 22333c18955 < cheapskate/SM --- > cheapskate/MS 22336c18958,18959 < check/AGMDSU --- > check's/A > check/UAGDS 22338c18961 < checked/U --- > checkbox 22340c18963 < checkerboard/MS --- > checkerboard/SM 22347a18971 > checksum 22365,22366c18989,18990 < cheerleader/MS < cheerless/YP --- > cheerleader/SM > cheerless/PY 22371c18995 < cheeseburger/MS --- > cheeseburger/SM 22382,22383d19005 < chemiluminescence < chemiluminescent 22386c19008 < chemistry/MS --- > chemistry/SM 22388d19009 < chemosynthesis 22406c19027 < chesterfield/MS --- > chesterfield/SM 22413c19034 < chew/SBZGMDR --- > chew/SZGMDR 22424c19045 < chichi/TMRS --- > chichi/MS 22431c19052 < chickenshit/SM! --- > chickenshit/MS! 22442c19063 < chieftainship/MS --- > chieftainship/SM 22455c19076 < childish/PY --- > childish/YP 22462c19083 < childproof/SGD --- > childproof/GSD 22464d19084 < chile/MS 22469d19088 < chilli/TPMR 22473c19092 < chilly/S --- > chilly/TPR 22475d19093 < chimaerical 22483c19101 < chimpanzee/MS --- > chimpanzee/SM 22507d19124 < chiral 22511,22512c19128,19129 < chiropractic/MS < chiropractor/MS --- > chiropractic/SM > chiropractor/SM 22518a19136 > chiselled 22519a19138 > chiselling 22526d19144 < chitlings/M 22527a19146 > chitosan 22529d19147 < chivalric 22539d19156 < chlorate 22542c19159 < chlorinate/DSGN --- > chlorinate/GNDS 22545,22546c19162,19163 < chlorofluorocarbon/MS < chloroform/SMDG --- > chlorofluorocarbon/SM > chloroform/SGMD 22549d19165 < chloroquine 22552d19167 < chocaholic/SM 22555c19170 < chocoholic/MS --- > chocoholic/SM 22562c19177 < choirmaster/MS --- > choirmaster/SM 22565a19181,19182 > cholecystectomy > cholecystitis 22570d19186 < choline 22574d19189 < choosey 22593c19208 < choreograph/ZGDR --- > choreograph/DRZG 22610,22611c19225 < christened/U < christening/SM --- > christening/MS 22613c19227 < chroma --- > christology 22616d19229 < chromaticism 22618d19230 < chromatographic 22621d19232 < chromite 22628d19238 < chronicled/U 22633c19243 < chronologist/SM --- > chronologist/MS 22635,22636c19245 < chronometer/MS < chronometric --- > chronometer/SM 22645c19254 < chuff/D --- > chuffed 22658c19267 < chunk/MS --- > chunk/GMDS 22667c19276 < churchwarden/SM --- > churchwarden/MS 22678d19286 < chutzpa/M 22680a19289,19292 > château/M > châteaux > châtelaine/SM > ciabatta/SM 22683c19295 < cicatrice/SM --- > cicatrices 22687c19299,19300 < cider/MS --- > cider's > cider/S 22689d19301 < cigaret/MS 22692d19303 < ciggy/S 22708c19319,19320 < cipher/CGDSM --- > cipher's > cipher/CGDS 22721d19332 < circulant 22724,22725c19335,19336 < circularize/GDS < circulate/ADSGN --- > circularize/DSG > circulate/ADSG 22728c19339 < circumcise/GNDSX --- > circumcise/XDSGN 22731c19342 < circumference/SM --- > circumference/MS 22736c19347 < circumnavigate/XDSGN --- > circumnavigate/XGNDS 22738d19348 < circumnavigational 22740,22741c19350,19351 < circumscribe/DSG < circumscription/SM --- > circumscribe/GDS > circumscription/MS 22744c19354 < circumstance/DSMG --- > circumstance/MGDS 22746,22747c19356,19357 < circumvent/GDBS < circumvention/MS --- > circumvent/DSG > circumvention/M 22754d19363 < cissy/S 22759c19368,19369 < cite/IAGSDM --- > cite's > cite/IAGSD 22764d19373 < citrate 22771d19379 < cityscape 22776d19383 < civies/M 22780c19387 < civilization/SM --- > civilization/MS 22789c19396,19398 < claim/CKEAGDSMB --- > claim's > claim/CKEAGDS > claimable/AKE 22792c19401 < claimer/CEMS --- > claimer/ECSM 22794c19403 < clairvoyant/SM --- > clairvoyant/MS 22805c19414 < clamorous/Y --- > clamorous 22821c19430 < clapboard/MDSG --- > clapboard/MDGS 22830c19439 < clarify/NXDSG --- > clarify/XDSNG 22837c19446,19447 < clasp/UGDSM --- > clasp's > clasp/UGDS 22842,22843c19452,19453 < classicist/SM < classifiable/U --- > classicist/MS > classifiable 22846,22848c19456,19459 < classificatory < classified/MSU < classifier/SM --- > classified's > classified/U > classifieds > classifier/MS 22864,22865c19475,19477 < claw/SGMD < clay/SM --- > claw's > claw/CSGD > clay/M 22869d19480 < claymore/S 22913c19524,19526 < click/ZGMDRS --- > cliché/MS > clichéd > click/BZGMDRS 22916a19530 > clientèle/MS 22927,22928c19541 < climatological < climatologist/MS --- > climatologist/SM 22932,22934d19544 < climbable/U < climbdown < climbed/U 22950c19560 < cliometrician/SM --- > cliometrician/MS 22959,22960d19568 < cliquier < cliquiest 22962a19571 > clit/SM 22969c19578,19579 < cloak/USDGM --- > cloak's > cloak/USDG 22974d19583 < clockmaker 22980c19589,19590 < clog/USM --- > clog's > clog/US 22983a19594 > cloisonné/M 22993,22994c19604,19605 < close/EIGTSDMB < closed/U --- > closable/I > close/DRSMYTGBJP 22996d19606 < closely 23000d19609 < closer/S 23003,23004c19612,19613 < closing/SM < closure/IEMS --- > closing/M > closure/ESM 23008,23009c19617,19618 < clotheshorse/SM < clothesline/MS --- > clotheshorse/MS > clothesline/SM 23022d19630 < cloudscape/S 23028c19636,19637 < cloverleaf/MS --- > cloverleaf/SM > cloverleaves 23030c19639 < clownish/PY --- > clownish/YP 23043d19651 < clubroom 23089c19697 < coalmine/ZS --- > coalmine/S 23147,23148c19755 < cockshies < cocksucker/SM! --- > cocksucker/MS! 23154d19760 < cocoanut/MS 23157c19763 < cod/ZSMR --- > cod/SM 23162,23164c19768,19770 < code/CAGDSM < codebreaker < codec/MS --- > code's > code/CZGDRS > codec/SM 23166d19771 < codename/D 23168,23170c19773,19774 < codependent/MS < coder/CSM < codeword/S --- > codependent/SM > coder/CM 23178,23180c19782,19783 < codify/DRSNXZG < codling < codon/MS --- > codify/XDRSNZG > codon/SM 23187c19790 < coelenterate/SM --- > coelenterate/MS 23189c19792 < coerce/XDRSZGNV --- > coerce/DRSZGNV 23191d19793 < coercible 23201c19803 < coffeemaker/MS --- > coffeemaker/SM 23237c19839 < coif/MS --- > coif/MDGS 23241c19843,19844 < coil/UADGSM --- > coil's/A > coil/UADGS 23245c19848 < coincidence/SM --- > coincidence/MS 23250d19852 < cointreau 23260d19861 < coldish 23271c19872 < collaborate/GNVXDS --- > collaborate/DSXGNV 23275c19876 < collaborator/SM --- > collaborator/MS 23285d19885 < collated/U 23291,23292c19891,19893 < collect/ASGVDM < collectable/SM --- > collect's > collect/ASGVD > collectable/MS 23296,23297c19897,19898 < collection/ASM < collective/SMY --- > collection/AMS > collective/MYS 23299,23300c19900 < collectivist/MS < collectivity --- > collectivist/SM 23302c19902 < collectivize/GDS --- > collectivize/DSG 23306d19905 < collegial 23314,23316d19912 < collimation < collimator < collinear 23318,23319c19914 < collisional < collocate/MGNXDS --- > collocate/MGNDSX 23325c19920 < colloquialism/MS --- > colloquialism/SM 23327c19922 < colloquium/SM --- > colloquium/MS 23339,23340c19934 < colonialist/SM < colonic --- > colonialist/MS 23342,23343c19936 < colonization/CAM < colonizations --- > colonization/ACM 23347c19940 < colonoscope/SM --- > colonoscope/MS 23351c19944,19945 < color/AEGDSM --- > color's > color/AEGDS 23357c19951,19953 < colored/MSU --- > colored's > colored/U > coloreds 23362,23363c19958 < colorimetric < coloring/SM --- > coloring's 23367d19961 < colorizing/C 23384d19977 < comae 23393,23395c19986,19988 < combination/MS < combinatorial < combine/ADSGM --- > combination/SM > combine's > combine/ADSG 23400d19992 < combusted 23402c19994 < combustible/SM --- > combustible/MS 23414c20006 < comer/M --- > comer's 23417,23419c20009,20011 < cometary < comeuppance/MS < comfit/ESM --- > comeuppance/SM > comfit's > comfit/ES 23421c20013 < comfortable/UP --- > comfortable/P 23437c20029 < commandeer/DGS --- > commandeer/GDS 23439,23440c20031 < commanding/Y < commandment/SM --- > commandment/MS 23442c20033 < commemorate/XDSGNV --- > commemorate/XGNVDS 23445c20036 < commence/ALDSG --- > commence/ADSLG 23450c20041 < commendation/ASM --- > commendation/AMS 23452c20043 < commensurable/I --- > commensurable 23454c20045 < comment/GSMDRZ --- > comment/ZGSMD 23465c20056 < commiserate/DSXGNV --- > commiserate/GNVDSX 23468c20059 < commissariat/MS --- > commissariat/SM 23470c20061,20062 < commission/ACGSDM --- > commission's > commission/ACSGD 23481a20074 > committer/S 23483c20076,20078 < commode/EISM --- > commode's > commode/EIS > commodification 23487c20082,20083 < common/UPRYTM --- > common's > common/UPRYT 23492c20088 < commonplace/SM --- > commonplace/MS 23495d20090 < commonsensical 23501d20095 < communality 23506,23507c20100,20101 < communicant/SM < communicate/XDSGNV --- > communicant/MS > communicate/GNVDSX 23509,23510c20103,20104 < communicative/P < communicator/MS --- > communicative/U > communicator/SM 23516d20109 < communitarian 23520d20112 < commutativity 23526c20118 < compaction/S --- > compaction 23529c20121 < companion/SMB --- > companion/SBM 23537,23538c20129 < comparative/SMY < comparator/S --- > comparative/MYS 23541c20132 < compartment/MS --- > compartment/SM 23548c20139 < compatibility/ISM --- > compatibility/IM 23558c20149 < compensate/DSGNX --- > compensate/DSXGN 23561d20151 < compensator 23570,23572c20160,20161 < competition/MS < competitive/UP < competitively --- > competition/SM > competitive/PY 23575,23577c20164,20166 < compilable/U < compilation/ASM < compile/BDRSZG --- > compilation/AM > compilations > compile/DRSZG 23585d20173 < complaining/UY 23590,23591c20178 < complement/MDGS < complementarity --- > complement/SGMD 23593c20180 < complete/PYTGNBXDRS --- > complete/PYTGNXDRS 23597c20184 < complex/TMRSY --- > complex/MSY 23608c20195 < compliment/MDSG --- > compliment/MDGS 23610c20197 < comply/XDSNG --- > comply/NDSXG 23618,23620c20205,20206 < composite/MYNSX < composition/CSM < compositional --- > composite/MYGNXPDS > composition/CM 23635c20221,20222 < compress/CGVDSM --- > compress's > compress/CGDS 23637,23638c20224 < compressibility < compressible/I --- > compressible 23640,23641d20225 < compressional < compressions 23644,23645c20228,20229 < compromise/DSMG < comptroller/SM --- > compromise/MGDS > comptroller/MS 23647c20231 < compulsive/PY --- > compulsive/YP 23651,23654c20235,20236 < compunction/MS < computability < computably < computation/MS --- > compunction/SM > computation/SM 23656c20238 < compute/ADSBG --- > compute/ADSG 23661a20244 > compère/DSG 23665c20248 < concatenate/DSGNX --- > concatenate/XDSGN 23676d20258 < conceivability/I 23680c20262 < concentrate/MGNDSX --- > concentrate/DSMGNX 23682c20264 < concentrator/S --- > concentric 23689c20271 < conceptualize/GDS --- > conceptualize/DSG 23694c20276,20277 < concert/ESDGM --- > concert's > concert/ESDG 23697c20280 < concertina/SMDG --- > concertina/SGMD 23699c20282 < concertmaster/SM --- > concertmaster/MS 23708d20290 < conciliar 23711c20293 < conciliator/MS --- > conciliator/SM 23719c20301 < conclusive/IPY --- > conclusive/IYP 23723c20305 < concomitant/SMY --- > concomitant/MYS 23725c20307 < concordance/MS --- > concordance/SM 23729c20311 < concrete/DSMYGNPX --- > concrete/DSPMYGNX 23738c20320 < concurrence/MS --- > concurrence/SM 23742,23744c20324,20326 < concussion/MS < condemn/SBDRZG < condemnation/SM --- > concussion/SM > condemn/SDRZG > condemnation/MS 23747c20329 < condensate/MNSX --- > condensate/MNXS 23755c20337,20338 < condition/AGSDM --- > condition's > condition/AGSD 23757d20339 < conditionality 23764,23765c20346,20347 < condominium/SM < condone/DSGB --- > condominium/MS > condone/DSG 23768c20350 < conduct/SMV --- > conduct/MDGV 23773c20355 < conductivity/SM --- > conductivity/M 23782c20364 < confabulate/XGNDS --- > confabulate/XDSGN 23784c20366 < confection/SMRZ --- > confection/SZMR 23787d20368 < confectionist 23792c20373 < conference/SMG --- > conference/MGS 23800c20381 < confessional/MS --- > confessional/SM 23812,23814c20393,20394 < config/MS < configuration/AS < configure/ABGDS --- > configuration/S > configure/B 23816c20396 < confinement/SM --- > confinement/MS 23818c20398 < confirmation/AMS --- > confirmation/ASM 23821c20401 < confiscate/GNXDS --- > confiscate/DSGNX 23825c20405 < conflagration/SM --- > conflagration/MS 23829,23830d20408 < conflicting/Y < conflictual 23833c20411 < confocal --- > conform/ZB 23835d20412 < conformal 23838d20414 < conformational 23842d20417 < confounded/Y 23846c20421,20422 < confuse/BRZ --- > confrère/SM > confuse/RZ 23858c20434 < conglomerate/XMGNDS --- > conglomerate/DSXMGN 23861c20437 < congratulate/DSXGN --- > congratulate/XGNDS 23864,23865c20440,20441 < congregant/SM < congregate/XDSGN --- > congregant/MS > congregate/GNDSX 23878,23879c20454 < congruence/SM < congruency --- > congruence/M 23881d20455 < congruential 23891d20464 < conjugacy 23896,23897c20469,20470 < conjunctiva/MS < conjunctive/MS --- > conjunctiva/SM > conjunctive/SM 23899c20472 < conjuration/SM --- > conjuration/MS 23903d20475 < conman 23907,23912c20479,20480 < connectedness < connecter/MS < connectible < connection/ESM < connectionless < connective/SM --- > connection/EMS > connective/MS 23917c20485 < conniption/SM --- > conniption/MS 23921,23922c20489 < connoisseur/MS < connoisseurship --- > connoisseur/SM 23937,23938c20504 < conscionable/U < conscious/UPY --- > conscious/UYP 23946a20513 > consensual 23949c20516 < consequence/MS --- > consequence/SM 23953c20520 < conservation/MS --- > conservation/M 23957c20524 < conservative/PMYS --- > conservative/MYS 23964c20531 < considerate/IYNP --- > considerate/IPYN 23966c20533 < consideration/IAM --- > consideration/AIM 23971c20538 < consignment/SM --- > consignment/MS 23978c20545 < consolation/SM --- > consolation/MS 23980,23981c20547 < consoled/U < consolidate/GNXDS --- > consolidate/XDSGN 23984c20550 < consolidator/SM --- > consolidator/MS 23986a20553 > consommé/M 23989d20555 < consonantal 23996c20562 < conspirator/SM --- > conspirator/MS 24004d20569 < consternating 24006c20571 < constipate/DSGN --- > constipate/GNDS 24009c20574 < constituent/MS --- > constituent/SM 24014d20578 < constitutionalists 24018,24020c20582,20584 < constraint/MS < constrict/SGVD < constriction/MS --- > constraint/SM > constrict/GVSD > constriction/SM 24023,24025c20587,20589 < construct/CADVGSM < constructable < construction/CASM --- > construct's > construct/CADVGS > construction/CAMS 24030,24032c20594 < constructivism < constructivist < constructor/SM --- > constructor/MS 24038c20600 < consult/AGD --- > consult/GSD 24041c20603 < consultation/SM --- > consultation/MS 24043,24044c20605 < consults < consumable/MS --- > consumable/SM 24049,24050c20610,20611 < consumerist/SM < consummate/YGNDSX --- > consumerist/MS > consummate/YGNXDS 24052c20613 < consumption/SM --- > consumption/M 24061d20621 < containable/U 24064c20624 < containerize/GDS --- > containerize/DSG 24070c20630 < contaminator/MS --- > contaminator/SM 24073c20633 < contemplate/XGNVDS --- > contemplate/DSGNV 24087c20647 < contention/MS --- > contention/SM 24106d20665 < continuable 24108,24109c20667,20668 < continuance/ESM < continuation/ESM --- > continuance/EMS > continuation/EMS 24117d20675 < contra/S 24118a20677 > contrabassoon/S 24126c20685 < contradict/DGS --- > contradict/SDG 24128d20686 < contradictorily 24130c20688 < contradistinction/SM --- > contradistinction/MS 24133c20691 < contraindicate/GNDSX --- > contraindicate/GNXDS 24137a20696,20697 > contrarian/SM > contrarianism 24142,24145c20702,20703 < contrary/SMP < contrast/MDGVS < contrasting/Y < contrasty --- > contrary/PSM > contrast/MDGS 24149c20707 < contribute/GNDX --- > contribute/XGND 24151c20709 < contributor/SM --- > contributor/MS 24154c20712 < contrivance/SM --- > contrivance/MS 24157c20715,20716 < control/CSM --- > control's > control/CS 24162c20721 < controversial/UY --- > controversial/Y 24164c20723 < controvert/DGS --- > controvert/DSG 24173,24174c20732,20733 < conurbation/SM < convalesce/GDS --- > conurbation/MS > convalesce/DSG 24177d20735 < convect/GVSD 24179a20738 > convective 24184a20744 > convenor/MS 24186,24187c20746,20747 < conventicle/SM < convention/MS --- > conventicle/MS > convention/SM 24189,24190d20748 < conventionalism < conventionalist 24194c20752 < convergence/SM --- > convergence/MS 24200d20757 < conversazione 24202c20759,20760 < convert/AGSDM --- > convert's > convert/AGSD 24210c20768 < convey/SBDRZG --- > convey/SBDG 24212d20769 < conveyer/M 24215c20772 < conviction/SM --- > conviction/MS 24224d20780 < convolve/D 24231c20787,20788 < cook/ADGSM --- > cook's > cook/ADGS 24237c20794 < cookie/SM --- > cookie/M 24254c20811 < cooperative/PSMY --- > cooperative/PMYS 24256,24257c20813,20814 < cooperator/MS < coordinate/MYGNDS --- > cooperator/SM > coordinate/DSMYGN 24260c20817 < coordinator/SM --- > coordinator/MS 24267c20824 < copier/M --- > copier/SM 24272d20828 < coplanar 24275c20831 < copperhead/MS --- > copperhead/SM 24278d20833 < coppice/DSMG 24281,24283d20835 < coprocessor/S < coprolite < coprophagous 24287c20839 < copulate/XGNVDS --- > copulate/GNVDS 24290,24291c20842,20843 < copulatory < copy/DRSMZGB --- > copy's > copy/ADSG 24297,24299c20849,20851 < copyleft/S < copyright/SGMDB < copywriter/SM --- > copyleft > copyright/GSMD > copywriter/MS 24306d20857 < coralline 24322c20873 < corespondent/SM --- > corespondent/MS 24325c20876,20877 < cork/UDGSM --- > cork's > cork/UDGS 24342d20893 < cornflake/S 24345c20896 < cornflower/MS --- > cornflower/SM 24366,24367c20917 < corporate/SN < corporately --- > corporate/XYN 24369d20918 < corporations 24371d20919 < corporatist 24388d20935 < correctable/U 24390c20937 < correction/MS --- > correction/SM 24392c20939 < corrective/MS --- > corrective/SM 24394,24395c20941,20942 < corrector/S < correlate/DSXMGNV --- > corrector > correlate/XDSMGNV 24398c20945 < correlative/SM --- > correlative/MS 24400c20947 < correspondence/MS --- > correspondence/SM 24405d20951 < corrigenda 24408c20954 < corroborate/GNVXDS --- > corroborate/GNVDSX 24419d20964 < corrupted/U 24423c20968 < corruption/SM --- > corruption/MS 24432,24433d20976 < corticosteroid/S < cortisol 24434a20978 > cortège/SM 24445d20988 < cosiness/M 24448c20991 < cosmetician/SM --- > cosmetician/MS 24452c20995 < cosmical/Y --- > cosmically 24455,24456c20998,20999 < cosmological/Y < cosmologist/MS --- > cosmological > cosmologist/SM 24459c21002 < cosmopolitan/SM --- > cosmopolitan/MS 24462,24463c21005,21006 < cosponsor/SGMD < cossacks --- > cosplay > cosponsor/GSMD 24467c21010 < cost/MYGSJ --- > cost/MDYGSJ 24471d21013 < costless 24490,24491c21032,21033 < cottonseed/SM < cottontail/SM --- > cottonseed/MS > cottontail/MS 24505a21048 > coulée/SM 24515,24516c21058 < count/ERBZGDMS < countability/E --- > count/EASMDG 24518c21060 < countably/U --- > countably 24521,24523c21063,21065 < countenance/EGDSM < counter/EM < counteract/GVSD --- > countenance/EMGDS > counter/EMS > counteract/SGVD 24526,24527c21068,21069 < counterattack/MDGS < counterbalance/DSMG --- > counterattack/GMDS > counterbalance/MGDS 24529c21071 < counterclaim/SGMD --- > counterclaim/GSMD 24534a21077 > counterfactual 24542c21085 < countermand/MDGS --- > countermand/GMDS 24545c21088 < counteroffensive/MS --- > counteroffensive/SM 24547,24548c21090,21092 < counterpane/MS < counterpart/MS --- > counterpane/SM > counterpart/SM > counterpetition 24552c21096 < counterrevolution/MS --- > counterrevolution/SM 24554c21098 < countersign/GMDS --- > countersign/GSMD 24556c21100 < countersink/GMS --- > countersink/GSM 24558d21101 < counterstrike 24561c21104 < countervail/GDS --- > countervail/GSD 24575c21118,21119 < coup/ASM --- > coup's > coup/AS 24577,24578c21121,21122 < couple/CUDSGM < coupler/S --- > couple's > couple/UCGSD 24605c21149 < cousin/SMY --- > cousin/SM 24608,24609d21151 < covalent/Y < covariance/S 24613,24614c21155,21157 < cover/AEUGDSM < coverage/MS --- > cover's > cover/AEUGDS > coverage/M 24616c21159,21160 < covering/MS --- > covering's > coverings 24618d21161 < coversheet 24639c21182 < cowl/MDGSJ --- > cowl/MGSJ 24677,24678c21220 < crack/SMDRYZGBJ < crackable/U --- > crack/SMDRYZGJ 24685d21226 < crackly/TR 24713c21254 < crank/SMDRTG --- > crank/SMDG 24724c21265 < crappie/RSMT --- > crappie/M 24726c21267 < crappy --- > crappy/RSPT 24728,24730c21269,21270 < crapshooter/SM < crash/MDRSZG < crashing/Y --- > crapshooter/MS > crash/MDSG 24744c21284 < crawlspace/MS --- > crawlspace/SM 24765,24769c21305,21306 < creased/U < creatable < create/KADSGNV < created/U < creation/ASMK --- > create/AKVNGSDX > creation/KAM 24780c21317 < credential/GSMD --- > credential/SGMD 24786d21322 < creditability 24788d21323 < credited/U 24807c21342 < crematorium/SM --- > crematorium/MS 24810c21345 < crenelate/GNXDS --- > crenelate/XGNDS 24849d21383 < criminalization/C 24851d21384 < criminological 24863c21396 < crippleware/S --- > crippleware 24872c21405 < crisscross/MDSG --- > crisscross/GMDS 24907c21440 < croquet/MDG --- > croquet/M 24910c21443,21444 < cross/AUGTSDM --- > cross's > cross/AUGTSD 24918,24920c21452,21454 < crossbreed/SMG < crosscheck/SGMD < crosscurrent/SM --- > crossbreed/SGM > crosscheck/SMDG > crosscurrent/MS 24925c21459 < crosshatch/DSG --- > crosshatch/GDS 24934d21467 < crosstalk 24937d21469 < crossways 24943,24944c21475 < crotchety/P < crotchless --- > crotchety 24954,24955c21485 < crowdfunded < crowdfunding --- > crowdfund/SDG 24957c21487 < crowfoot/M --- > crowfoot/SM 24960a21491 > croûton/MS 24962d21492 < cruciate 24964d21493 < crucifiable 24966c21495 < crucifixion/MS --- > crucifixion/SM 24974a21504 > crudités/M 24979,24980c21509,21510 < cruft/SDG < crufty/S --- > cruft/SD > crufty 24993c21523 < crunch/ZGMDRS --- > crunch/GMDRS 25003c21533 < crust/ISDGM --- > crust/SMDG 25015,25017c21545 < cryonic < cryonics < cryostat --- > cryonic/S 25019,25022c21547 < crypt/CSM < cryptanalysis < cryptanalyst < cryptanalytic --- > crypt/SM 25026,25028c21551 < cryptographer/MS < cryptographic < cryptographically --- > cryptographer/SM 25031d21553 < cryptology 25037d21558 < crystallographer/S 25039a21561 > crèche/MS 25044c21566 < cub/ZGSJMDR --- > cub/ZGSMDR 25049c21571 < cubical/Y --- > cubical 25051d21572 < cubing/GD 25062c21583 < cuddly/TRP --- > cuddly/TR 25066d21586 < cufflink/SM 25072c21592 < culminate/DSXGN --- > culminate/XDSGN 25083,25084c21603,21604 < cultivar/MS < cultivate/DSBXGN --- > cultivar/SM > cultivate/BDSGN 25093,25094c21613,21614 < cumber/ISDG < cumbersome/PY --- > cumber/SDG > cumbersome/P 25100d21619 < cumquat/MS 25115d21633 < cupidinously 25131c21649 < curatorships --- > curaçao 25138c21656,21657 < cure/KZGBDRSM --- > cure's > cure/KZGBDRS 25145d21663 < curial 25149c21667 < curious/RYTP --- > curious/YP 25152c21670,21671 < curl/UDGSM --- > curl's > curl/UDGS 25159d21677 < curlycue/MS 25163,25164c21681,21682 < current/FAYSM < curricle --- > current's > current/FSY 25170,25172c21688,21692 < curse/DSMGV < cursed/TRY < cursive/EAYM --- > curse's > curse/ADSGV > cursed/Y > cursive's > cursive/EAY 25179c21699 < curtailment/MS --- > curtailment/SM 25182d21701 < curtsey/MDGS 25186d21704 < curvacious 25189d21706 < curvilinear 25196c21713,21714 < cuss/FEGSDM --- > cuss's > cuss/EFGSD 25207,25209c21725,21727 < customhouse/MS < customization/MS < customize/DSGB --- > customhouse/SM > customization/M > customize/DSG 25216d21733 < cutesie 25221d21737 < cutlas/M 25231d21746 < cuttle 25239d21753 < cyanogen 25240a21755 > cyberbully/S 25241a21757 > cybercafé/S 25244a21761 > cybersex 25249d21765 < cycleway/S 25253d21768 < cycloid 25257c21772 < cyclopaedia/SM --- > cyclopaedia/MS 25262d21776 < cyder/SM 25265c21779 < cylindrical/Y --- > cylindrical 25272c21786 < cypher/MDSG --- > cypher/M 25275d21788 < cysteine/M 25278,25281c21791,21792 < cytochrome < cytokine/MS < cytological < cytologist/MS --- > cytokine/SM > cytologist/SM 25286d21796 < cytotoxic 25291,25292c21801,21802 < d'Arezzo < d'Estaing --- > d'Arezzo/M > d'Estaing/M 25310c21820 < dado/M --- > dado/SM 25341d21850 < dalesman 25351d21859 < damaging/Y 25360,25361c21868 < damned/TR < damning/Y --- > damned/T 25371d21877 < danceable 25382c21888 < dangerous/PY --- > dangerous/Y 25401,25402d21906 < darkish < darkly/TR 25420d21923 < databank/SM 25422,25423c21925,21927 < datasheet/MS < date/DRSBMZGV --- > datasheet/SM > datatype > date/DRSMZGV 25430c21934 < datum/MS --- > datum/M 25453d21956 < daysack 25468c21971 < dead/PXTMNRY --- > dead/XTMNRY 25480d21982 < deadweight/MS 25488c21990 < dealership/MS --- > dealership/SM 25506d22007 < deathly/RT 25522c22023 < debilitate/GNDS --- > debilitate/DSGN 25527d22027 < debonaire 25529a22030 > debridement 25535d22035 < debutant 25542c22042 < decaffeinate/GDS --- > decaffeinate/DSG 25546c22046 < decapitate/XDSGN --- > decapitate/XGNDS 25554c22054 < deceitful/PY --- > deceitful/YP 25559c22059 < decelerate/XDSGN --- > decelerate/GNDS 25561c22061 < decelerator/MS --- > decelerator/SM 25564c22064 < decent/ITRY --- > decent/IY 25568d22067 < decertify/DSGNX 25570d22068 < decidability/U 25575d22072 < deciles 25579d22075 < decimalize 25583,25584c22079 < decipherable/IU < decipherment/S --- > decipherable/UI 25593c22088 < declamation/SM --- > declamation/MS 25595c22090 < declaration/SM --- > declaration/MS 25602c22097 < declination/MS --- > declination/M 25606,25607c22101 < deco < decolletage/MS --- > decolletage/SM 25609d22102 < decompose/B 25611d22103 < deconstruct/V 25613,25614d22104 < deconvolution < deconvolve 25617d22106 < decorated/U 25631,25632c22120,22121 < decrement/GDS < decremental --- > decremented > decrements 25637d22125 < decrypt/GD 25639d22126 < decustomised 25645a22133 > deduct/GVD 25654d22141 < deepish 25656c22143 < deer/SM --- > deer/M 25659d22145 < deerstalking 25663,25664c22149 < defaecate < defalcate/XDSGN --- > defalcate/DSXGN 25680c22165 < defective/MYSP --- > defective/MPYS 25685c22170 < defenestrate/NDX --- > defenestration/S 25687c22172 < defenseless/PY --- > defenseless/YP 25689d22173 < defensibility 25701a22186 > defibrillation 25706d22190 < defiled/U 25709,25710c22193 < definably/I < define/AGDRS --- > define/AGDS 25715,25718c22198,22201 < definition/ASM < definitional < definitive/PY < deflate/GNBDS --- > definition/AM > definitions > definitive/Y > deflate/GNDS 25729d22211 < deform/B 25741,25743c22223,22224 < degauss/GD < degeneracy/SM < degenerate/MV --- > degeneracy/M > degenerate/MVX 25745d22225 < degrease 25750d22229 < deictic 25765,25766c22244,22245 < delete/BXGNDRS < deleterious/Y --- > delete/XGNDS > deleterious 25771c22250 < deliberate/YVPX --- > deliberate/XYVP 25777c22256 < delicious/YP --- > delicious/PY 25781,25782c22260,22261 < deliminator/S < delineate/GNDSX --- > deliminator > delineate/GNXDS 25786c22265 < deliquesce/GDS --- > deliquesce/DSG 25788c22267 < delirious/PY --- > delirious/YP 25792c22271,22272 < deliverable/US --- > deliverable/S > deliverables/U 25799d22278 < deltoids 25808d22286 < demagog/MS 25816c22294 < demarcate/XDSGN --- > demarcate/DSGNX 25834c22312 < democratically/U --- > democratically 25836c22314 < democratize/DSG --- > democratize/GDS 25838,25840c22316,22317 < demodulator < demographer/MS < demographic/MS --- > demographer/SM > demographic/SM 25844c22321 < demolish/DRSG --- > demolish/DSG 25857c22334 < demonstrate/GNVXDS --- > demonstrate/XGNVDS 25859c22336 < demonstrative/SMYP --- > demonstrative/MYSP 25861c22338 < demonstrator/SM --- > demonstrator/MS 25864c22341 < demount/BG --- > demount 25874a22352 > denaturation 25877,25878d22354 < dendrochronological < dendrochronology 25879a22356 > deniability 25883c22360 < denigrate/DSXGN --- > denigrate/DSGN 25885a22363 > denitrification 25888d22365 < denotational 25890,25891c22367,22368 < denouement/SM < denounce/DSGL --- > denouement/MS > denounce/LDSG 25908c22385 < denunciation/MS --- > denunciation/SM 25923d22399 < dependance/M 25938c22414 < deportation/SM --- > deportation/MS 25942d22417 < depositary 25947c22422 < deprecate/GNXDS --- > deprecate/GNDS 25953,25954c22428,22429 < depredation/MS < depressant/MS --- > depredation/SM > depressant/SM 25956,25957c22431,22432 < depression/MS < depressive/MS --- > depression/SM > depressive/SM 25961d22435 < deprogram/S 25965c22439 < deputation/SM --- > deputation/MS 25969,25971c22443,22444 < dequeue/DSG < derailleur/MS < derailment/MS --- > derailleur/SM > derailment/SM 25975,25976c22448,22449 < dereliction/MS < deride/D --- > dereliction/M > deride/GDS 25982c22455 < derivative/MYS --- > derivative/MS 25987c22460 < dermatologist/MS --- > dermatologist/SM 25996a22470 > derrière/SM 25999c22473 < desalinate/DSGN --- > desalinate/GNDS 26005,26007c22479,22480 < descendant/SM < descendent/SM < descender/S --- > descendant/MS > descender 26009c22482,22483 < describer/MS --- > describe/BZGDR > describer/M 26011c22485 < descriptive/YP --- > descriptive/PY 26013d22486 < descriptivism 26032,26033c22505 < design/MRZB < designate/XDSGN --- > designate/DSGNX 26036,26038d22507 < designational < designator/S < designed/Y 26040d22508 < desirabilia 26051c22519 < desolate/DSPYGN --- > desolate/PDSYGN 26054d22521 < desorption 26059c22526 < desperate/PYN --- > desperate/YNP 26067d22533 < despond 26077,26079c22543 < dessicated < dessication < destination/MS --- > destination/SM 26084c22548 < destroy/SBZGDR --- > destroy/SZGDR 26094c22558 < desultory/P --- > desultory 26096c22560 < detachment/SM --- > detachment/MS 26101d22564 < detectability/U 26103d22565 < detectably/U 26105,26106c22567 < detectible < detection/SM --- > detection/M 26117d22577 < determinacy/I 26119c22579 < determinate/YV --- > determinate 26125d22584 < determinist 26127d22585 < deterministically 26132d22589 < detest/RZB 26135c22592 < dethrone/GL --- > dethrone/DSLG 26138d22594 < detonated/U 26150d22605 < deuteron 26177c22632 < devoted/PY --- > devoted/Y 26181c22636 < devour/SDRZG --- > devour/SDG 26184c22639 < dew/SM --- > dew/M 26195c22650 < dextrous/Y --- > dharma 26202,26203d22656 < diabolism < diachronic 26205c22658 < diacritical/S --- > diacritical 26209,26211c22662 < diagnosable/U < diagnose/DSBG < diagnosed/U --- > diagnose/DSG 26215c22666 < diagnostician/MS --- > diagnostician/SM 26218d22668 < diagonalize/DSG 26228c22678 < dialectical/Y --- > dialectical 26230d22679 < dialer 26232,26233c22681,22683 < dialog/SMGD < dialogue/SMRGD --- > dialog/SDG > dialogue/DRSMG > dialyses 26237a22688 > diamanté 26242c22693 < diamondback/SM --- > diamondback/MS 26263a22715 > dices/I 26265d22716 < dichloride 26274c22725 < dicky/RMT --- > dicky/SM 26298c22749 < dido/M --- > dido/MS 26303d22753 < dieing 26317c22767,22768 < difference/MGS --- > difference/IM > differences 26319,26322c22770,22771 < differentiability < differentiable < differential/MYS < differentiate/DSGNX --- > differential/SM > differentiate/DSGN 26325d22773 < differentiators 26332c22780 < diffuse/DRSYZGNVP --- > diffuse/DSYGNVP 26335,26336d22782 < diffusional < diffusivity 26348a22795 > digicam/S 26353c22800 < digitize/ZGDRS --- > digitize/GDS 26361,26362c22808 < digression/SM < dihedral --- > digression/MS 26382,26383c22828 < dillydally/GDS < diluent --- > dillydally/DSG 26387c22832 < dim/ZPSRY --- > dim/PSRY 26389,26391c22834,22835 < dimension/SGMD < dimensional/Y < dimensionality --- > dimension/SM > dimensional 26393c22837 < diminish/GBDS --- > diminish/GDS 26395a22840 > diminuendoes 26404,26405d22848 < dimorphic < dimorphism 26407c22850 < dimply/RT --- > dimply 26422c22865 < dingo/SM --- > dingo/M 26426c22869 < dink/RT --- > dink/R 26434c22877 < dint/MS --- > dint/M 26438d22880 < diopter/S 26445d22886 < diplexers 26453c22894,22895 < diplomatist/SM --- > diplomatist/MS > diplopia 26466c22908 < dire/YTPR --- > dire/YTR 26468d22909 < directed/U 26470,26472c22911,22912 < direction/ISM < directional/Y < directionality --- > direction/IM > directional 26473a22914 > directions 26495,26496c22936 < disaggregation < disambiguate/DGN --- > disambiguate/N 26499d22938 < disassemble/R 26505,26506c22944,22945 < disburse/LDSG < disbursement/SM --- > disburse/DSGL > disbursement/MS 26516c22955 < disciplinarian/MS --- > disciplinarian/SM 26520c22959 < disclose/DSG --- > disclose/DSBG 26527c22966 < discomfit/GD --- > discomfit/DG 26529c22968 < discommode/GD --- > discommode/DG 26533c22972 < disconsolate/YN --- > disconsolate/Y 26536c22975 < discotheque/MS --- > discotheque/SM 26538c22977 < discouragement/MS --- > discouragement/SM 26541d22979 < discoverable 26549c22987 < discrete/YNP --- > discrete/PYN 26553,26555c22991,22992 < discriminant/S < discriminate/DSGNV < discriminated/U --- > discriminant > discriminate/GNDS 26562,26565c22999,23000 < discuss/B < discussant/MS < discussed/A < discussion/MS --- > discussant/SM > discussion/SM 26568c23003 < disembowel/GLSD --- > disembowel/SDLG 26570c23005 < disfigurement/MS --- > disfigurement/SM 26573c23008 < disgruntle/LDSG --- > disgruntle/LGDS 26575a23011 > disguised/U 26584c23020 < dishevel/DGSL --- > dishevel/DGLS 26590c23026 < dishwasher/SM --- > dishwasher/MS 26593c23029 < disillusion/DGL --- > disillusion/GLD 26595c23031 < disinfectant/SM --- > disinfectant/MS 26596a23033 > disinterested/PY 26598,26600c23035 < disinvest < disjoint/P < disjointed/PY --- > disjointed/YP 26602d23036 < disjunction/S 26607d23040 < dislike/DSMG 26609c23042 < dismal/RYT --- > dismal/Y 26615d23047 < dismissible 26619c23051 < disparage/LDSG --- > disparage/DSGL 26632,26633c23064 < dispersant < disperse/XZGNVDRS --- > disperse/GNDS 26635d23065 < dispersive/Y 26637,26639d23066 < dispirited/Y < displace/R < displayed/AU 26642a23070 > disposed/I 26645a23074,23075 > disproportional > disprove/B 26649c23079 < disputation/MS --- > disputation/SM 26655c23085 < disquisition/SM --- > disquisition/MS 26662,26663d23091 < disruptor < diss/DSG 26664a23093 > dissed 26668c23097 < disseminate/DSGN --- > disseminate/GNDS 26670c23099 < dissension/MS --- > dissension/SM 26674c23103 < dissertation/MS --- > dissertation/SM 26679,26680c23108,23109 < dissipate/GNVDS < dissipated/U --- > dissing > dissipate/GNDS 26682c23111 < dissociate/GNVDS --- > dissociate/GNDS 26684d23112 < dissociative/Y 26700,26701c23128,23129 < distention/MS < distil/S --- > distemper/M > distention/SM 26708c23136 < distinctive/PY --- > distinctive/YP 26713d23140 < distinguishably/I 26716d23142 < distorted/U 26718,26719c23144,23145 < distracted/YP < distracting/Y --- > distract/DG > distracted/Y 26726c23152 < distribute/AGNVDSB --- > distribute/AGNVDS 26732,26733c23158,23159 < distributivity < distributor/SM --- > distributor's > distributor/AS 26735c23161,23162 < district/ASM --- > district's > district/AS 26741d23167 < disulphide 26744d23169 < disyllable 26749c23174 < ditsy/RT --- > ditsy 26750a23176 > dittoes 26753,26754c23179 < ditzy/RT < diuresis --- > ditzy/R 26769c23194 < diversify/NGDS --- > diversify/GNDS 26776c23201 < divestiture/SM --- > divestiture/MS 26796c23221,23222 < divorcement/SM --- > divorcement/MS > divorcée/MS 26805d23230 < djellabah/M 26807,26808c23232,23233 < djinn/M < do/SJRHZG --- > djinn > do/SJMRHZG 26814a23240 > dobro 26823c23249 < dockworker/SM --- > dockworker/MS 26829c23255 < doctrinal/Y --- > doctrinal 26839,26841d23264 < dodecahedra < dodecahedral < dodecahedron 26872a23296 > doglike 26877a23302 > dognapper 26884d23308 < dogy/SM 26889c23313,23314 < dole/FGDSM --- > dole's > dole/FGDS 26891,26892d23315 < dolefuller < dolefullest 26894d23316 < dolerite 26912c23334 < domesticate/GNDS --- > domesticate/DSGN 26935c23357 < done/AU --- > done/FAU 26942c23364 < donnybrook/SM --- > donnybrook/MS 26944c23366 < donuts/S --- > donuts 26957c23379,23380 < door/ISM --- > door's > door/IS 26959d23381 < doorhandles 26967d23388 < doornail 26980a23402,23403 > dopier > dopiest 26984c23407 < dopy/RTP --- > doppelgänger/S 27000c23423 < doss/DRZG --- > doss/DRSZG 27006a23430 > dotcom/SM 27012,27013c23436,23438 < dotty/RPT < double/ADSGM --- > dotty/RT > double's > double/ADSG 27015d23439 < doubler 27018,27019d23441 < doubletalk < doublethink 27024c23446 < doubtful/YP --- > doubtful/PY 27031d23452 < doughs 27053a23475 > downfield 27055c23477 < downhearted/YP --- > downhearted/PY 27058,27060c23480 < downland/S < download/MDSG < downloadable --- > download/MDBSG 27062d23481 < downpipes 27084c23503 < downward/YS --- > downward/S 27097a23517 > dpi 27105,27106c23525,23526 < draft/ASDGM < draftboard --- > draft's > draft/ASDG 27129c23549 < drainboard/MS --- > drainboard/SM 27139c23559 < dramatization/MS --- > dramatization/SM 27149,27152c23569,23570 < draughtboards < draughtswoman < draughtswomen < draw/MRZGSBJ --- > draughtboard/S > draw/MRZGSJ 27155d23572 < drawcord 27159c23576 < drawn/AI --- > drawn/A 27166d23582 < dreadnaught/SM 27177c23593 < dreamworld/MS --- > dreamworld/SM 27206c23622 < drillmaster/MS --- > drillmaster/SM 27215c23631 < drive/RSMZGBJ --- > drive/RSMZGJ 27219a23636 > driveshaft/SM 27222c23639 < drizzly/TR --- > drizzly 27234d23650 < drooping/Y 27248,27250c23664 < drouth/M < drouths < drove/RSMZG --- > drove/RSMZ 27266c23680 < druggie/M --- > druggie/SM 27269c23683 < druggy/SM --- > druggy 27289d23702 < dryish 27292d23704 < drystone 27294c23706 < dual/YS --- > dual 27296,27298c23708 < dualist < dualistic < duality/SM --- > duality/M 27311c23721 < duck/JMDGS --- > duck/MDGS 27316d23725 < duckpond 27319c23728,23729 < duct/CIFDGM --- > duct's/K > duct/CKIFS 27321a23732 > ducting 27323d23733 < ducts/IKC 27327c23737,23738 < due/ISM --- > due's > due/IS 27334d23744 < duffel 27347d23756 < dulness/M 27357d23765 < dumfound/GDS 27361a23770 > dumpsite/S 27366c23775 < dunderhead/SM --- > dunderhead/MS 27383d23791 < duologue 27389,27390c23797,23798 < duplicability < duplicate/AGNDSM --- > duplicate's > duplicate/AGNDS 27392d23799 < duplications 27395c23802 < duplicity/SM --- > duplicity/M 27397c23804 < durable/S --- > durable 27400c23807 < duration/MS --- > duration/M 27412d23818 < dustcover 27414d23819 < dustily 27429c23834 < dwarf/STGMDR --- > dwarf/SGMD 27438d23842 < dyad 27445c23849 < dyestuff/SM --- > dyestuff/M 27457d23860 < dyne 27459c23862 < dysfunction/SM --- > dysfunction/MS 27464d23866 < dyslexically 27466a23869 > dysphagia 27468c23871 < dystrophy --- > dystonia 27469a23873,23880 > débridement > débutante/SM > décolletage/SM > décolleté > démodé > dérailleur/MS > déshabillé/M > détente/M 27475a23887 > eMusic/M 27483a23896 > earbud/SM 27505c23918,23919 < earth/UDYGM --- > earth's > earth/UDYG 27527c23941 < east/MG --- > east/M 27544c23958 < eavesdropper/MS --- > eavesdropper/SM 27554a23969 > ecclesial 27559c23974,23975 < echo/ADGM --- > echo's > echo/ADG 27579c23995 < econometric/S --- > econometric 27584d23999 < economization 27588a24004,24005 > ecotourism/M > ecotourist/MS 27593,27594d24009 < ectopic < ectoplasm 27600a24016 > edamame 27605d24020 < edgeless 27622c24037,24038 < edit/ADGSM --- > edit's > edit/ADGS 27628,27629c24044,24045 < editorialize/GDS < editorship/MS --- > editorialize/DSG > editorship/M 27642d24057 < eduction 27646c24061 < eerie --- > eerie/RT 27649d24063 < eery/RTP 27654c24068 < effective/IYP --- > effective/IPY 27656d24069 < effector/S 27658c24071 < effectuate/GDS --- > effectuate/DSG 27670c24083 < efficiency/ISM --- > efficiency/IM 27680c24093 < effortless/PY --- > effortless/YP 27699d24111 < egis/M 27722,27724d24133 < eidetic < eigenfunction/S < eigenstate/S 27730d24138 < eightfold 27735d24142 < eightpence 27744d24150 < ejecta 27748c24154 < elaborate/PYGNDSX --- > elaborate/YGNDSPX 27757c24163 < elasticity/SM --- > elasticity/M 27759d24164 < elastodynamics 27767c24172 < elderflower --- > eldercare/M 27769,27772c24174,24177 < elect/ASDGVM < electability < electable/U < elected/U --- > eldritch > elect's > elect/ASDGV > electable 27774c24179 < electioneer/DSG --- > electioneer/DGS 27785,27786c24190,24191 < electrify/NZGDRS < electrocardiogram/SM --- > electrify/ZGNDRS > electrocardiogram/MS 27790,27791c24195 < electrochemical/Y < electrocute/GNDSX --- > electrocute/DSXGN 27794c24198 < electrodynamic/S --- > electrodynamics 27801d24204 < electroluminescent 27805,27806d24207 < electrolytically < electrolyze/GD 27811,27812d24211 < electromechanical < electromechanics 27815d24213 < electronegative 27816a24215 > electronica/M 27819d24217 < electrophoresis 27836d24233 < elementarily 27858,27859c24255 < eligibly/I < eliminate/DSXGN --- > eliminate/XDSGN 27888c24284 < elucidate/XDSGN --- > elucidate/DSGNX 27893,27894d24288 < eluted < elven 27897,27898c24291,24293 < elvish/S < em/SM --- > elvish > em's > em/S 27904c24299 < emancipate/GNDS --- > emancipate/DSGN 27906,27908c24301,24302 < emancipator/SM < emancipatory < emasculate/DSGN --- > emancipator/MS > emasculate/GNDS 27919c24313 < embarrass/LGDS --- > embarrass/GLDS 27926d24319 < embeddable 27928,27929c24321,24322 < embedding/S < embellish/LDSG --- > embedding > embellish/LGDS 27935c24328 < embitter/GDLS --- > embitter/GLDS 27943d24335 < embodiments 27947c24339 < embosom --- > embolization 27963c24355 < embryologist/SM --- > embryologist/MS 27969c24361 < emendation/SM --- > emendation/MS 27990d24381 < emissivity/S 27994a24386,24387 > emo/SM > emoji 28002,28003c24395 < emotionality < emotionalize/DSG --- > emotionalize/GDS 28008,28009d24399 < empathetical < empathic 28024,28025c24414,24416 < emplacement/MS < employ/ADGLSM --- > emplacement/SM > employ's > employ/ADGLS 28027d24417 < employe/RSMZB 28029c24419 < employer/M --- > employer/SM 28060c24450 < encapsulate/GNXDS --- > encapsulate/XGNDS 28066d24455 < encephalopathy 28076,28077c24465,24466 < encircle/LDSG < encirclement/SM --- > encircle/DSGL > encirclement/M 28089c24478 < encourage/DRSGL --- > encourage/DSLG 28092c24481 < encroach/GDSL --- > encroach/GLDS 28095c24484 < encrustation/MS --- > encrustation/SM 28097d24485 < encrypted/U 28101c24489 < encumbrance/SM --- > encumbrance/MS 28105d24492 < encyclopaedic 28124a24512 > endocarditis 28129,28131c24517,24520 < endomorphism/S < endoplasmic < endorphin/MS --- > endometrial > endometriosis > endometrium > endorphin/M 28133c24522 < endorsement/SM --- > endorsement/MS 28137a24527 > endothelial 28141d24530 < endpapers 28144d24532 < endungeoned 28149d24536 < endwise 28152c24539 < energetic/S --- > energetic 28163,28164c24550 < enforce/AGDS < enforceability --- > enforce/LZGDRS 28167,28169c24553,24555 < enforcement/MS < enforcer/MS < enfranchise/ELGDS --- > enforcement/M > enforcer/M > enfranchise/EGDSL 28171d24556 < enfranchiser 28173,28174c24558 < engaged/U < engagement/ESM --- > engagement/EMS 28177c24561 < engine/DSM --- > engine/SM 28182d24565 < engrained 28192d24574 < enhanceable 28194d24575 < enharmonic 28198d24578 < enjambement/SM 28202d24581 < enjoyability 28209c24588 < enlighten/LSGD --- > enlighten/SGLD 28211d24589 < enlightening/U 28226c24604 < enormous/YP --- > enormous/PY 28237d24614 < enrobed 28242c24619 < enshrine/GDSL --- > enshrine/GLDS 28256c24633 < entangle/EDSGL --- > entangle/EDSLG 28259d24635 < entangler 28262c24638 < entered/U --- > enteric 28264c24640 < enterprise/SMG --- > enterprise/MGS 28266c24642 < entertain/DRSZGL --- > entertain/ZGDRSL 28270d24645 < enthalpy/S 28273c24648 < enthrone/LGDS --- > enthrone/GDSL 28279c24654 < enthusiastically/U --- > enthusiastically 28291c24666 < entomologist/SM --- > entomologist/MS 28296,28297c24671 < entrain/DL < entrance/DSLMG --- > entrance/LDSMG 28311c24685 < entrepreneur/MS --- > entrepreneur/SM 28314d24687 < entropic 28319a24693 > entrée/MS 28338d24711 < environ/SL 28342c24715 < environmentalist/MS --- > environmentalist/SM 28352a24726,24727 > eosinophil/S > eosinophilic 28354d24728 < epaulette/MS 28359d24732 < ephemeris 28361d24733 < epically 28365,28366d24736 < epicycles < epicycloid 28370c24740 < epidemiologist/MS --- > epidemiologist/SM 28380d24749 < epigraphical 28385d24753 < epilog/MS 28387d24754 < epinephrin/M 28390,28391d24756 < epiphenomena < epiphenomenon 28394d24758 < episcopalian 28406,28407d24769 < epitaxial < epitaxy 28411d24772 < epithetic 28424c24785 < equality/ISM --- > equality/IM 28437d24797 < equiangular 28439,28441c24799 < equilateral/MS < equilibrating < equilibration --- > equilateral/SM 28448,28449c24806 < equipartition < equipment/MS --- > equipment/M 28458c24815 < equivalence/SM --- > equivalence/MS 28463c24820 < equivocate/XGNDS --- > equivocate/GNXDS 28465,28466c24822,24823 < equivocator/MS < er --- > equivocator/SM > er/C 28486d24842 < ergodic 28490d24845 < ergophobia 28498d24852 < erosional 28504d24857 < erotics/S 28524c24877,24878 < erythrocyte/MS --- > erythrocyte/SM > erythromycin 28530d24883 < escalop/GDS 28535c24888 < escapement/MS --- > escapement/SM 28542c24895 < escarpment/SM --- > escarpment/MS 28548d24900 < escorted/U 28552c24904 < escutcheon/MS --- > escutcheon/SM 28555c24907 < esophagus/M --- > esophagus/MS 28557d24908 < esoterica 28560c24911 < espadrille/SM --- > espadrille/MS 28576d24926 < essentialist 28578,28579c24928 < establish/EASDGL < established/U --- > establish/AESDGL 28585d24933 < esthete/SM 28587,28588d24934 < esthetically < esthetics/M 28595c24941 < estrangement/SM --- > estrangement/MS 28599d24944 < estuarine 28613d24957 < etherized 28616d24959 < ethicist 28628c24971 < ethnologist/MS --- > ethnologist/SM 28653d24995 < eukaryote 28665d25006 < euphonium/S 28680c25021 < evade/DRSZGB --- > evade/DRSZG 28682d25022 < evaluable 28684d25023 < evaluated/U 28686,28687d25024 < evaluational < evaluator/S 28709c25046 < event/SMG --- > event/SM 28719,28720c25056 < everlasting/SMY < everliving --- > everlasting/MYS 28725d25060 < everyman 28734d25068 < evidential 28747d25080 < evolute/NX 28749d25081 < evolutionarily 28751,28752c25083 < evolutionism < evolutionist/MS --- > evolutionist/SM 28760c25091 < exact/SPDRYTGB --- > exact/SBPDRYTG 28762,28763c25093,25094 < exacting/YP < exaction/MS --- > exacting/PY > exaction/SM 28767c25098 < exaggerate/DSGNX --- > exaggerate/XDSGN 28770c25101 < exaggerator/SM --- > exaggerator/MS 28774d25104 < examinable 28777,28778d25106 < examined/U < examinees 28799c25127 < exception/SMB --- > exception/BSM 28801a25130 > exceptionalism 28805c25134 < exchange/DRSMZG --- > exchange/DSMG 28812c25141 < excitation/SM --- > excitation/M 28818,28819c25147 < exciton < excl/S --- > excl 28821c25149 < exclamation/MS --- > exclamation/SM 28826c25154 < exclusive/MYPS --- > exclusive/PMYS 28829c25157 < excommunicate/GNXDS --- > excommunicate/GNDSX 28831c25159 < excoriate/DSXGN --- > excoriate/DSGNX 28842d25169 < excruciation 28847c25174 < excursionist/SM --- > excursionist/MS 28855,28856d25181 < execked < execking 28862c25187 < execution/MRZ --- > execution/ZMR 28875c25200 < exemplify/XGDSN --- > exemplify/GDSXN 28878c25203 < exercise/DRSBMZG --- > exercise/DRSMZG 28892c25217 < exhibition/ZMRS --- > exhibition/MS 28896c25221 < exhilarate/GNDS --- > exhilarate/DSGN 28899c25224 < exhortation/SM --- > exhortation/MS 28913,28914c25238 < existentialist/SM < existentialistic --- > existentialist/MS 28917d25240 < exocrine 28922a25246 > exoplanet/MS 28928,28929c25252 < exorcize/DSG < exoskeleton/MS --- > exoskeleton/SM 28932d25254 < exothermically 28938,28940c25260 < expand/BGSDR < expandability < expanded/U --- > expand/BGSD 28947c25267 < expansive/PY --- > expansive/YP 28952c25272 < expatriate/MGNDS --- > expatriate/DSMGN 28955c25275 < expectancy/SM --- > expectancy/M 28957,28960c25277,25279 < expectation/MS < expectational < expectorant/MS < expectorate/GNDS --- > expectation/SM > expectorant/SM > expectorate/DSGN 28971c25290 < expeditious/YP --- > expeditious/PY 28973d25291 < expeditor/SM 28979c25297 < expenditure/MS --- > expenditure/SM 28981c25299 < expensive/IPY --- > expensive/IYP 28983c25301 < experience/IDM --- > experience/IMD 28987c25305 < experiment/ZGSMDR --- > experiment/MDRSZG 28990d25307 < experimentalist/S 28995d25311 < expertize 29001d25316 < expiratory 29006c25321 < explainable/U --- > explainable 29012c25327 < explicate/XGNVDS --- > explicate/XGNDS 29016,29017c25331 < explode/ZGDRS < exploded/U --- > explode/GDS 29019c25333 < exploitation/MS --- > exploitation/M 29025c25339 < explore/BZGDRS --- > explore/ZGDRS 29029c25343 < explosive/SMYP --- > explosive/SPMY 29036d25349 < exportability 29052c25365 < expression/MS --- > expression/SM 29057c25370 < expressive/YP --- > expressive/PY 29059,29060c25372,25373 < expressway/MS < expropriate/XGNDS --- > expressway/SM > expropriate/GNXDS 29062c25375 < expropriator/MS --- > expropriator/SM 29065c25378 < expurgate/XDSGN --- > expurgate/DSGNX 29072c25385 < extemporaneous/YP --- > extemporaneous/PY 29078d25390 < extendability 29081,29082c25393 < extensibility < extensible/I --- > extensible 29084c25395 < extensional/Y --- > extensional 29087d25397 < extensors 29092c25402 < exterminate/GNDSX --- > exterminate/DSXGN 29094c25404 < exterminator/SM --- > exterminator/MS 29097c25407 < externalize/GDS --- > externalize/DSG 29100c25410 < extinguish/BZGDRS --- > extinguish/ZGBDRS 29106c25416,25417 < extoll/SGD --- > extolled > extolling 29108c25419 < extortion/ZMR --- > extortion/MRZ 29111c25422 < extortionist/SM --- > extortionist/MS 29114,29115c25425,25426 < extract/BMDGVS < extraction/MS --- > extract/MDGS > extraction/SM 29118c25429 < extradite/GNDSBX --- > extradite/GNBXDS 29120d25430 < extragalactic 29123d25432 < extralinguistic 29130c25439 < extrapolate/GNXDS --- > extrapolate/XGNDS 29133,29134c25442 < extrasolar < extraterrestrial/SM --- > extraterrestrial/MS 29137c25445 < extravagance/SM --- > extravagance/MS 29139c25447 < extravaganza/SM --- > extravaganza/MS 29141,29143d25448 < extravert/MS < extrema < extremal 29161d25465 < exudate/N 29167d25470 < exulting/Y 29170c25473 < exurbanite/MS --- > exurbanite/SM 29177a25481 > eyeing 29186d25489 < eyeshadow 29194,29195d25496 < eyrie/M < eyry/SM 29201c25502 < fabricate/DSXGN --- > fabricate/DSGNX 29203,29204c25504 < fabricator/MS < fabulists --- > fabricator/SM 29207c25507,25508 < face/ACSDGM --- > face's > face/ACSDG 29212d25512 < faceplate 29218c25518 < facilitate/GNVDS --- > facilitate/GNDS 29220c25520 < facilitator/SM --- > facilitator/MS 29232c25532,25533 < factor/SMDG --- > factor's > factor/ASDG 29234,29235c25535 < factorisable < factorization/S --- > factorization 29246d25545 < fadeout 29248,29249c25547 < faerie/M < faery/SM --- > faerie/SM 29256d25553 < fagoting/M 29267c25564 < fairground/SM --- > fairground/MS 29269,29270d25565 < fairings/S < fairish 29275d25569 < fairytale 29277c25571,25572 < faithful/UPYM --- > faithful's > faithful/UPY 29291c25586 < fall/MNRZGS --- > fall/MNGS 29300d25594 < fallopian 29308,29309c25602 < falsifiability < falsifiable/U --- > falsifiable 29312c25605 < falsify/DRSZGXN --- > falsify/DRSZGNX 29316c25609,25610 < fame/DM --- > fame's > fame/D 29319d25612 < familiarities 29330a25624 > fanboy/SM 29333c25627 < fanciful/PY --- > fanciful/YP 29339a25634 > fandom 29356c25651 < faradize/DSG --- > faradize/DG 29388c25683 < fascinate/XGNDS --- > fascinate/GNDSX 29397a25693 > fashionista/MS 29404c25700 < fastidious/YP --- > fastidious/PY 29419d25714 < fatheaded/P 29426d25720 < fathomed/U 29429d25722 < fatigued/U 29433d25725 < fatted 29445c25737 < faultfinder/MS --- > faultfinder/SM 29449c25741 < faultless/YP --- > faultless/PY 29461d25752 < favored/U 29466d25756 < fawning/Y 29470a25761 > faïence/M 29474,29475d25764 < fearfuller < fearfullest 29479c25768 < fearsome/YP --- > fearsome 29482c25771 < feasibly/U --- > feasibly 29489d25777 < featherlight 29521,29522d25808 < feedstock < feedstuffs 29532d25817 < felafel/S 29534c25819 < felicitate/XGNDS --- > felicitate/GNXDS 29545c25830 < fellowship/SM --- > fellowship/MS 29562,29563d25846 < fenced/U < fencepost 29569d25851 < fenland 29576d25857 < fermion/S 29580c25861 < ferocious/YP --- > ferocious/PY 29585d25865 < ferrite 29619d25898 < fetich/MS 29627c25906,25907 < fetter/USGDM --- > fetter's > fetter/USGD 29647c25927,25929 < fiasco/M --- > fiancé/SM > fiancée/MS > fiasco/SM 29654c25936 < fiber/MD --- > fiber/M 29662d25943 < fibroblast/S 29669d25949 < fices 29676,29677c25956,25957 < fictionalization/MS < fictionalize/GDS --- > fictionalization/SM > fictionalize/DSG 29681c25961 < fiddle/DRSJMZG --- > fiddle/DRSMZG 29698c25978 < fieldwork/ZMR --- > fieldwork/MRZ 29704d25983 < fierily 29718c25997 < fig/SLM --- > fig/FSM 29724d26002 < figural 29727c26005,26006 < figure/FEGSDM --- > figure's > figure/EFGSD 29731d26009 < filamentary 29735,29738c26013,26017 < file/CAKGDSM < filer/CSM < filesystem/MS < filet/GSMD --- > file/KCSRDGZM > filename/S > filer/KCM > filesystem/SM > filet 29740c26019 < filibuster/ZGSMDR --- > filibuster/MDRSZG 29744,29745c26023,26026 < filing/SM < fill/AIDGSM --- > filing's > filings > fill's > fill/AIDGS 29766,29767c26047,26048 < filtrable < filtrate/IGNDSM --- > filtrate's > filtrate/IGNDS 29778,29780c26059,26061 < finance/ADSGM < financial/Y < financials --- > finance's > finance/ADSG > financial/YS 29784c26065 < find/BJMRZGS --- > find/JMRZGS 29788c26069,26070 < fine/CAFTGDSM --- > fine's/F > fine/CAFTGDS 29795c26077 < fingerboard/MS --- > fingerboard/SM 29797d26078 < fingerless 29801c26082 < fingerprint/MDSG --- > fingerprint/SGMD 29808c26089,26090 < finish/ADSGM --- > finish's > finish/ADSG 29811c26093 < finite/PY --- > finite/IY 29814,29815c26096 < finny/TR < fiord/SM --- > finny 29827d26107 < fired/U 29829c26109 < firefight/MRSJZG --- > firefight/MRSZG 29843d26122 < firesafe 29853d26131 < firkin 29857c26135 < firmware/MS --- > firmware/M 29883,29884c26161,26162 < fission/BSM < fissure/DSM --- > fission/BM > fissure/SM 29902d26179 < fivefold 29918c26195 < flabbergast/GSD --- > flabbergast/SGD 29949,29950c26226 < flam < flamage/S --- > flamage 29956a26233 > flambé/MD 29959,29960c26236,26237 < flameproof/DSG < flamethrower/MS --- > flameproof/DGS > flamethrower/SM 29965c26242 < flange/MDS --- > flange/MS 29969d26245 < flannelet/M 29994a26271 > flatbread 30021d26297 < flautist/SM 30032c26308 < flay/DRZGS --- > flay/DGS 30039d26314 < fledgeling/SM 30052d26326 < fleshless 30059d26332 < flexibilities 30064c26337 < flexitime/M --- > flexion 30066c26339 < flibbertigibbet/MS --- > flibbertigibbet/SM 30069d26341 < flickery 30071c26343 < flight/MDS --- > flight/MS 30074d26345 < flightpath 30088c26359,26361 < flippable --- > flipflop/S > flipflopped > flipflopping 30097c26370 < flirtation/SM --- > flirtation/MS 30105d26377 < floatation 30107,30108d26378 < floaty < flocculation 30118c26388 < floodlight/MDGS --- > floodlight/MDSG 30121c26391 < floodwater/M --- > floodwater/MS 30125,30126c26395 < floorspace < floorwalker/MS --- > floorwalker/SM 30132d26400 < flopper 30152c26420 < flouncy/TR --- > flouncy 30156c26424 < floury/RT --- > floury 30159c26427 < flow/IMGS --- > flow/MDGS 30161,30162c26429,26430 < flowed < flower/CSDGM --- > flower's > flower/CSDG 30175c26443 < fluctuate/XGNDS --- > fluctuate/GNDSX 30185c26453 < fluidize/DSG --- > fluidize/GS 30187d26454 < flukey 30193d26459 < flunkey/MS 30203,30204c26469,26470 < fluorocarbon/SM < fluoroscope/MS --- > fluorocarbon/MS > fluoroscope/SM 30215,30216c26481,26484 < flux/ADGM < fluxes --- > flux's/A > flux/IMS > fluxed > fluxing 30223c26491 < flyer/MS --- > flyer/SM 30237,30238c26505 < fo'c's'le < fo'c'sle --- > fo'c'sle/MS 30248c26515,26516 < focus/ADSGM --- > focus's > focus/ADSG 30252,30253c26520,26521 < foetid < fog/CSM --- > fog's > fog/CS 30267c26535,26536 < fold/IAUSGDM --- > fold's > fold/AUSGD 30272c26541 < foliate --- > folic 30281d26549 < folksong 30287,30288c26555 < follicular < follow/SDRZGBJ --- > follow/SDRZGJ 30299d26565 < fondu/M 30305c26571 < foobar/S --- > foobar 30313,30314c26579,26580 < foolhardy/PTR < foolish/TRYP --- > foolhardy/TPR > foolish/YP 30322c26588 < footbridge/MS --- > footbridge/SM 30334d26599 < footmarks 30337d26601 < footpads 30377d26640 < fordable/U 30387c26650 < foreclosure/SM --- > foreclosure/MS 30389d26651 < foredeck 30396,30397c26658,26660 < foregather/SGD < foregoing --- > foregather/GDS > forego/G > foregoes 30399c26662 < foreground/MDGS --- > foreground/GMDS 30421c26684 < foreordain/GDS --- > foreordain/GSD 30423d26685 < forepaws 30426c26688 < forequarter/SM --- > forequarter/MS 30431d26692 < foreseeability 30436c26697 < foreshadow/SGD --- > foreshadow/GDS 30438c26699 < foreshorten/SDG --- > foreshorten/DSG 30442c26703,26704 < forest/ACGDSM --- > forest's > forest/ACGDS 30448,30450d26709 < foreswear/GS < foreswore < foresworn 30470c26729 < forgetful/PY --- > forgetful/YP 30477c26736 < forgiven/U --- > forgiven 30490,30492c26749,26752 < forlorn/PTRY < form/CAIFDGSM < forma --- > forlorn/Y > form's > form/CAIFDGS > forma/K 30496c26756 < formalism/MS --- > formalism/M 30498d26757 < formalistic 30501c26760 < formalization/MS --- > formalization/M 30503d26761 < formant 30509c26767 < former/AIFMS --- > former/FIAM 30517a26776 > formulae 30537c26796 < forthright/PY --- > forthright/YP 30545c26804 < fortify/DRSZGNX --- > fortify/DRSNZGX 30550c26809 < fortuitous/PY --- > fortuitous/YP 30562a26822 > fossa 30564d26823 < fossiliferous 30575d26833 < foundational 30585,30587c26843 < fourpence < fourpenny < fourposter/MS --- > fourposter/SM 30613,30614c26869 < frack/DRGS < fracker/S --- > frack/SDRZG 30616c26871 < fraction/IASM --- > fraction/ISM 30618d26872 < fractionate/GND 30638c26892,26893 < franchise/EDSGM --- > franchise's > franchise/EDSG 30652a26908 > frappé/M 30661c26917,26918 < fraud/SM --- > fraud's > fraud/S 30666c26923,26924 < fray/CDGSM --- > fray's > fray/CDGS 30674c26932 < freckly/TR --- > freckly 30703c26961 < freeware/SM --- > freeware/M 30705c26963 < freewheel/DSG --- > freewheel/DGS 30708c26966,26967 < freeze/UAGSM --- > freeze's > freeze/UAGS 30710c26969 < freezing/M --- > freezing's 30718d26976 < freon/S 30736d26993 < fretboard 30751d27007 < frictionless 30754,30755c27010,27012 < friend/SM < friendless/P --- > friend's > friend/US > friendless 30757d27013 < friendlily 30759,30760c27015,27017 < friendly/UTPRM < friendship/SM --- > friendly's > friendly/UPTR > friendship/MS 30767c27024 < frighten/DZG --- > frighten/DG 30776c27033,27034 < fringe/IDSGM --- > fringe's > fringe/IDSG 30786c27044 < frivolous/YP --- > frivolous/PY 30788d27045 < friz/M 30791d27047 < frizzly/TR 30794c27050,27051 < frock/CUSM --- > frock's > frock/CUS 30796c27053 < frogging/DGS --- > frogging/S 30808c27065,27066 < front/FSDGM --- > front's > front/FSDG 30817,30818c27075 < frontispiece/SM < frontrunner/SM --- > frontispiece/MS 30821c27078,27079 < frost/CSDGM --- > frost's > frost/CSDG 30837,30838d27094 < frowning/Y < frowsty 30852,30854c27108 < fruitful/PY < fruitfuller < fruitfullest --- > fruitful/YP 30858c27112 < fruitless/YP --- > fruitless/PY 30864,30865c27118 < frustrate/GNDSX < frustrated/Y --- > frustrate/GNXDS 30869c27122 < fry/ZGDRSM --- > fry/GDSM 30872c27125 < ftp/ZGSR --- > ftp/ZGS 30875c27128 < fucker/SM! --- > fucker/M! 30880c27133,27134 < fuel/ADGSM --- > fuel's > fuel/ADGS 30889a27144 > fulfilling/U 30894d27148 < fullish 30896d27149 < fullstops 30900d27152 < fulness/M 30904d27155 < fumarole/S 30913d27163 < fuming/Y 30920c27170 < functionality --- > functionality/S 30922d27171 < functionless 30926c27175 < fundamentalist/MS --- > fundamentalist/SM 30928,30929d27176 < fundholders < fundholding 30961c27208,27209 < furl/UDGSM --- > furl's > furl/UDGS 30987c27235,27236 < fuse/CAIFGDSM --- > fuse's/A > fuse/CAIFGDS 30997c27246 < fussbudget/SM --- > fussbudget/MS 31017d27265 < fuze/MGDS 31025c27273,27274 < g/SNXB --- > fête/SM > g/SNXVB 31055c27304,27305 < gain/ADGSM --- > gain's > gain/ADGS 31067c27317,27318 < gale/ASM --- > gale's > gale/AS 31071,31072c27322,27323 < gallantry/SM < gallbladder/SM --- > gallantry/M > gallbladder/MS 31075c27326 < gallery/DSM --- > gallery/SM 31087d27337 < galoshe/M 31095d27344 < galvanometric 31101c27350 < game/MYZTGDRSP --- > game/MYTGDRSP 31103c27352 < gamekeeper/SM --- > gamekeeper/MS 31106d27354 < gamesmen 31111c27359 < gamify/NGDS --- > gamify/DSNG 31122c27370 < gang/MDYGS --- > gang/MDGS 31129d27376 < gangly/RT 31135d27381 < gangsterism 31141,31142d27386 < gaolbirds < gaolbreak/S 31145d27388 < gaping/Y 31173,31174c27416 < garnishment/MS < garote/DSMG --- > garnishment/SM 31182c27424 < garrulous/YP --- > garrulous/PY 31185c27427,27429 < gas/CSM --- > garçon/SM > gas's > gas/CS 31215c27459 < gateau/S --- > gateau 31224d27467 < gathered/I 31236c27479 < gaunt/RYPT --- > gaunt/RPT 31251,31252c27494 < gay/TSPMRY < gayety/M --- > gay/TSPMR 31267d27508 < gearstick 31272d27512 < geegaw/SM 31277d27516 < geez/RZ 31282d27520 < gelatine/M 31299d27536 < genderless 31302c27539 < genealogist/SM --- > genealogist/MS 31306c27543 < generalissimo/SM --- > generalissimo/MS 31310c27547 < generalize/GBDS --- > generalize/GDS 31313c27550,27551 < generation/ASMC --- > generation's/A > generation/CSM 31319c27557 < generous/UY --- > generous/PY 31325c27563 < geneticist/SM --- > geneticist/MS 31328a27567 > geniculate 31342,31343c27581 < genomic/S < genotype/S --- > genomics 31346c27584 < genteel/RYTP --- > genteel/YP 31352c27590 < gentlefolk/SM --- > gentlefolk/MS 31368a27607 > geocache/DSG 31371d27609 < geochemical 31376a27615 > geoengineering 31388d27626 < geomagnetically 31390c27628 < geometer/S --- > geometer 31394d27631 < geomorphology 31400d27636 < geoscientific 31403c27639 < geosyncline/SM --- > geosyncline/MS 31418d27653 < germinated/U 31420d27654 < gerontocracy 31422c27656 < gerontologist/SM --- > gerontologist/MS 31424c27658 < gerrymander/SMDG --- > gerrymander/GMDS 31426c27660 < gerund/VMS --- > gerund/MS 31432c27666 < gesticulate/XDSGN --- > gesticulate/DSGNX 31437c27671 < get/SM --- > get/S 31439,31440d27672 < gettable < getter 31453d27684 < ghostlike 31461c27692 < ghoulish/PY --- > ghoulish/YP 31465d27695 < giantkiller 31478c27708 < gigabit/MS --- > gigabit/SM 31481c27711 < gigajoule/MS --- > gigajoule/SM 31485,31486c27715 < gigavolt < gigawatt/MS --- > gigawatt/SM 31509c27738 < gimpy/RT --- > gimpy 31517,31518c27746 < gingko/M < ginkgo/M --- > ginkgo/SM 31524d27751 < gipsy/SM 31530c27757 < girlfriend/SM --- > girlfriend/MS 31540d27766 < gismo/SM 31544c27770 < give/MZGJRS --- > give/ZGJRS 31558,31560c27784 < glaciological < glaciologist/S < glaciology --- > glacé/SDG 31571d27794 < gladly/TR 31573c27796 < gladsome/RT --- > gladsome 31578a27802 > glamour/GMDS 31594d27817 < glassless 31599d27821 < glazed/U 31609a27832,27833 > glenohumeral > glenoid 31646c27870 < glockenspiel/MS --- > glockenspiel/SM 31652c27876 < gloppy/TR --- > gloppy 31654c27878 < glorify/GNDS --- > glorify/GDSN 31669a27894 > glucagon 31680d27904 < gluon 31682d27905 < glutamate 31694d27916 < glycine 31696d27917 < glycol 31698d27918 < glyphs 31710,31711d27929 < gnostic < gnosticism 31713c27931 < go/SJMRHZG --- > go/JMRHZG 31717c27935 < goalkeeper/SM --- > goalkeeper/MS 31724,31725c27942 < goalscoring < goaltender/SM --- > goaltender/MS 31735d27951 < gobbledegook/M 31745,31746c27961,27962 < godchildren < goddam --- > godchildren/M > goddam/D 31749c27965 < goddaughter/SM --- > goddaughter/MS 31772,31773c27988,27989 < gold/MNRTS < goldbrick/SZGMDR --- > gold/MNS > goldbrick/ZGSMDR 31794c28010 < gonk/DGS --- > gonk/S 31818a28035 > google/DSMG 31834c28051,28052 < gorge/EDSGM --- > gorge's > gorge/EDSG 31879c28097 < governorship/MS --- > governorship/M 31890,31891d28107 < gracefuller < gracefullest 31893c28109 < graceless/YP --- > graceless/PY 31898c28114 < grad/MRZSBJ --- > grad/MRZSB 31900,31901c28116,28118 < gradation/CSM < grade/CADSGM --- > gradation/CM > grade's > grade/CADSG 31907d28123 < gradualist 31909d28124 < graduand/S 31917c28132 < grail/S --- > grail 31924a28140 > grammatically/K 31930,31931c28146 < grandad/S < grandaddy/S --- > grandad/MS 31935c28150 < grandchildren --- > grandchildren/M 31938c28153 < granddaughter/MS --- > granddaughter/SM 31942c28157 < grandfather/SMDYG --- > grandfather/GMDYS 31948d28162 < grandmaster/S 31956c28170 < grandstand/SMDG --- > grandstand/SGMD 31959c28173 < granite/MS --- > granite/M 31967d28180 < grantor/MS 31975c28188 < grapefruit/SM --- > grapefruit/MS 31982c28195 < graphologist/SM --- > graphologist/MS 31987c28200 < grasp/SMDRBG --- > grasp/SMDBG 31989c28202 < grasshopper/SM --- > grasshopper/MS 31995,31996d28207 < gratefuller < gratefullest 31999d28209 < graticule 32001c28211 < gratify/XNGDS --- > gratify/GNXDS 32012c28222 < gravedigger/MS --- > gravedigger/SM 32020c28230 < gravimeter/SM --- > gravimeter/MS 32024,32026c28234,28235 < gravitational/Y < graviton/S < gravity/SM --- > gravitational > gravity/M 32036d28244 < greaseproof 32056,32057c28264 < greengrocer/MS < greengrocery --- > greengrocer/SM 32079,32080c28286,28288 < grey/MDRTGSP < greybeard/SM --- > grey/MDRTGS > greybeard's > greybeards 32082,32083c28290 < greyish < greyness/M --- > greyness's 32086d28292 < gridded 32095c28301 < grievous/YP --- > grievous/PY 32112c28318 < grindstone/SM --- > grindstone/MS 32115d28320 < grinner 32126d28330 < gristly/RT 32137c28341 < groan/SZGMDR --- > groan/SGMD 32157c28361 < grope/DRSJMZG --- > grope/DRSMZG 32159d28362 < groping/Y 32164c28367 < grotesque/SMYP --- > grotesque/SPMY 32177d28379 < grounded/U 32212d28413 < groyne/S 32240d28440 < gryphon/SM 32245a28446 > guaranies 32251c28452 < guarded/YP --- > guarded/Y 32262c28463 < gudgeon --- > guerilla/SM 32265d28465 < guessable/U 32270c28470 < guestbook/MS --- > guestbook/SM 32287c28487 < guileless/PY --- > guileless/YP 32306d28505 < gulley/MS 32324d28522 < gumtree/S 32333c28531 < gunky/TR --- > gunky 32375c28573 < guttersnipe/SM --- > guttersnipe/MS 32377c28575 < guttural/MYS --- > guttural/MS 32395c28593 < gynecologist/MS --- > gynecologist/SM 32409d28606 < gyromagnetic 32416c28613 < haberdasher/MS --- > haberdasher/SM 32419c28616,28617 < habit/ISBM --- > habit's > habit/ISB 32427a28626 > habitué/SM 32429c28628 < hack/BMDRZGS --- > hack/MDRZGS 32432,32434c28631 < hackish/SP < hackishness/S < hackitude/S --- > hackish 32437a28635 > hacktivist/S 32441,32443d28638 < hadj/M < hadjes < hadji/SM 32445d28639 < hadron/S 32470d28663 < haircare 32474c28667 < hairdresser/MS --- > hairdresser/SM 32476c28669 < hairdrier/S --- > hairdrier/MS 32488c28681 < hairsplitter/MS --- > hairsplitter/SM 32491,32493c28684,28686 < hairspring/SM < hairstyle/MGS < hairstylist/MS --- > hairspring/MS > hairstyle/MS > hairstylist/SM 32506,32507c28699 < halfbreed < halfhearted/YP --- > halfhearted/PY 32511d28702 < halfpennyworth 32517d28707 < halide/S 32521,32522d28710 < halleluiah/M < halleluiahs 32525d28712 < halliard/MS 32527d28713 < hallo/M 32531c28717 < hallucinate/DSXGN --- > hallucinate/GNXDS 32535c28721 < hallucinogenic/MS --- > hallucinogenic/SM 32539,32540c28725 < halogenated < halon/S --- > halon 32563c28748 < hamstring/SGM --- > hamstring/GSM 32565c28750,28751 < hand/UDGSM --- > hand's > hand/UDGS 32569d28754 < handbasin 32585c28770 < handicapper/SM --- > handicapper/MS 32591c28776 < handkerchief/SM --- > handkerchief/MS 32641c28826 < happenstance/MS --- > happenstance/SM 32670,32671c28855 < hardline/ZR < hardliner/M --- > hardliner/MS 32690,32691c28874 < hark/DNXGS < harken/DG --- > hark/DGS 32695c28878 < harm/MDRGS --- > harm/MDGS 32712c28895,28896 < harness/UDSGM --- > harness's > harness/UDSG 32717,32718c28901,28902 < harpsichord/SM < harpsichordist/MS --- > harpsichord/MS > harpsichordist/SM 32733d28916 < hasheesh/M 32735c28918 < hashtag/S --- > hashtag/SM 32784d28966 < havering 32796d28977 < hayfield 32804d28984 < haywain 32814a28995 > hazmat 32850d29030 < headmastership 32853d29032 < headnote 32857c29036 < headquarter/SGD --- > headquarter/SDG 32865c29044 < headshrinker/MS --- > headshrinker/SM 32870d29048 < headstock 32874c29052 < headwaiter/MS --- > headwaiter/SM 32884c29062 < healthcare/M --- > healthcare 32889d29066 < healths 32898c29075,29076 < hearse/ASM --- > hearse's > hearse/AS 32902c29080 < heartbreak/MSG --- > heartbreak/SMG 32910c29088 < hearthstone/MS --- > hearthstone/SM 32914c29092 < heartless/YP --- > heartless/PY 32924c29102,29103 < heat/ADGSM --- > heat's > heat/ADGS 32928c29107 < heath/MNRXZ --- > heath/MNRX 32934,32935d29112 < heathery < heathland 32952c29129 < heavyweight/SM --- > heavyweight/MS 32961d29137 < hectoliters 33001c29177 < helicopter/SMDG --- > helicopter/SGMD 33003,33004d29178 < heliography < heliosphere 33010c29184 < hell/MS --- > hell/M 33014d29187 < hellfire 33033c29206 < helpline/S --- > helpline/SM 33035d29207 < helpmeet/SM 33041c29213 < hematologist/SM --- > hematologist/MS 33054c29226 < hemophiliac/SM --- > hemophiliac/MS 33067d29238 < henge 33070c29241 < hentai/! --- > hentai 33074a29246 > hepatocyte/S 33079d29250 < heptane 33081d29251 < her/M 33090d29259 < herbalism 33116d29284 < hereunder 33120d29287 < heritability 33125d29291 < hermeneutic/S 33164d29329 < heterozygous 33176c29341,29342 < hexane/SM --- > hexane's > hexanes 33187c29353 < hibernator/SM --- > hibernator/MS 33188a29355,29356 > hiccough/DG > hiccoughs 33194c29362 < hidden/U --- > hidden 33208d29375 < hieratic 33210c29377 < hieroglyphic/SM --- > hieroglyphic/MS 33219d29385 < highfaluting 33222,33223d29387 < highish < highjack/SGMD 33229,33230d29392 < highpoint < highrise/MS 33241d29402 < hijinks 33254d29414 < hillwalking 33257c29417 < him/SM --- > him/S 33266c29426,29427 < hinge/UDSGM --- > hinge's > hinge/UDSG 33269c29430 < hinterland/MS --- > hinterland/SM 33279c29440 < hippie/SM --- > hippie/M 33284a29446 > hippy/SM 33286c29448,29450 < hire/AGDSM --- > hiragana > hire's > hire/AGDS 33288d29451 < hirer 33291c29454 < hiss/MDSGJ --- > hiss/MDSG 33295d29457 < histological 33301d29462 < historicist 33304d29464 < historiographical 33311c29471,29472 < hitch/UDSGM --- > hitch's > hitch/UDSG 33317d29477 < hittable 33325,33327c29485 < hoagie/M < hoagy/SM < hoar --- > hoagie/MS 33350a29509 > hoboes 33365d29523 < hogger 33379c29537 < hold/MRBJSZG --- > hold/MRJSZG 33427d29584 < homeomorphism/S 33447a29605 > homewrecker/SM 33451a29610 > homie/RSMT 33455a29615 > hominoid/S 33459d29618 < homogenates 33464d29622 < homogenous 33467d29624 < homological 33469,33471d29625 < homologue < homology/S < homomorphism/S 33473d29626 < homophobes 33477,33478c29630 < homophony < homosexual/SMY --- > homosexual/SM 33480,33483d29631 < homotopy < homozygous < homunculus < homy/RPT 33493c29641 < honeycomb/GMDS --- > honeycomb/MDSG 33496c29644 < honeymoon/MDRSZG --- > honeymoon/ZGMDRS 33510d29657 < honored/U 33515a29663 > hoodie/MS 33521,33522c29669,29670 < hook/UDSGM < hooka/SM --- > hook's > hook/UDSG 33526d29673 < hookey/M 33534c29681 < hooray/MDSG --- > hooray/MS 33544d29690 < hoped/U 33547c29693 < hopeless/PY --- > hopeless/YP 33552c29698 < hopscotch/GMDS --- > hopscotch/MDSG 33557,33558c29703,29704 < horizontal/MYS < hormonal/Y --- > horizontal/SMY > hormonal 33561d29706 < hornbeam 33583c29728,29729 < horse/UDSGM --- > horse's > horse/UDSG 33621a29768 > hospholipase 33627,33628c29774,29775 < hospitalization/MS < hospitalize/GDS --- > hospitalization/SM > hospitalize/DSG 33644d29790 < hotchpotch 33654a29801 > hotkey/S 33662d29808 < hotspot/MS 33665a29812 > hottie/S 33667,33668d29813 < houmous < houmus 33673c29818,29819 < house/ADSGM --- > house's > house/ADSG 33682,33683c29828 < housebuilding < houseclean/DGS --- > houseclean/DSG 33690c29835 < househusband/MS --- > househusband/SM 33701d29845 < housemoving 33708c29852 < housewarming/MS --- > housewarming/SM 33715c29859 < hover/SGDR --- > hover/SGD 33716a29861,29862 > how'd > how're 33758d29903 < hullo/M 33766c29911 < humanitarian/SM --- > humanitarian/MS 33794c29939 < humiliate/XDSGN --- > humiliate/DSGNX 33798d29942 < hummable 33807a29952 > humoresque 33809c29954 < humorless/PY --- > humorless/YP 33817d29961 < humungous 33825c29969 < hundredweight/MS --- > hundredweight/SM 33847,33848c29991,29993 < hurrah/M < hurray/GSMD --- > hurrah/GMD > hurrahs > hurray 33873,33874d30017 < hutzpa/M < hutzpah/M 33888c30031,30032 < hydrate/CGNDSM --- > hydrate's > hydrate/CGNDS 33893,33894d30036 < hydrazine < hydride 33896c30038 < hydrocarbon/SM --- > hydrocarbon/MS 33898,33900d30039 < hydrocephaly/M < hydrochloric < hydrochloride 33902d30040 < hydrodynamical 33907d30044 < hydrofluoric 33910c30047 < hydrogenate/CDSGN --- > hydrogenate/CGDS 33913d30049 < hydrological 33915a30052 > hydrolyses 33918,33919d30054 < hydromagnetic < hydromechanics 33924,33925c30059,30060 < hydrophone/MS < hydroplane/MGDS --- > hydrophone/SM > hydroplane/GDSM 33930d30064 < hydrostatic/S 33932d30065 < hydrothermal 33941d30073 < hygroscopic 33954d30085 < hyperboloid/S 33956,33957d30086 < hypercube/S < hyperfine 33960c30089 < hyperlink/SM --- > hyperlink/GSMD 33963c30092 < hyperplane/S --- > hyperparathyroidism 33967d30095 < hypersonic 33969d30096 < hypersphere 33971c30098 < hypertensive/MS --- > hypertensive/SM 33975c30102 < hypertrophy/GDSM --- > hypertrophy/DSMG 33980d30106 < hyphenated/U 33993d30118 < hypocaust 33995c30120 < hypochondriac/MS --- > hypochondriac/SM 33999c30124 < hypodermic/SM --- > hypodermic/MS 34002c30127 < hypotenuse/SM --- > hypotenuse/MS 34008c30133 < hypothesize/GDRS --- > hypothesize/DSG 34012d30136 < hypoxia 34020a30145 > iPad/M 34028d30152 < iatrogenic 34034c30158,30159 < ice/CDSGM --- > ice's > ice/CDSG 34039c30164 < icebreaker/MS --- > icebreaker/SM 34043,34045d30167 < icepack < icepick/S < ichneumon 34056c30178 < iconoclast/MS --- > iconoclast/SM 34058d30179 < iconographic 34060,34062d30180 < icosahedra < icosahedral < icosahedron 34072c30190 < idealization/SM --- > idealization/MS 34078d30195 < identifiably 34086d30202 < ideographic 34089c30205 < ideologist/MS --- > ideologist/SM 34094d30209 < idiolect 34116d30230 < idyl/MS 34127d30240 < ignitible 34136c30249 < ignore/GDSB --- > ignore/GDS 34140d30252 < ikon/MS 34160d30271 < illiquid 34166,34167c30277 < illuminant < illuminate/XDSGN --- > illuminate/GNXDS 34175,34176c30285 < illustrate/GNVDSX < illustrated/U --- > illustrate/GNVXDS 34182d30290 < ilmenite 34186a30295 > imaginal 34188c30297 < imagination/SM --- > imagination/MS 34191d30299 < imagined/U 34199,34201d30306 < imbed/S < imbedded < imbedding 34227c30332 < immediate/YP --- > immediate/PY 34230c30335 < immense/RYTP --- > immense/Y 34236c30341 < immigrate/DSGNX --- > immigrate/DSGN 34240d30344 < immiscible 34242d30345 < immobilisers 34255c30358 < immortalize/GDS --- > immortalize/DSG 34259d30361 < immoveable 34261,34262c30363,30364 < immunity/SM < immunization/MS --- > immunity/M > immunization/SM 34264d30365 < immunoassay 34266a30368 > immunoglobulin/S 34268c30370 < immunological/Y --- > immunological 34277d30378 < impaction 34280c30381 < impairment/SM --- > impairment/MS 34282c30383 < impale/DRSGL --- > impale/DSGL 34296c30397 < impassive/PY --- > impassive/YP 34315c30416 < impediment/MS --- > impediment/SM 34327c30428 < imperative/MYS --- > imperative/SMY 34333,34334c30434,30435 < imperfect/SPMY < imperfection/SM --- > imperfect/SMYP > imperfection/MS 34354,34355c30455 < impersonality < impersonate/XDSGN --- > impersonate/GNXDS 34357c30457 < impersonator/MS --- > impersonator/SM 34384c30484 < implement/BZGMDRS --- > implement/GBMDRS 34387,34388c30487 < implemented/UA < implementing/A --- > implemented/U 34393d30491 < implied/Y 34403c30501 < imponderable/SM --- > imponderable/MS 34407c30505 < importation/SM --- > importation/MS 34409d30506 < importing/A 34413d30509 < imposable 34418c30514 < imposition/SM --- > imposition/MS 34430c30526 < impoverish/LGDS --- > impoverish/DSLG 34436c30532 < impracticality/SM --- > impracticality/M 34452c30548 < impression/MSB --- > impression/BSM 34457c30553 < impressive/YP --- > impressive/PY 34459c30555 < imprimatur/MS --- > imprimatur/SM 34462,34463c30558,30559 < imprison/SDGL < imprisonment/MS --- > imprison/SDLG > imprisonment/SM 34470c30566 < improve/GBDRSL --- > improve/GBDSL 34472c30568 < improvement/SM --- > improvement/MS 34477d30572 < improvisatory 34485c30580 < impugn/ZGBSDR --- > impugn/ZGSDR 34496a30592 > inaccuracy/S 34498d30593 < inactivity 34509d30603 < inapplicability 34515c30609 < inaugurate/GNDSX --- > inaugurate/XGNDS 34518,34519c30612,30613 < inbound/s < inbox/M --- > inbound > inbox/MS 34525d30618 < incant 34527,34530c30620,30621 < incantatory < incapable < incapacitate/DSGN < incarcerate/GNXDS --- > incapacitate/GDS > incarcerate/XDSGN 34532c30623 < incarnadine/GDS --- > incarnadine/DSG 34537,34538c30628,30630 < incentive/ESM < incentivize/SDG --- > incentive's > incentive/ES > incentivize/DSG 34541c30633 < incest/MS --- > incest/M 34552c30644 < incinerator/SM --- > incinerator/MS 34557c30649 < incisive/YP --- > incisive/PY 34566c30658,30659 < incline/EGDSM --- > incline's > incline/EGDS 34572d30664 < incoherency 34577c30669,30670 < incompetent/SM --- > incompatibility/S > incompetent/MS 34586c30679 < incontinent/Y --- > incontinent 34588,34590c30681,30682 < inconvenience/DG < incorporable < incorporate/AGNDS --- > inconvenience/GD > incorporate/ADSGN 34595c30687 < incorrigibleness --- > incorrigible/P 34598c30690 < increment/SMDG --- > increment/SMD 34600c30692,30693 < incrementation --- > incrementalism > incrementalist/SM 34604c30697 < incrustation/MS --- > incrustation/SM 34626,34627d30718 < indecent/T < indeclinable 34632a30724 > indefinably 34636c30728 < indemnify/XGNDS --- > indemnify/GDSXN 34638c30730 < indentation/SM --- > indentation/MS 34649d30740 < indicant/S 34654d30744 < indices 34658d30747 < indifference/M 34673d30761 < indispose/D 34675a30764 > indistinguishably 34680c30769 < individualist/SM --- > individualist/MS 34685c30774 < individualize/DSG --- > individualize/GDS 34689c30778 < indoctrinate/DSXGN --- > indoctrinate/GNDS 34691d30779 < indoctrinator/S 34696d30783 < indorse/GDS 34702c30789 < inducible --- > induct/DGV 34707d30793 < inductor/S 34709,34710c30795,30796 < indulge/DRSG < indulgence/MS --- > indulge/DSG > indulgence/SM 34714c30800 < industrialist/MS --- > industrialist/SM 34716c30802 < industrialize/GDS --- > industrialize/DSG 34727c30813 < ineffectual/P --- > inefficiency/S 34729a30816 > ineligibly 34735c30822 < ineradicably --- > inequality/S 34747d30833 < inexactitude/S 34756d30841 < inexpressibility 34765c30850 < infanticide/SM --- > infanticide/MS 34774,34775c30859 < infeasibility < infect/AESDVG --- > infect/AESDG 34782c30866 < inferential/Y --- > inferential 34790c30874 < infestation/SM --- > infestation/MS 34793d30876 < infiltrate/X 34795c30878 < infinite/MYV --- > infinite/MV 34798c30881 < infinitive/SM --- > infinitive/MS 34816,34817c30899,30900 < inflict/SDRGV < infliction/MS --- > inflict/SDGV > infliction/M 34818a30902 > inflow/SM 34823d30906 < influx/MS 34825c30908,30909 < infomercial/MS --- > infomercial/SM > inform/Z 34828d30911 < informatics 34831c30914 < informative/UY --- > informative/PY 34833d30915 < informatory 34840c30922 < infrastructure/MS --- > infrastructure/SM 34856d30937 < ingoing 34865d30945 < ingression 34866a30947 > ingénue/SM 34872c30953 < inhalation/SM --- > inhalation/MS 34886,34887d30966 < inhomogeneity/S < inhomogeneous 34895,34898c30974,30977 < initialization/S < initialize/ADG < initialized/U < initializes --- > initialism > initialization > initialize/DSG > initialized/AU 34911c30990 < injurious/Y --- > injurious 34915c30994 < inkjet/MS --- > inkjet/SM 34937c31016 < innocent/MRYST --- > innocent/MYS 34944a31024 > innuendoes 34956c31036 < inquisition/SM --- > inquisition/MS 34960,34961c31040,31041 < inquisitor/MS < inquisitorial/Y --- > inquisitor/SM > inquisitorial 34964d31043 < insanity/S 34967,34968c31046,31048 < inscriber/SM < inscription/SM --- > inscribe/ZGDR > inscriber/M > inscription/MS 34975c31055 < insecticide/SM --- > insecticide/MS 34979c31059 < inseminate/GNDS --- > inseminate/DSGN 34984,34985c31064,31066 < inseparable/SM < insert/AGSDM --- > inseparable/MS > insert's > insert/AGSD 34992c31073 < insidious/PY --- > insidious/YP 34996d31076 < insigne/M 34998,34999c31078 < insinuate/GNVXDS < insinuating/Y --- > insinuate/GNVDSX 35023,35024c31102,31103 < inspectorate/SM < inspiration/SM --- > inspectorate/MS > inspiration/MS 35030,35034c31109,31111 < instal/S < install/UBZRSDG < installation/SM < installer/UM < installment/MS --- > installation/MS > installer/UMS > installment/SM 35038c31115,31116 < instantiate/GNDSX --- > instantiate/DSG > instar 35043,35044c31121 < instigator/SM < instil/S --- > instigator/MS 35049c31126 < institute/MZGNXDRS --- > institute/XMZGNDRS 35053d31129 < institutionalism 35055,35056c31131,31132 < institutionalize/GDS < institutor/SM --- > institutionalize/DSG > institutor/MS 35060c31136 < instruction/SM --- > instruction/MS 35064,35066c31140,31142 < instrument/GMDS < instrumental/SMY < instrumentalist/MS --- > instrument/MDSG > instrumental/MYS > instrumentalist/SM 35075d31150 < insulated/U 35079c31154 < insult/SMDRG --- > insult/SMDG 35091,35092c31166,31167 < insurrection/MS < insurrectionist/MS --- > insurrection/SM > insurrectionist/SM 35097,35098d31171 < integrability < integrable 35100,35104c31173,31175 < integrand/S < integrate/EAVNGSD < integration/AEM < integrations < integrator/S --- > integrate/AEVNGSD > integration/EAM > integrator 35108c31179 < intellectual/SMY --- > intellectual/MYS 35110d31180 < intellectuality 35112c31182 < intelligence/MS --- > intelligence/M 35122c31192 < intensify/ZGDRSN --- > intensify/DRSZGN 35124c31194 < intensive/PMYS --- > intensive/MYPS 35127c31197 < intention/MDS --- > intention/MS 35129d31198 < intentionality 35134c31203 < interactive/PY --- > interactive/Y 35136d31204 < interbank 35138c31206 < interbreed/SG --- > interbreed/GS 35143,35144c31211,31212 < intercession/MS < intercessor/SM --- > intercession/SM > intercessor/MS 35153c31221 < intercommunicate/GNDS --- > intercommunicate/DSGN 35155,35156c31223 < interconnect/GSD < interconnected/P --- > interconnect/GDS 35159d31225 < interconversion 35165d31230 < interdependency 35171c31236 < interested/UEY --- > interested/U 35175,35179c31240,31241 < interfere/GDRS < interference/MS < interferometer/S < interferometric < interferometry --- > interfere/GDS > interference/M 35183d31244 < interglacial 35188,35190c31249,31250 < interject/DGS < interjection/MS < interjectional --- > interject/GDS > interjection/SM 35192,35193c31252,31253 < interlard/GDS < interleave/GDS --- > interlard/DGS > interleave/DSG 35195c31255 < interline/JGDS --- > interline/GDSJ 35197d31256 < interlingual 35199c31258 < interlink/GDS --- > interlink/DSG 35201c31260 < interlocutor/MS --- > interlocutor/SM 35206,35207c31265,31266 < intermarriage/MS < intermarry/DSG --- > intermarriage/SM > intermarry/GDS 35210,35212c31269,31271 < intermediate/SMYPGD < intermediation/SE < intermediator/SM --- > intermediate/XMYGNPDS > intermediation/ES > intermediator/MS 35219c31278 < intermission/MS --- > intermission/SM 35222,35223d31280 < intermolecular < intern/GDL 35226c31283 < internalize/DSG --- > internalize/GDS 35229c31286 < internationalist/MS --- > internationalist/SM 35231,35232c31288,31289 < internationalize/GDS < interne/MGDS --- > internationalize/DSG > interne/GDL 35234a31292 > interneship/S 35237c31295 < internment/MS --- > internment/M 35239,35240d31296 < internuclear < interocular 35242,35244c31298 < interoperability < interoperable < interpenetrate/GNDS --- > interpenetrate/DSGN 35247,35248c31301,31302 < interplay/MS < interpolate/BXGNDS --- > interplay/M > interpolate/XDSGN 35253,35254c31307 < interpretable/U < interpretation/ASM --- > interpretation/AMS 35258d31310 < interpretive/Y 35261,35263c31313,31314 < interregnum/MS < interrelate/XGNDS < interrelated/P --- > interregnum/SM > interrelate/XDSGN 35267c31318 < interrogate/GNVDSX --- > interrogate/DSGNVX 35274d31324 < interruptibility 35280c31330 < intersession/MS --- > intersession/SM 35290,35291c31340 < interstitial/Y < intertidal --- > interstitial 35299c31348 < interview/MDRZGS --- > interview/ZGMDRS 35304c31353 < interweave/SG --- > interweave/GS 35311d31359 < intifada 35318d31365 < intimidatory 35320,35322c31367,31368 < intonational < intoxicant/MS < intoxicate/GNDS --- > intoxicant/SM > intoxicate/DSGN 35324c31370 < intracellular --- > intracranial 35327c31373 < intranet/S --- > intranet/MS 35329c31375 < intransigent/SMY --- > intransigent/MYS 35344c31390,31391 < introduction/ASM --- > introduction/AM > introductions 35347c31394 < introspect/DGVS --- > introspect/GVDS 35359,35360c31406 < intuitionist < intuitive/YP --- > intuitive/PY 35371c31417 < invariance --- > invariant 35374c31420 < invective/SM --- > invective/M 35380d31425 < invented/U 35385c31430 < inventory/GDSM --- > inventory/DSMG 35387,35388c31432 < invert/SMDRZG < invertible --- > invert/SMDG 35390c31434 < investigate/DSXGNV --- > investigate/GNVDSX 35392c31436 < investigator/MS --- > investigator/SM 35395c31439 < investment/EAM --- > investment/AEM 35399c31443 < invidious/PY --- > invidious/YP 35411,35412c31455,31456 < invitation/MS < invitational/MS --- > invitation/SM > invitational/SM 35417c31461 < invoke/DRSZGB --- > invoke/DSG 35420d31463 < involute/XN 35423d31465 < involved/U 35434d31475 < ionized/C 35443c31484 < irate/RYTP --- > irate/YP 35467c31508 < ironwork/MS --- > ironwork/M 35472c31513 < irrationality/SM --- > irrationality/M 35481d31521 < irreducibility 35489,35490c31529,31530 < irrelevance/SM < irrelevancy/SM --- > irrelevance/MS > irrelevancy/MS 35491a31532 > irreligion 35508,35509c31549 < irresolvable < irrespective/Y --- > irrespective 35517d31556 < irreversibility 35530d31568 < irritated/Y 35551,35552c31589 < isolationist/MS < isolator/S --- > isolationist/SM 35560,35561d31596 < isomorphism/S < isoperimetrical 35563d31597 < isostatic 35565,35566d31598 < isothermal/Y < isotonic 35570,35572d31601 < isotropically < isotropy < issuable 35575d31603 < issued/U 35595d31622 < iterative/Y 35622c31649 < jackrabbit/SM --- > jackrabbit/MS 35625d31651 < jacuzzi 35633c31659 < jaggies/S --- > jaggies 35640d31665 < jailor/SM 35641a31667 > jalapeño/MS 35648,35649c31674,31675 < jammed/U < jamming/U --- > jammed > jamming 35653d31678 < jangly 35661a31687 > jardinière/SM 35670d31695 < jaundiced/U 35679c31704 < jawbreaker/SM --- > jawbreaker/MS 35697d31721 < jehad/SM 35711c31735 < jeopardize/DSG --- > jeopardize/GDS 35720a31745 > jerrican/S 35724d31748 < jessamine/MS 35738,35739c31762 < jewelery/S < jewellery/M --- > jewellery 35748c31771,31772 < jig/ASM --- > jig's > jig/AS 35750c31774,31775 < jigger/ASDGM --- > jigger's > jigger/ASDG 35753c31778 < jiggly/RT --- > jiggly 35755a31781 > jihadist/SM 35760,35761c31786 < jingly/TR < jingo --- > jingly 35768c31793 < jinricksha/MS --- > jinricksha/SM 35770d31794 < jinriksha/MS 35773d31796 < jitter/S 35780d31802 < jiujitsu/M 35812c31834,31835 < join/AFDSGM --- > join's > join/AFDSG 35815c31838,31839 < joint/EGSDM --- > joint's > joint/EGSD 35817d31840 < jointures 35823c31846,31847 < jokily --- > jokier > jokiest 35825d31848 < joky/RT 35843c31866 < jouncy/TR --- > jouncy 35880,35881c31903,31906 < judge/ADSGM < judgement/MS --- > judge's > judge/ADSG > judgement/SM > judgemental 35889c31914 < judicious/IPY --- > judicious/IYP 35908d31932 < jujutsu/M 35926d31949 < juniority 35942d31964 < jurisprudential 35951,35953c31973 < jussive < just/UYPT < juster --- > just/RYPT 35955d31974 < justifiability 35959,35961c31978,31979 < justificatory < justified/AU < justify/NGDSX --- > justified/U > justify/XGDSN 35969c31987 < juxtaposition/MS --- > juxtaposition/SM 35973a31992,31993 > kabbala > kabbalah 35980d31999 < kaftan/MS 35984c32003 < kaleidoscope/SM --- > kaleidoscope/MS 35987a32007 > kana 35988a32009 > kanji 35999a32021 > katakana 36019c32041 < kelp/MZ --- > kelp/M 36028a32051 > keratitis 36032d32054 < kerned 36034d32055 < kerning 36036d32056 < kerosine/M 36042d32061 < kettleful 36043a32063 > keybinding/S 36046c32066 < keyboardist/MS --- > keyboardist/SM 36049c32069 < keylogging/MS --- > keylogging/SM 36055d32074 < keyring 36061d32079 < khalif/S 36084,36086c32102 < kiddy/SM < kidnap/ZSR < kidnaper/M --- > kidnap/S 36102d32117 < kilobits 36107d32121 < kilojoules 36115c32129 < kin/SM --- > kin/M 36117c32131,32132 < kind/UPRYTM --- > kind's > kind/UPRYT 36119,36120c32134 < kindergarten/MRSZ < kindergartener/M --- > kindergarten/MS 36121a32136 > kindergärtner/SM 36142c32157 < kingfisher/MS --- > kingfisher/SM 36162d32176 < kirk/MS 36166d32179 < kissagram/S 36173c32186 < kitchenette/SM --- > kitchenette/MS 36183d32195 < kittiwakes 36188a32201 > kleptocracy 36190c32203 < kleptomaniac/MS --- > kleptomaniac/SM 36192c32205 < kluge/DSG --- > kluge/DS 36200c32213 < knackwurst/SM --- > knackwurst/MS 36234c32247 < knock/JSZGMDR --- > knock/SZGMDR 36248,36249c32261 < knowing/UTYS < knowinger --- > knowing/UYS 36266d32277 < kookie 36276,36277c32287 < kraut/MS! < kriegspiel --- > kraut/SM! 36283a32294,32295 > króna/M > krónur 36288d32299 < kulaks 36292d32302 < kyle/S 36296c32306,32307 < label/ASDGM --- > label's > label/ASDG 36299d32309 < labellings/A 36315c32325,32326 < lace/UGDSM --- > lace's > lace/UGDS 36360d32370 < lagnappe/MS 36393d32402 < lamented/U 36403c32412 < lamplight/ZMR --- > lamplight/MRZ 36406d32414 < lampoonery 36418,36420c32426,32427 < landforms < landholder/MS < landholding/SM --- > landholder/SM > landholding/MS 36424c32431 < landlines --- > landline/MS 36457a32465,32467 > laparoscopic > laparoscopy > laparotomy 36481d32490 < largesse/M 36509c32518,32519 < latch/UDSGM --- > latch's > latch/UDSG 36513c32523 < latency/SM --- > latency/M 36517d32526 < lateralization 36550c32559 < launderette/MS --- > launderette/SM 36552,36553c32561 < laundrette/SM < laundromat/SM --- > laundromat/MS 36563c32571 < lava/MS --- > lava/M 36565d32572 < lavalier/MS 36614d32620 < lazuli 36631c32637 < leafy/PRT --- > leafy/RT 36648c32654 < learning/M --- > learning's 36654c32660,32661 < leash/UDSGM --- > leash's > leash/UDSG 36656d32662 < leastways 36668d32673 < lebensraum 36676c32681 < lector/MS --- > lector/SM 36679c32684 < lectureship/MS --- > lectureship/SM 36687d32691 < leering/Y 36692d32695 < leftie/M 36702c32705 < legalese/MS --- > legalese/M 36711c32714 < legation/ACM --- > legation's/AC 36732c32735 < legislator/SM --- > legislator/MS 36736,36737c32739,32740 < legitimate/DSYGN < legitimatize/DSG --- > legitimate/DSYG > legitimatize/GDS 36744d32746 < legstraps 36770d32771 < lengthways 36777,36778c32778,32779 < lens/MSG < lent/N --- > lens/MS > lent 36784d32784 < leopardskin 36787c32787 < lepidopterist/SM --- > lepidopterist/MS 36802d32801 < letch/S 36805d32803 < lethality 36825c32823 < level/PSZTGMDRY --- > level/PSZGMDRY 36831c32829,32830 < leverage/DSMG --- > leverage's > leverage/CDSG 36840d32838 < lexeme/S 36842,36843c32840,32841 < lexical/Y < lexicographer/SM --- > lexical > lexicographer/MS 36845c32843 < lexicographical/Y --- > lexicographical 36850c32848,32849 < liability/ASM --- > liabilities > liability/AM 36865c32864 < liberalize/DSG --- > liberalize/GDS 36869d32867 < liberationists 36871,36873c32869 < libero < libertarian/MS < libertarianism --- > libertarian/SM 36888c32884 < licentiate/MS --- > licentiate/SM 36891,36892c32887 < lichee/MS < lichen/MDS --- > lichen/MS 36895d32889 < lickerish 36909c32903 < lieutenant/SM --- > lieutenant/MS 36914d32907 < lifeboatmen 36918c32911 < lifeless/PY --- > lifeless/YP 36928d32920 < lifetaking 36935d32926 < ligand/S 36939c32930,32931 < light/CASTGDM --- > light's/C > light/CASTGD 36946c32938 < lighthearted/PY --- > lighthearted/YP 36949c32941 < lighting/M --- > lighting's 36959a32952 > likable/P 36961,36963c32954,32957 < like/MYTGPDRSBJ < likeability < likeable/U --- > like/EMGDST > likeability/M > likeable/P > likeableness/M 36970a32965 > liker 36979,36980c32974 < limber/UDSTG < limberer --- > limber/UDSG 36986d32979 < limekiln 36992c32985,32986 < limit/CSZGDRM --- > limit's > limit/CSZGDR 36996c32990 < limiter/M --- > limiter's 37015d33008 < linctus 37023,37024c33016 < linearized < linebacker/SM --- > linebacker/MS 37044c33036 < linguini/M --- > linguini/SM 37051c33043 < link/MDRBSZG --- > link/MDRSG 37060c33052,33053 < lint/CDSGM --- > lint's > lint/CDG 37061a33055 > lints 37069d33062 < lipase 37073c33066 < lippy/TR --- > lippy 37089d33081 < liquify/DSG 37091,37092d33082 < liquorice/MS < liquorish 37098,37099c33088 < lissom/P < lissome/P --- > lissome 37115,37116d33103 < literalism < literalistic 37127c33114 < lithograph/ZGMDR --- > lithograph/MDRZG 37133,37134d33119 < lithological < lithology 37150a33136 > littérateur/SM 37157,37158c33143 < liveable < livelihood/MS --- > livelihood/SM 37163c33148,33149 < liver/MS --- > liver's > liver/S 37172c33158 < liveware/S --- > liveware 37180,37181c33166,33168 < lo/H < load/AUGSDM --- > lo > load's > load/AUGSD 37184,37186c33171 < loading/MS < loadstar/MS < loadstone/SM --- > loading's 37189c33174 < loam/MS --- > loam/M 37191c33176 < loan/MDRSBZG --- > loan/MDRSZG 37199c33184 < loathsome/YP --- > loathsome/PY 37210,37211c33195 < lobotomist < lobotomize/GDS --- > lobotomize/DSG 37217c33201 < localization/MS --- > localization/M 37219,37222c33203,33204 < locatable/A < locate/EAGNVDS < location/ESMA < locational --- > locate/AESDNGX > location/EAM 37224,37225c33206 < loch/M < lochs --- > locavore/SM 37228d33208 < locked/A 37248c33228 < lodge/DRSLJMZG --- > lodge/DRSJMZG 37256c33236 < log/KSM --- > log/SM 37260d33239 < logarithmically 37271a33251 > login/S 37276a33257,33258 > logoff/S > logon/S 37277a33260 > logout/S 37285a33269 > lolcat/SM 37300c33284,33285 < long/KDSTGM --- > long's > long/KDSTG 37317d33301 < longsword 37321d33304 < longwise 37328a33312 > lookup 37331c33315 < looney/M --- > loonie/M 37347d33330 < lopper/S 37351c33334 < loquacious/YP --- > loquacious/PY 37363,37364c33346 < lorryload/S < lose/ZGRSBJ --- > lose/ZGRSJ 37367a33350 > lossless 37377d33359 < loudly/TR 37381c33363 < loudspeaker/SM --- > loudspeaker/MS 37387c33369,33370 < louse/CDSGM --- > louse's > louse/CDSG 37397d33379 < loveable 37409d33390 < lovestruck 37453c33434 < lucrative/PY --- > lucrative/YP 37470c33451 < lugubrious/PY --- > lugubrious/YP 37486,37487d33466 < lumen < luminance 37491c33470 < luminosity/SM --- > luminosity/M 37505,37506c33484 < luncheonette/MS < lunchpack --- > luncheonette/SM 37509d33486 < lune 37519d33495 < lurex 37540,37541d33515 < luv/S < luvvie/S 37564c33538 < lymphocyte/MS --- > lymphocyte/SM 37570d33543 < lynchpin/SM 37578c33551,33552 < lysine --- > lysosomal > lysosomes 37604c33578 < mack/S --- > mack/MS 37608a33583 > macramé/M 37616,37617d33590 < macromolecular < macromolecules 37619c33592 < macrophage/S --- > macrophages 37621d33593 < macroscopically 37632c33604 < mademoiselle/SM --- > mademoiselle/MS 37637a33610,33612 > madrasa/S > madrassah > madrassahs 37648c33623 < mage/SM --- > mage/MS 37651c33626 < maggoty/RT --- > maggoty 37661,37662c33636 < magma/SM < magmatic --- > magma/M 37664d33637 < magnanimosity 37678,37680d33650 < magnetodynamics < magnetohydrodynamical < magnetohydrodynamics 37683d33652 < magnetron 37687d33655 < magnified/U 37689c33657 < magnify/NZGDRSX --- > magnify/ZGXDRSN 37695a33664 > magus/M 37711,37712c33680,33681 < maidservant/MS < mail/BJMDRSZG --- > maidservant/SM > mail/JMDRSZG 37724d33692 < mainbrace 37730c33698 < mainspring/SM --- > mainspring/MS 37732,37733c33700,33701 < mainstream/SGMD < maintain/ZGDRBS --- > mainstream/SMDG > maintain/ZGBDRS 37735,37736d33702 < maintainable/U < maintained/U 37739d33704 < maiolica/M 37748a33714,33715 > majoritarian/SM > majoritarianism 37750c33717,33718 < make/UAGSM --- > make's/A > make/UAGS 37759d33726 < maladaptive 37773c33740 < malcontent/SM --- > malcontent/MS 37775,37776c33742,33743 < malediction/MS < malefaction/SM --- > malediction/SM > malefaction/M 37785c33752 < malformation/MS --- > malformation/SM 37787c33754 < malfunction/GSMD --- > malfunction/MDSG 37791c33758 < malign/DSZG --- > malign/DSG 37804d33770 < malnourishment 37815c33781 < malware/MS --- > malware/SM 37820,37821c33786 < mamma/SM < mammae --- > mamma/M 37832c33797,33798 < man/USYMF --- > man's/F > man/UFY 37840,37841c33806 < managerial/Y < managership --- > managerial 37844d33808 < manciple 37855d33818 < mandril/SM 37859c33822 < maneuver/BJMDGS --- > maneuver/MDGSBJ 37862c33825 < manga --- > manga/M 37865d33827 < manged/S 37886c33848 < manifestation/MS --- > manifestation/SM 37891d33852 < manilla/M 37894c33855 < manipulate/GNVXDS --- > manipulate/XGNVDS 37897c33858 < manipulator/SM --- > manipulator/MS 37902c33863 < manly/UTR --- > manly/URT 37908,37910c33869 < mannerist < mannerly/P < mannikin/SM --- > mannerly/U 37914d33872 < manoeuvrings 37919a33878,33879 > manqué > mans 37927c33887 < mantelpiece/MS --- > mantelpiece/SM 37934,37935c33894,33895 < mantle/EGDSM < mantlepiece/S --- > mantle's > mantle/EGDS 37937d33896 < mantrap/S 37939c33898 < manufacture/MZGDRS --- > manufacture/DRSMZG 37947c33906 < manuscript/SM --- > manuscript/MS 37949c33908,33910 < map/ASM --- > manège/M > map's > map/AS 37952,37953c33913 < mappable < mapped/UA --- > mapped/A 37960c33920 < maraschino/SM --- > maraschino/MS 37978d33937 < marginality 37980c33939 < marginalize/DSG --- > marginalize/GDS 37984d33942 < marihuana/M 37994c33952 < marionette/SM --- > marionette/MS 38017c33975 < marl/MS --- > marl/M 38019,38020c33977 < marlinespike/MS < marlinspike/SM --- > marlinespike/SM 38043d33999 < marshaller 38045,38046c34001,34002 < marshmallow/MS < marshy/PRT --- > marshmallow/SM > marshy/RT 38049a34006 > martensite 38069c34026,34028 < mask/UDSGM --- > mashup/MS > mask's > mask/UDSG 38091c34050,34051 < master/ADGSM --- > master's > master/ADGS 38095,38097c34055,34056 < mastermind/MDSG < masterpiece/SM < mastership --- > mastermind/SGMD > masterpiece/MS 38112c34071 < mat/SZGMDRJ --- > mat/SZGMDR 38114,38115c34073 < match/AGMS < matchable/U --- > match/AMS 38119c34077 < matcher --- > matching 38122c34080 < matchmaker/SM --- > matchmaker/MS 38124d34081 < matchplay 38133d34089 < materiality 38135,38137c34091 < materialize/CDS < materialized/A < materializing --- > materialize/DSG 38149a34104 > matinée/SM 38157c34112 < matriculate/GNDS --- > matriculate/DSGN 38159c34114 < matrimonial/Y --- > matrimonial 38166d34120 < mattins/M 38173c34127 < matzo/SM --- > matzo/SMH 38176a34131 > matériel/M 38185d34139 < mavin/SM 38196d34149 < maximality 38198c34151 < maximize/GDRS --- > maximize/GDS 38216d34168 < mazourka/SM 38217a34170 > mañana/M 38219c34172 < me/DS --- > me/DSH 38222d34174 < meadowland 38226d34177 < meagreness 38236c34187 < meanie/MS --- > meanie/M 38238c34189 < meaningful/YP --- > meaningful/PY 38240c34191 < meaningless/PY --- > meaningless/YP 38250c34201 < measurable/U --- > measurable 38252c34203,34204 < measure/ADSGM --- > measure's > measure/ADSG 38255c34207 < measurement/SM --- > measurement/MS 38257d34208 < meataxe 38258a34210 > meathead/MS 38270d34221 < mechanist 38274,38275c34225 < mechanize/DSBG < mechanized/U --- > mechanize/DSG 38300c34250 < medievalist/SM --- > medievalist/MS 38308a34259,34260 > medusa > medusae 38313c34265 < meet/MRJSG --- > meet/MJSG 38321a34274 > megachurch/MS 38323c34276,34277 < megadeath/SM --- > megadeath/M > megadeaths 38325c34279 < megajoule/SM --- > megajoule/M 38332d34285 < megaparsec 38334c34287 < megapixel/MS --- > megapixel/SM 38337a34291 > meh 38343c34297 < melancholy/SM --- > melancholy/M 38347d34300 < melatonin 38352c34305 < mellifluous/YP --- > mellifluous/PY 38366c34319,34320 < melt/ADSGM --- > melt's > melt/ADSG 38368,38369c34322,34323 < melter < member/EASM --- > member's > member/EAS 38386d34339 < memorized/U 38394d34346 < menarche 38431c34383 < mention/BGSMD --- > mention/GSMD 38441c34393 < merchandise/DRSMZG --- > merchandise/MZGDRS 38444,38446c34396 < merchandize/DSG < merchant/MSB < merchantability --- > merchant/MBS 38450c34400 < merciless/YP --- > merciless/PY 38456,38457c34406,34407 < mere/MYTRS < meretricious/PY --- > mere/MYTS > meretricious/YP 38463d34412 < meridional 38471,38472c34420 < meritocrats < meritorious/YP --- > meritorious/PY 38477d34424 < meromorphic 38498c34445 < mesosphere/MS --- > mesosphere/SM 38500,38501d34446 < mesozoic < mesquit/MS 38529,38530d34473 < metalinguistic < metalized 38541c34484 < metamorphose/DSG --- > metamorphose/GDS 38548,38549d34490 < metastability < metastable 38552c34493 < metastasize/GDS --- > metastasize/DSG 38554c34495 < metatarsal/SM --- > metatarsal/MS 38559d34499 < metathesizes 38573,38574d34512 < meth < methadon/M 38580d34517 < methionine 38585a34523 > methotrexate 38590,38591d34527 < methylated < methylene 38595d34530 < metonymy 38603d34537 < metronomic 38622d34555 < micelles 38626d34558 < microanalyses 38630c34562 < microbiologist/SM --- > microbiologist/MS 38636c34568 < microcomputer/SM --- > microcomputer/MS 38639d34570 < microdensitometer 38644d34574 < microfarad 38648,38655c34578,34582 < microfloppies/S < micrograms < micrograph < microgravity < microgroove/MS < microhydrodynamics < microlight/SM < micromanage/GLDS --- > microfloppies > microgroove/SM > microlight/MS > microloan/MS > micromanage/GDSL 38657c34584 < micrometeorite/MS --- > micrometeorite/SM 38662,38663c34589 < microprocessor/SM < microprogram --- > microprocessor/MS 38667d34592 < microscopist 38669c34594 < microsecond/SM --- > microsecond/MS 38682c34607 < middleweight/SM --- > middleweight/MS 38691c34616 < midnight/SM --- > midnight/M 38699c34624 < midsize/D --- > midsize 38707d34631 < midwicket 38710a34635 > midwived 38711a34637 > midwiving 38716c34642 < might/SM --- > might/M 38726c34652 < migrator/SM --- > migrator/MS 38735d34660 < mildewy 38739d34663 < mileometer/S 38742a34667 > milf/MS 38769d34693 < millenarian 38771,38773c34695,34696 < millennial < millennium/SM < millepede/MS --- > millennial/MS > millennium/MS 38785c34708 < millionaire/MS --- > millionaire/SM 38790c34713 < millisecond/MS --- > millisecond/SM 38795c34718 < millwright/MS --- > millwright/SM 38800c34723 < mimeograph/MDG --- > mimeograph/GMD 38815c34738,34739 < mind/ADRSZGM --- > mind's > mind/ADRSZG 38827d34750 < mineralization 38829c34752 < mineralogist/SM --- > mineralogist/MS 38831d34753 < mineshaft 38833,38834c34755 < minesweeper/MS < mineworkers --- > minesweeper/SM 38839c34760 < miniaturist/SM --- > miniaturist/MS 38841c34762 < miniaturize/DSG --- > miniaturize/GDS 38847,38848c34768,34769 < minicomputer/MS < minifloppies/S --- > minicomputer/SM > minifloppies 38853,38854d34773 < minimalistic < minimality 38856c34775 < minimize/DRSG --- > minimize/DSG 38860d34778 < miniscule/MS 38864,38865c34782,34783 < ministerial/Y < ministrant/SM --- > ministerial > ministrant/MS 38870,38871c34788 < minke < minnesinger/SM --- > minnesinger/MS 38875d34791 < minotaur/S 38896c34812 < miraculous/YP --- > miraculous/Y 38906c34822 < misadventure/SM --- > misadventure/MS 38910c34826,34827 < misanalysed --- > misandrist/MS > misandry 38914c34831 < misanthropist/SM --- > misanthropist/MS 38918c34835 < misapprehend/SDG --- > misapprehend/GSD 38920c34837 < misappropriate/DSXGN --- > misappropriate/XDSGN 38926c34843 < miscalculate/GNXDS --- > miscalculate/DSXGN 38929c34846 < miscarriage/SM --- > miscarriage/MS 38933d34849 < miscellanea 38942d34857 < misclassified 38944,38945c34859 < miscomprehended < misconceive/DSG --- > misconceive/GDS 38948,38951c34862,34863 < misconfiguration < misconstruction/SM < misconstrue/DSG < miscopying --- > misconstruction/MS > misconstrue/GDS 38962,38963c34874,34875 < misdirect/GSD < misdirection/SM --- > misdirect/SDG > misdirection/M 38975d34886 < misfield 38983c34894 < misgovern/SDLG --- > misgovern/SDGL 39000,39002c34911,34913 < misjudge/DSG < misjudgement/MS < misjudgment/MS --- > misjudge/LDSG > misjudgement/SM > misjudgment/SM 39014c34925 < misogamist/SM --- > misogamist/MS 39020c34931 < misplace/GDSL --- > misplace/GLDS 39023d34933 < mispositioned 39026c34936 < mispronounce/GDS --- > mispronounce/DSG 39032,39035c34942,34944 < misremember/DG < misreport/MDSG < misrepresent/SDG < misrepresentation/SM --- > misreport/MDGS > misrepresent/GDS > misrepresentation/MS 39037c34946,34947 < miss/EDSGVM --- > miss's > miss/EDSGV 39038a34949 > missed/U 39043d34953 < missilry/M 39050c34960 < misspell/GDSJ --- > misspell/GDJS 39056,39057c34966,34967 < misstate/LGDS < misstatement/MS --- > misstate/GDSL > misstatement/SM 39060c34970,34971 < mist/CDRSZGM --- > mist's > mist/CDRSZG 39064c34975 < mister/M --- > mister's 39072,39074d34982 < mistranslates < mistranslating < mistranslation/S 39082,39083c34990,34991 < mistype/JGDS < misunderstand/GSJ --- > mistype/GS > misunderstand/SGJ 39086c34994 < misuse/DRSMG --- > misuse/DSMG 39089c34997 < mitigate/DSGN --- > mitigate/XDSGN 39091,39092c34999 < mitigation/MS < mitigatory --- > mitigation/M 39094a35002 > mitochondrion 39115c35023,35024 < mob/CSM --- > mob's > mob/CS 39119,39120c35028 < mobility/SM < mobilizable --- > mobility/M 39132,39133c35040 < mockingbird/MS < mockup/MS --- > mockingbird/SM 39150c35057 < modern/MRYPTS --- > modern/MYPS 39155c35062 < modernization/SM --- > modernization/M 39159c35066 < modest/RYT --- > modest/Y 39162c35069 < modifiable/U --- > modifiable 39166c35073 < modify/NDRSZGX --- > modify/DRSXZGN 39170,39172d35076 < modularity < modularization < modularize/DG 39178d35081 < moduli 39181,39182c35084 < moggie < moggy/S --- > moggy 39197d35098 < molarity/S 39212c35113 < molestation/SM --- > molestation/M 39217c35118 < mollify/NDSG --- > mollify/DSNG 39221c35122 < molluskan/SM --- > molluskan/S 39223c35124 < mollycoddle/MGDS --- > mollycoddle/DSMG 39233c35134 < momentous/YP --- > momentous/PY 39236,39237d35136 < momma/SM < mommie/M 39239d35137 < monadic 39244c35142 < monarchist/SM --- > monarchist/MS 39255c35153 < monetarist/SM --- > monetarist/MS 39261d35158 < moneychangers 39264,39265c35161 < moneylender/MS < moneyless --- > moneylender/SM 39274,39275d35169 < monicker/MS < monied 39282d35175 < monitored/U 39286c35179 < monkeyshine/MS --- > monkeyshine/SM 39291c35184 < monochrome/SM --- > monochrome/MS 39294c35187 < monocotyledon/MS --- > monocotyledon/SM 39297d35189 < monoculture 39309d35200 < monolayers 39314d35204 < monolog/SM 39317c35207 < monologuist/MS --- > monologuist/SM 39322,39324d35211 < monomeric < monomial/S < monomolecular 39327d35213 < monophthongs 39329d35214 < monopole/S 39337d35221 < monostable 39346,39347c35230 < monotonicity < monotonous/YP --- > monotonous/PY 39381d35263 < moonrise 39394c35276 < moot/DRSG --- > moot/DSG 39399a35282,35283 > mopier > mopiest 39404d35287 < mopy/RT 39430,39431c35313 < moribund/Y < moribundity --- > moribund 39446,39449c35328,35329 < morphism/S < morphogenesis < morphological/Y < morphology/SM --- > morphological > morphology/M 39456,39458c35336,35338 < mortarboard/MS < mortgage/AGDSM < mortgageable --- > mortarboard/SM > mortgage's > mortgage/AGDS 39460d35339 < mortgager/MS 39462d35340 < mortice/DSMG 39479c35357,35358 < mote/KCXSVNM --- > mote's > mote/KCXSVN 39486c35365 < motherfucker/SM! --- > motherfucker/MS! 39503c35382 < motivation/MS --- > motivation/SM 39526c35405 < motorsport/MS --- > motorsport/SM 39532,39533d35410 < moulder/DGS < moult/SGMD 39535c35412 < mount/AEDMGS --- > mount/EASGMD 39538c35415 < mountaineer/GMDS --- > mountaineer/SMDG 39542c35419 < mountaintop/MS --- > mountaintop/SM 39544c35421 < mounted/UC --- > mounted/U 39546,39547c35423 < mounties < mounting/MS --- > mounting/SM 39548a35425 > mourned/U 39551,39552d35427 < mournfuller < mournfullest 39564d35438 < moustachioed 39569d35442 < mouthorgan 39584,39585c35457 < moving/U < movingly --- > moving/Y 39597c35469 < much/MP --- > much/M 39604d35475 < mucosa 39615d35485 < mudflow/S 39617d35486 < mudlarks 39637a35507 > muggle/MS 39650c35520 < muleskinner/SM --- > muleskinner/MS 39661a35532 > multi 39663,39664c35534 < multichannel < multicolor/D --- > multicolored 39674,39675d35543 < multifunction < multifunctional 39677c35545 < multilayer --- > multilayered 39682,39685c35550,35551 < multimeter < multimillion < multimillionaire/MS < multinational/MS --- > multimillionaire/SM > multinational/SM 39687c35553 < multiphase --- > multiplayer/M 39691,39692c35557 < multiplexor/MS < multiplicand/SM --- > multiplicand/MS 39697c35562 < multiply/NXZGDRS --- > multiply/NZGDRSX 39700d35564 < multiprogramming 39705c35569 < multitask/SG --- > multitask/GS 39709d35572 < multivalued 39711c35574,35576 < multivitamin/SM --- > multiverse/SM > multivitamin/MS > multiyear 39713c35578 < mumble/JMZGDRS --- > mumble/MZGDRS 39719c35584 < mummify/NGDS --- > mummify/GNDS 39723c35588 < munch/ZGDRS --- > munch/GDS 39733d35597 < muons 39780c35644 < muskellunge/SM --- > muskellunge/MS 39815d35678 < mutilated/U 39833d35695 < muzzled/U 39836d35697 < mySimon 39841,39842c35702 < mynah/M < mynahs --- > mynah/MS 39843a35704 > myocardium 39853c35714 < mysterious/YP --- > mysterious/PY 39866,39867c35727,35728 < mythologist/MS < mythologize/GDS --- > mythologist/SM > mythologize/DSG 39870a35732,35733 > métier/MS > mêlée/MS 39888c35751 < nagware/S --- > nagware 39897c35760,35761 < naked/TPRY --- > naiveté/M > naked/PY 39899c35763,35764 < name/AGDSM --- > name's > name/AGDS 39908,39910c35773 < namespace/MS < naming/S < nan/S --- > namespace/SM 39914d35776 < nanometer/S 39916c35778 < nanotechnology/S --- > nanotechnology/SM 39941c35803 < nark/MDSG --- > nark 39946d35807 < narratology 39967c35828 < nationalist/MS --- > nationalist/SM 39971,39973c35832,35833 < nationalization/SM < nationalize/CGDS < nationalized/A --- > nationalization/MS > nationalize/CDSG 39976c35836 < native/MSY --- > native/MYS 39983c35843,35844 < natural/UPYM --- > natural's > natural/UPY 39985c35846 < naturalist/MS --- > naturalist/SM 39988c35849 < naturalize/GDS --- > naturalize/DSG 39991c35852,35853 < nature/CSM --- > nature's > nature/CS 40001c35863 < nauseous/YP --- > nauseous/PY 40009c35871 < navigable/U --- > navigable 40019c35881 < neanderthal/SM --- > neanderthal/MS 40023d35884 < nearly/TR 40024a35886 > nearshore 40026c35888 < nearsighted/PY --- > nearsighted/YP 40035,40036c35897 < nebulosity < nebulous/YP --- > nebulous/PY 40040c35901 < necessitate/GDS --- > necessitate/DSG 40051c35912 < necromancer/MS --- > necromancer/SM 40053d35913 < necromantic 40057d35916 < necropsy 40069d35927 < needlecraft 40071c35929 < needless/PY --- > needless/YP 40078c35936 < nefarious/PY --- > nefarious/YP 40088c35946 < neglectful/PY --- > neglectful/YP 40090d35947 < neglige/SM 40094d35950 < negligibility 40120a35977 > neocon/S 40128c35985 < neophilia/S --- > neophilia 40144,40145c36001,36003 < nerve/UDSGM < nerveless/PY --- > nerve's > nerve/UDSG > nerveless/YP 40151c36009 < nest/BMDSG --- > nest/MDSG 40155a36014 > netbook/MS 40160c36019,36020 < nett/DRZG --- > netted > netter/S 40173d36032 < neurobiology 40175c36034 < neurologist/MS --- > neurologist/SM 40179,40180c36038,36040 < neurophysiology/M < neuroscience/MS --- > neurophysiology's > neuroscience's > neurosciences 40212c36072 < newish --- > newfound 40226c36086 < newsletter/SM --- > newsletter/MS 40233a36094 > newspeak 40244c36105 < newsworthy/PRT --- > newsworthy/P 40260c36121 < nickelodeon/MS --- > nickelodeon/SM 40263d36123 < nicknack/SM 40269d36128 < niftily 40270a36130 > nigga/S 40272a36133 > niggaz 40287,40288c36148,36149 < nightie/SM < nightingale/MS --- > nightie/M > nightingale/SM 40317d36177 < ninepence 40348,40349d36207 < nitric < nitride/S 40358d36215 < nitrous 40391c36248 < noisemaker/SM --- > noisemaker/MS 40400,40401c36257,36258 < nominate/ACGNVDS < nomination/CSMA --- > nominate/CASDXVNG > nomination/ACM 40418c36275 < nonagenarian/SM --- > nonagenarian/MS 40424c36281 < nonappearance/SM --- > nonappearance/MS 40442c36299 < nonclerical/SM --- > nonclerical/MS 40447c36304 < noncombatant/SM --- > noncombatant/MS 40449c36306 < noncommercial/SM --- > noncommercial/MS 40458c36315 < nonconductor/SM --- > nonconductor/MS 40461c36318 < nonconformist/SM --- > nonconformist/MS 40475c36332 < noncriminal/MS --- > noncriminal/SM 40487c36344 < nondescript/Y --- > nondescript 40495c36352 < nondrinker/SM --- > nondrinker/MS 40506c36363 < nonequivalent/SM --- > nonequivalent/MS 40516c36373 < nonexplosive/SM --- > nonexplosive/MS 40545c36402 < nonintellectual/SM --- > nonintellectual/MS 40551a36409 > nonissue 40581,40582c36439 < nonparallel/SM < nonparametric --- > nonparallel/MS 40586c36443 < nonpartisan/MS --- > nonpartisan/SM 40588c36445 < nonpayment/MS --- > nonpayment/SM 40605,40606c36462,36463 < nonprofessional/MS < nonprofit/SBM --- > nonprofessional/SM > nonprofit/SMB 40614c36471 < nonreciprocal/MS --- > nonreciprocal/SM 40625c36482 < nonresident/SM --- > nonresident/MS 40631c36488 < nonreturnable/SM --- > nonreturnable/MS 40642c36499 < nonsense/MS --- > nonsense/M 40653c36510 < nonspecialist/SM --- > nonspecialist/MS 40656c36513 < nonspiritual/MS --- > nonspiritual/SM 40659c36516 < nonstarter/SM --- > nonstarter/MS 40666c36523 < nonsupport/MG --- > nonsupport/GM 40705c36562 < noon/MS --- > noon/M 40713,40716c36570,36571 < noradrenalin < noradrenaline < norm/MDS < normal/MYS --- > norm/MS > normal/MY 40719,40720c36574,36575 < normalization/MS < normalize/DRSBZG --- > normalization/M > normalize/DSG 40733d36587 < northmen 40765d36618 < notational/Y 40767c36620,36621 < note/FCSDGM --- > note's > note/FCSDG 40784c36638 < notify/NXDRSZG --- > notify/NDRSXZG 40791a36646 > nought/MS 40793d36647 < nounal 40802,40803c36656 < novelistic < novelization/SM --- > novelization/MS 40817c36670 < noxious/YP --- > noxious 40826d36678 < nuclease 40828d36679 < nucleated/A 40835c36686,36687 < nucleotide/S --- > nucleoside > nucleotide 40851c36703,36704 < number/ASDGM --- > number's > number/ASDG 40853d36705 < numbering/S 40855,40857d36706 < numberplate < numbers/S < numbing/Y 40868,40869c36717 < numerological < numerologist/SM --- > numerologist/MS 40875c36723 < numismatist/MS --- > numismatist/SM 40882c36730 < nurseling/MS --- > nurselings 40893d36740 < nutation 40906c36753 < nutritionist/MS --- > nutritionist/SM 40918,40919c36765 < nybble/DSG < nyetwork/S --- > nybble/S 40925d36770 < nympholepsy 40927c36772 < nymphomaniac/MS --- > nymphomaniac/SM 40928a36774 > née 40964c36810 < obfuscate/GNDSX --- > obfuscate/GNXDS 40966d36811 < obfuscatory 40972,40974c36817,36819 < objectify/GDSN < objection/BSM < objectionable/P --- > objectify/NGDS > objection/SMB > objectionable/U 40976c36821 < objective/PSMY --- > objective/SMYP 40979d36823 < objectless 40990,40992c36834,36835 < obliging/U < obligingly < oblique/DSMYP --- > obliging/Y > oblique/SMYP 40995c36838 < obliterate/GNDS --- > obliterate/DSGN 40998c36841 < oblivious/PY --- > oblivious/YP 41009,41011c36852,36853 < obscurantist/MS < obscuration < obscure/DRSLPYTG --- > obscurantist/SM > obscure/DRSYTG 41017,41018d36858 < observability < observable/S 41020c36860 < observance/SM --- > observance/MS 41022,41023c36862,36863 < observation/MS < observational/Y --- > observation/SM > observational 41031c36871 < obsessive/SMYP --- > obsessive/PSMY 41041c36881 < obstetrician/MS --- > obstetrician/SM 41045c36885 < obstreperous/PY --- > obstreperous/YP 41049c36889 < obstruction/MS --- > obstruction/SM 41051c36891 < obstructionist/SM --- > obstructionist/MS 41059c36899 < obtrusive/UYP --- > obtrusive/UPY 41072d36911 < occipital 41076c36915 < occult/MS --- > occult/M 41079c36918 < occupancy/SM --- > occupancy/M 41092c36931 < oceanfront/MS --- > oceanfront/SM 41100c36939 < och/ZR --- > och/R 41105,41106d36943 < octahedral < octahedron 41109d36945 < octant 41113,41114c36949 < octette/MS < octogenarian/MS --- > octogenarian/SM 41144d36978 < offcuts 41148c36982,36983 < offensive/IYPM --- > offensive's > offensive/IPY 41155c36990 < offhanded/YP --- > offhanded/PY 41158c36993 < officeholder/MS --- > officeholder/SM 41160,41161c36995 < officership/S < official/MYSP --- > official/MYS 41168c37002 < officious/YP --- > officious/PY 41178c37012 < offshore --- > offshore/G 41184c37018 < oft/TNR --- > oft 41193d37026 < ogrish 41196d37028 < ohmic 41210d37041 < oilseed 41217c37048 < okay/MSG --- > okay/MDSG 41220d37050 < olde 41228d37057 < olefin 41238c37067 < oligonucleotide --- > oligonucleotide/S 41241c37070 < olivine --- > olé/M 41246a37076 > omelette/MS 41256d37085 < omnidirectional 41269c37098 < oncologist/MS --- > oncologist/SM 41284d37112 < only/T 41298c37126 < ontological/Y --- > ontological 41301c37129 < onward/S --- > onward 41306d37133 < oolitic 41317a37145 > opcode/S 41340c37168 < ophthalmic/S --- > ophthalmic 41347d37174 < opioid 41354c37181 < opportunist/MS --- > opportunist/SM 41358c37185 < oppose/DSGRB --- > oppose/DRSBG 41362d37188 < oppositional 41364,41365c37190,37191 < oppression/SM < oppressive/PY --- > oppression/M > oppressive/YP 41377d37202 < optimality 41383,41384c37208 < optimize/DRSZG < optimized/U --- > optimize/DRSG 41388,41389d37211 < optionality < optoelectronic 41403d37224 < orangutang/MS 41414a37236 > orc/S 41418c37240 < orchestrate/XGNDS --- > orchestrate/DSXGN 41420d37241 < orchestrator 41426d37246 < ordered/U 41428d37247 < orderless 41433d37251 < ordinands 41436c37254 < ordinary/RSMPT --- > ordinary/SMP 41445d37262 < organdie/M 41453d37269 < organizable 41465,41466c37281,37282 < orient/AEDGSM < orientable --- > orient's > orient/AEDGS 41470,41471d37285 < orientated/A < orientates/A 41483c37297 < originator/MS --- > originator/SM 41495c37309 < ornithologist/SM --- > ornithologist/MS 41508c37322 < orthogonal/Y --- > orthogonal 41511c37325 < orthographical/Y --- > orthographically 41513d37326 < orthonormal 41517d37329 < orthorhombic 41519c37331 < oscillate/XGNDS --- > oscillate/GNDSX 41521c37333 < oscillator/MS --- > oscillator/SM 41532c37344 < ossify/GNDS --- > ossify/NGDS 41566c37378 < outbalance/GDS --- > outbalance/DSG 41581c37393 < outcropping/MS --- > outcropping/SM 41585c37397 < outdistance/DSG --- > outdistance/GDS 41626c37438 < outlandish/YP --- > outlandish/PY 41630d37441 < outlawry 41633d37443 < outlier/S 41638c37448 < outmaneuver/SGD --- > outmaneuver/GDS 41643,41644c37453,37454 < outpatient/SM < outperform/DSG --- > outpatient/MS > outperform/GSD 41666a37477 > outré 41675c37486 < outsize/MDS --- > outsize/MS 41683c37494 < outspoken/PY --- > outspoken/YP 41689c37500 < outstretch/GDS --- > outstretch/DSG 41727d37537 < overallocation 41736c37546 < overbalance/DSMG --- > overbalance/MGDS 41751c37561 < overburden/SDG --- > overburden/GSD 41755c37565 < overcapitalize/GDS --- > overcapitalize/DSG 41759,41761c37569,37571 < overcharge/MGDS < overclock/SDG < overcloud/SDG --- > overcharge/DSMG > overclock/GD > overcloud/SGD 41764,41765c37574 < overcommitment/S < overcompensate/GNDS --- > overcompensate/DSGN 41767,41768d37575 < overcomplexity < overcomplicated 41774c37581 < overcrowd/GSD --- > overcrowd/SDG 41778,41779c37585 < overdetermined < overdevelop/SGD --- > overdevelop/SDG 41799c37605 < overemphasize/DSG --- > overemphasize/GDS 41801c37607 < overestimate/DSMGN --- > overestimate/MGNDS 41803,41805c37609,37611 < overexcite/GDS < overexercise/DSG < overexert/GSD --- > overexcite/DSG > overexercise/GDS > overexert/SDG 41809c37615 < overextend/GDS --- > overextend/DGS 41813d37618 < overfishing 41838d37642 < overincredulous 41842d37645 < overinflated 41863,41864c37666 < overmaster/SGD < overmatching --- > overmaster/SDG 41874c37676 < overpay/LGS --- > overpay/GS 41878,41879c37680 < overpopulous < overpower/GSD --- > overpower/SDG 41883d37683 < overpressure 41885,41886c37685,37686 < overprint/GSMD < overproduce/DSG --- > overprint/SMDG > overproduce/GDS 41892c37692 < overreach/DSG --- > overreach/GDS 41896d37695 < overrepresented 41904d37702 < oversampled 41915d37712 < oversensitivity 41917c37714,37715 < overshadow/GDS --- > overshadow/DSG > overshare/DSG 41919c37717 < overshoot/SG --- > overshoot/GS 41924,41926c37722,37724 < oversimplify/NXDSG < oversize < oversleep/SG --- > oversimplify/DSNGX > oversize/D > oversleep/GS 41931c37729 < overspend/GS --- > overspend/SG 41933d37730 < overspill/GSM 41936,41937c37733,37734 < overstate/LDSG < overstatement/SM --- > overstate/DSLG > overstatement/MS 41944,41945c37741 < overstress/D < overstretch/DSG --- > overstretch/GDS 41951c37747 < oversupply/DSG --- > oversupply/GDS 41953,41954c37749,37750 < overt/YP < overtake/ZGRS --- > overt/Y > overtake/GS 41956a37753,37754 > overthink/SG > overthought 41958c37756 < overthrow/GSM --- > overthrow/SMG 41960d37757 < overtightened 41973c37770 < overwhelm/GSD --- > overwhelm/SGD 41996d37792 < owned/U 41998,42001c37794,37795 < ownership/SM < ox/MNS < oxalate < oxalic --- > ownership/M > ox/MN 42030d37823 < pacemen 42032c37825 < pacesetter/MS --- > pacesetter/SM 42035c37828 < pachysandra/SM --- > pachysandra/MS 42044,42046c37837,37840 < pack/UADSGM < packable < package/AGDSM --- > pack's > pack/AUGSD > package's > package/AGDS 42051,42053c37845,37846 < packhorse < packing/M < packinghouse/MS --- > packing's > packinghouse/SM 42068d37860 < paeony 42075d37866 < pageful 42089c37880 < painkiller/SM --- > painkiller/MS 42112,42114d37902 < palaeolithic < palaeontologist/S < palaeontology 42124a37913,37914 > palazzi > palazzo 42128,42129c37918 < paleographer/SM < paleographic --- > paleographer/MS 42132,42133c37921 < paleontological < paleontologist/MS --- > paleontologist/SM 42138c37926 < palimpsest/SM --- > palimpsest/MS 42150c37938 < palliative/MS --- > palliative/SM 42166c37954 < palpitate/GNDSX --- > palpitate/XGNDS 42171d37958 < paludal 42175,42176c37962,37963 < pamphleteer/SM < pan/SMD --- > pamphleteer/MS > pan/SM 42184a37972 > pancreatitis 42190c37978 < pane/MS --- > pane/KM 42194a37983 > panes 42196d37984 < pangolin 42202,42204c37990 < panicky/TR < panier/MS < panjandrum --- > panicky 42222,42223d38007 < pantiled < pantiles 42225,42226d38008 < pantograph < pantographs 42229c38011 < pantomimist/MS --- > pantomimist/SM 42236d38017 < panzer 42253c38034 < paperhanger/MS --- > paperhanger/SM 42273d38053 < paraboloid/S 42276c38056 < parachutist/SM --- > parachutist/MS 42292d38071 < paralinguistic 42296,42299c38075,38077 < parallelepiped < parallelism/SM < parallelization/SM < parallelize/SGD --- > parallelism/MS > parallelization/MS > parallelize/GDS 42304d38081 < paralytically 42307,42308d38083 < paramagnetic < paramagnetism 42312c38087 < paramedical/SM --- > paramedical/MS 42315,42317d38089 < parametrically < parametrization < parametrize/DS 42328c38100 < paraphrase/MGDS --- > paraphrase/DSMG 42330c38102 < paraplegic/MS --- > paraplegic/SM 42332c38104 < parapsychologist/SM --- > parapsychologist/MS 42334a38107 > parasailing 42340,42341d38112 < parasitologist < parasitology 42364d38134 < parenteral 42367c38137 < parenthesize/GDS --- > parenthesize/DSG 42379c38149 < parimutuel/SM --- > parimutuel/MS 42382c38152 < parishioner/SM --- > parishioner/MS 42395c38165 < parliamentarian/MS --- > parliamentarian/SM 42398d38167 < parlormaid 42404,42405d38172 < parochiality < parodied/U 42420c38187 < parse/DRSJZG --- > parse/DRSG 42428c38195,38196 < part/CDSGM --- > part's > part/CDSG 42436,42437c38204,38205 < participant/MS < participate/GNVDS --- > participant/SM > participate/DSGN 42439c38207 < participator/SM --- > participator/MS 42442c38210 < participle/SM --- > participle/MS 42446d38213 < particularism 42450c38217 < particulate/MS --- > particulate/SM 42454c38221,38222 < partition/ADGMS --- > partition/GMDS > partitions/A 42455a38224 > partizan/SM 42471c38240 < passageway/SM --- > passageway/MS 42483,42484c38252 < passionateness < passionflower/MS --- > passionflower/SM 42486d38253 < passivated 42489,42490d38255 < passivisation < passivise/DSG 42495,42496c38260 < passmark < passover --- > passphrase/S 42498a38263 > passé 42503d38267 < pasted/U 42507c38271 < pasteurize/DRSZG --- > pasteurize/ZGDRS 42515d38278 < pastis 42518d38280 < pastoralism 42526c38288 < pat/SZMR --- > pat/SM 42528d38289 < patchable 42537c38298 < patent/GMDYBS --- > patent/GMDYS 42544c38305 < paternoster/SM --- > paternoster/MS 42551d38311 < pathogenesis 42554,42555c38314,38315 < pathologist/MS < pathology/SM --- > pathologist/SM > pathology/M 42571c38331 < patriarchate/SM --- > patriarchate/MS 42592d38351 < patronization 42601d38359 < patten/S 42604d38361 < patternless 42623c38380 < pawnbroker/SM --- > pawnbroker/MS 42627c38384,38385 < pay/ASGBLM --- > pay's > pay/ASGBL 42643c38401,38402 < payware/S --- > paywall/SM > payware 42651,42652d38409 < peacefuller < peacefullest 42654c38411 < peacekeeper/MS --- > peacekeeper/SM 42656c38413 < peacemaker/SM --- > peacemaker/MS 42665c38422 < peaky/P --- > peaky 42671d38427 < peartrees 42674c38430 < peashooter/MS --- > peashooter/SM 42678c38434 < pebbly/TR --- > pebbly 42689c38445 < peculate/GNXDS --- > peculate/GNDS 42691c38447 < peculator/M --- > peculator/SM 42695d38450 < pedagog/SM 42713c38468 < pedestrianize/DSG --- > pedestrianize/GDS 42722,42723d38476 < pedlar/MS < pedology 42767d38519 < pellmell 42790c38542 < penetrate/XDSGNV --- > penetrate/DSGNVX 42807d38558 < penlite/MS 42817c38568 < pennyweight/SM --- > pennyweight/MS 42830,42832c38581,38582 < pentameter/MS < pentasyllabic < pentathlete/SM --- > pentameter/SM > pentathlete/MS 42834,42835d38583 < pentatonic < pentecostal 42838c38586 < penultimate/SMY --- > penultimate/SM 42841c38589 < penurious/YP --- > penurious/PY 42849d38596 < peperoni 42853c38600 < peppermint/MS --- > peppermint/SM 42863c38610 < perambulate/DSGNX --- > perambulate/XGNDS 42865c38612 < perambulator/SM --- > perambulator/MS 42872d38618 < perceptibility 42875c38621 < perception/MS --- > perception/SM 42877c38623 < perceptive/YP --- > perceptive/PY 42879d38624 < percepts 42883d38627 < perchlorate 42889d38632 < percuss/GVDS 42891,42892c38634,38635 < percussionist/SM < percussive/Y --- > percussionist/MS > percussive 42895c38638 < peregrinate/GNXDS --- > peregrinate/DSXGN 42899c38642 < peremptory/P --- > peremptory 42908c38651 < perfectionist/MS --- > perfectionist/SM 42912c38655 < perforate/GNDSX --- > perforate/GNXDS 42915c38658 < perform/BSDRZG --- > perform/SDRZG 42916a38660 > performative 42924d38667 < perfused 42928d38670 < periastron 42929a38672,38673 > pericardial > pericarditis 42932d38675 < periglacial 42948,42949c38691,38692 < peripatetic/SM < peripheral/SMY --- > peripatetic/MS > peripheral/MYS 42975c38718 < permalink/MS --- > permalink/SM 42979d38721 < permanganate 42984d38725 < permissibility 42987c38728 < permission/SM --- > permission/MS 42994,42995c38735 < permittivity < permutation/MS --- > permutation/SM 42997c38737 < pernicious/PY --- > pernicious/YP 42999d38738 < pernickety 43001d38739 < peroxidase 43003c38741 < perpendicular/MYS --- > perpendicular/SMY 43005c38743 < perpetrate/GNDS --- > perpetrate/DSGN 43007c38745 < perpetrator/SM --- > perpetrator/MS 43009c38747 < perpetuate/GNDS --- > perpetuate/DSGN 43016,43017c38754 < perry < persecute/GNDSX --- > persecute/GNXDS 43022d38758 < persevering/Y 43030c38766 < persona/M --- > persona/SM 43036,43038c38772 < personalization/C < personalize/CGDS < personalized/U --- > personalize/CDSG 43041c38775 < personify/XDSGN --- > personify/GDSNX 43043c38777 < perspective/SM --- > perspective/MS 43048c38782 < perspicuous/Y --- > perspicuous 43055c38789 < persuasive/YP --- > persuasive/PY 43065c38799 < perturbation/MS --- > perturbation/SM 43086c38820 < pessimal/SDYG --- > pessimal 43106d38839 < pethidine 43110c38843 < petitioner/MS --- > petitioner/M 43113c38846 < petrify/NDSG --- > petrify/DSG 43115,43117c38848 < petrodollar/SM < petrographic < petrographical --- > petrodollar/MS 43121d38851 < petrological 43134c38864 < pettish/YP --- > pettish/Y 43160d38889 < phantasy/GDSM 43167c38896 < pharmaceutical/MS --- > pharmaceutical/SM 43169c38898 < pharmacist/SM --- > pharmacist/MS 43171c38900 < pharmacologist/MS --- > pharmacologist/SM 43174c38903 < pharmacopoeia/SM --- > pharmacopoeia/MS 43186,43188c38915 < phenol/MS < phenolic < phenolphthalein --- > phenol/M 43192c38919 < phenomenological/Y --- > phenomenological 43195,43196c38922 < phenotype/S < phenylalanine --- > phenotype 43201c38927 < philander/DRSZG --- > philander/ZGDRS 43206c38932 < philanthropist/SM --- > philanthropist/MS 43209c38935 < philatelist/SM --- > philatelist/MS 43213c38939 < philistine/SM --- > philistine/MS 43219c38945 < philosopher/SM --- > philosopher/MS 43222c38948 < philosophize/ZGDRS --- > philosophize/DRSZG 43226d38951 < philtre/MS 43230,43232c38955,38956 < phlebotomist/SM < phlebotomize/SGD < phlebotomy --- > phlebotomist/MS > phlebotomize/GDS 43237d38960 < phlogiston 43252d38974 < phoneticist 43254c38976,38977 < phoney/GMDS --- > phoneyed > phoneying 43263c38986 < phonologist/SM --- > phonologist/MS 43265d38987 < phonon 43268d38989 < phosphatase 43269a38991 > phosphodiesterase 43277a39000 > photobomb/DGS 43279,43280d39001 < photochemical/Y < photochemistry 43285c39006 < photoengrave/ZGDRSJ --- > photoengrave/DRSJZG 43298,43300c39019 < photojournalist/MS < photolysis < photolytic --- > photojournalist/SM 43302,43305d39020 < photometric < photometrically < photometry < photomultiplier 43307d39021 < photoreceptor 43309d39022 < photosphere 43317c39030,39031 < photosynthetically --- > phototropic > phototropism 43320d39033 < photovoltaic 43322c39035,39036 < phrase/AGDSM --- > phrase's > phrase/AGDS 43326,43327c39040 < phreaking/S < phrenological/Y --- > phreaking 43332d39044 < phylogenetic 43349c39061 < physiologist/SM --- > physiologist/MS 43351c39063 < physiotherapist/SM --- > physiotherapist/MS 43354d39065 < phytoplankton 43358d39068 < pianistic 43368a39079 > picante 43374d39084 < pickaback 43376d39085 < pickaxe/M 43382c39091 < pickpocket/SMG --- > pickpocket/SM 43384c39093 < picky/TRP --- > picky/PTR 43389d39097 < picoseconds 43391d39098 < pictogram 43393d39099 < pictographic 43397c39103 < picturesque/YP --- > picturesque/PY 43406,43407c39112 < piecewise < piecework/ZMR --- > piecework/MRZ 43408a39114 > piecrust/SM 43411c39117 < pierce/JZGDRS --- > pierce/JGDS 43418c39124 < pigeonhole/MGDS --- > pigeonhole/DSMG 43431d39136 < pigmy/SM 43436c39141 < pigtail/MDS --- > pigtail/MS 43439a39145 > pikestaves 43441d39146 < pilaff/MS 43443d39147 < pilau/SM 43453c39157 < pill/MS --- > pill/MDSG 43476,43477c39180,39181 < pincer/MDS < pinch/GMDRS --- > pincer/MS > pinch/GMDS 43479,43480c39183,39184 < pine/AGDSM < pineal --- > pine's > pine/AGDS 43496c39200 < pinnacle/DSM --- > pinnacle/SM 43502d39205 < pinocle/M 43539a39243 > pirozhki/M 43566d39269 < piths 43571,43572d39273 < pitifuller < pitifullest 43587,43588c39288 < pixie/M < pixy/SM --- > pixie/MS 43594a39295,39296 > piñata/MS > piñon/SM 43605c39307,39308 < place/EAGLDSM --- > place's > place/AESDLG 43608c39311 < placeholder/SM --- > placeholder/MS 43611d39313 < placemen 43620,43622c39322,39324 < plagiarism/MS < plagiarist/MS < plagiarize/ZGDRS --- > plagiarism/SM > plagiarist/SM > plagiarize/DRSZG 43645c39347,39348 < plane/CGDSM --- > plane's > plane/CGDS 43649c39352 < planetarium/MS --- > planetarium/SM 43651,43652d39353 < planetesimals < planetoids 43664c39365 < plantation/SM --- > plantation/MS 43670,43671c39371 < plasma/SM < plasmid/S --- > plasma/M 43675d39374 < plasterwork 43677d39375 < plasticine 43679c39377,39378 < plasticize/DSZG --- > plasticize/DSG > plastique 43697a39397 > platys 43703d39402 < playability/U 43720d39418 < playings 43756c39454 < plenteous/Y --- > plenteous 43764d39461 < pleural 43787c39484 < plotted/A --- > plotted 43791c39488 < plow/ZGMDS --- > plow/GMDS 43795,43796c39492,39494 < ploy/SM < pluck/MDRSG --- > ploy's > ploy/S > pluck/MDSG 43800,43802c39498,39501 < plug/USM < plugged/UA < plugging/UA --- > plug's > plug/US > plugged/U > plugging/U 43804c39503 < plugin/MS --- > plugin/SM 43808d39506 < plumbago 43812a39511,39512 > plummer > plummest 43840c39540 < ply/AZGDSM --- > ply/AGDSM 43843c39543 < pneumatic/S --- > pneumatic 43844a39545,39547 > pneumococcal > pneumococci > pneumococcus 43857c39560 < podcast --- > podcast/SM 43860d39562 < podgy 43872d39573 < pogo 43877d39577 < poikilothermic 43882c39582 < pointed/PY --- > pointed/Y 43886c39586 < pointless/YP --- > pointless/PY 43901c39601 < polarization/CMS --- > polarization/CM 43911d39610 < poleward/S 43918c39617 < policyholder/SM --- > policyholder/MS 43922c39621 < polish/ZGMDRSJ --- > polish/ZGMDRS 43931c39630 < politician/MS --- > politician/SM 43939c39638 < poll/XGMDNS --- > poll/GMDNS 43945c39644 < pollinator/MS --- > pollinator/SM 43948c39647 < pollock/MS --- > pollock/M 43951c39650 < pollute/ZGNDRSX --- > pollute/ZGNDRS 43961a39661,39662 > polyacrylamide > polyamory/S 43964,43967d39664 < polyatomic < polycarbonate < polychromatic < polychrome 43969,43970d39665 < polycrystalline < polycyclic 43986d39680 < polymerase/S 43991d39684 < polymorphism/S 43993,43994c39686,39687 < polynomial/SMY < polynucleotide/MS --- > polynomial/MS > polynucleotide/SM 43996c39689 < polypeptide/MS --- > polypeptide's 44000c39693 < polysaccharides --- > polys 44005c39698 < polytechnic/SM --- > polytechnic/MS 44010d39702 < polytopes 44012c39704 < polyurethane/SM --- > polyurethane/MS 44024d39715 < pompon/SM 44029d39719 < poncey 44035c39725 < ponderous/PY --- > ponderous/YP 44043c39733 < pontificate/MGNDSX --- > pontificate/DSMG 44072d39761 < poppadum/S 44082c39771 < popularization/SM --- > popularization/M 44085d39773 < populated/U 44116c39804,39805 < port/CAEGDSM --- > port's/A > port/CAEGDS 44126,44127c39815 < porterage < porterhouse/MS --- > porterhouse/SM 44133a39822 > portière/MS 44136c39825 < portmanteau/SM --- > portmanteau/MS 44138c39827 < portraitist/MS --- > portraitist/SM 44143c39832,39833 < pose/CAKEGDSM --- > pose's/A > pose/CAKEGDS 44148,44154c39838,39842 < position/ACKESM < positionable < positional/KC < positionally < positioned/KA < positioning/AK < positive/PMYTRS --- > position/CKEMS > positional/K > positioned/K > positioning/K > positive/MYPS 44158d39845 < positivity 44164c39851 < possessive/SPMY --- > possessive/SMYP 44168c39855 < possible/RSMT --- > possible/SM 44177a39865 > postcolonial 44180c39868 < postdoc --- > postdoc/MS 44185,44186c39873 < postfixes < postgraduate/MS --- > postgraduate/SM 44213c39900 < postponement/MS --- > postponement/SM 44240c39927 < potentiometer/S --- > potentiate/GDS 44267c39954,39955 < pound/KDSGM --- > pound's > pound/KDSG 44270c39958 < pour/GDSBJ --- > pour/GDSJ 44280c39968 < powerful/YP --- > powerful/Y 44282c39970 < powerless/YP --- > powerless/PY 44286d39973 < poxy 44291c39978 < practicability/SM --- > practicability/M 44298,44299c39985 < practitioner/MS < praesidium/S --- > practitioner/SM 44305c39991 < pragmatist/SM --- > pragmatist/MS 44328d40013 < prayerbook 44330c40015 < preach/DRSZGJL --- > preach/DRSZGL 44334,44335c40019 < preadolescence/MS < preallocate --- > preadolescence/SM 44337,44338d40020 < preamp < preamplifier 44342,44343d40023 < preauthorize < prebendary 44346c40026 < precarious/YP --- > precarious/PY 44352c40032 < precedence/MS --- > precedence/M 44356,44357d40035 < precess/GD < precession 44360c40038 < precious/PY --- > precious/YP 44363,44364c40041,40042 < precipitant/SM < precipitate/DSXMYGN --- > precipitant/MS > precipitate/XMYGNDS 44368c40046 < precise/XDRSYTGNP --- > precise/DRSYTGNP 44371d40048 < preclinical 44374c40051 < precocious/PY --- > precocious/YP 44377c40054 < precognition/SM --- > precognition/M 44380,44383c40057,40059 < precomputed < preconceive/DSG < preconception/MS < precondition/GSMD --- > preconceive/GDS > preconception/SM > precondition/MDGS 44387c40063 < predate/XDSGN --- > predate/DSG 44392,44394c40068,40069 < predecessor/MS < predeclared < predefine/DG --- > predecessor/SM > predefined 44399c40074 < predetermine/DRSZG --- > predetermine/ZGDRS 44410,44411c40085 < predicted/U < prediction/MS --- > prediction/SM 44413c40087 < predigest/DSG --- > predigest/GDS 44416c40090 < predisposition/SM --- > predisposition/MS 44419c40093 < predominate/DSYG --- > predominate/YGDS 44433c40107 < prefabricate/GNDS --- > prefabricate/DSGN 44453a40128 > prehistorian/S 44457c40132,40133 < prejudge/GDS --- > prehuman > prejudge/LGDS 44459c40135 < prejudgment/MS --- > prejudgment/SM 44470d40145 < preloaded 44473,44474c40148 < premature/YP < prematurity --- > premature/Y 44477c40151 < premeditate/GNDS --- > premeditate/DSGN 44483c40157 < premiership/SM --- > premiership/MS 44485d40158 < premiss/SM 44489c40162 < premonition/SM --- > premonition/MS 44491a40165 > prenup/SM 44493c40167 < preoccupation/MS --- > preoccupation/SM 44496c40170 < preordain/DSG --- > preordain/GDS 44501,44502c40175 < preparation/MS < preparative --- > preparation/SM 44504c40177 < prepare/ZGDRS --- > prepare/GDS 44509d40181 < preplanned 44513c40185 < preposition/MS --- > preposition/SM 44523d40194 < preprocessed 44525c40196 < prepubescent/MS --- > prepubescent/SM 44528,44529c40199,40200 < prerecord/SGD < preregister/DGS --- > prerecord/GSD > preregister/SGD 44531c40202 < prerequisite/SM --- > prerequisite/MS 44538c40209 < preschool/SMRZ --- > preschool/SZMR 44546,44547d40216 < prescriptivism < prescriptivist 44549d40217 < preselect/SD 44554d40221 < presentational/A 44556c40223 < presentiment/MS --- > presentiment/SM 44566c40233 < preshrink/SG --- > preshrink/GS 44575c40242,40243 < press/ACGSDM --- > press's > press/ACGSD 44584,44586c40252,40253 < pressurize/CDSG < pressurized/U < pressurizer/MS --- > pressurize/CGDS > pressurizer/SM 44588,44589d40254 < prestidigitator < prestidigitatorial 44596,44597c40261,40262 < presumptive/Y < presumptuous/PY --- > presumptive > presumptuous/YP 44605d40269 < pretending/U 44616,44617d40279 < pretreated < pretreatment/S 44626,44627c40288,40289 < prevalent/Y < prevaricate/GNXDS --- > prevalent > prevaricate/DSGNX 44632,44634c40294,40295 < preventative/SM < preventible < prevention/SM --- > preventative/MS > prevention/M 44639d40299 < prevue/SM 44644c40304,40305 < price/AGDSM --- > price's > price/AGDS 44646a40308,40309 > pricier > priciest 44652d40314 < pricy/RT 44658c40320 < priesthood/MS --- > priesthood/SM 44660c40322 < priestly/PRT --- > priestly/RTP 44662c40324 < priggish/YP --- > priggish/P 44664c40326 < prim/YP --- > prim/ZGDRYP 44666d40327 < primaeval 44671c40332 < prime/MZGDRSP --- > prime/MS 44675c40336 < primitive/PSMY --- > primitive/SPMY 44680c40341 < primogenitor/MS --- > primogenitor/SM 44697d40357 < printed/U 44722c40382 < privatization/MS --- > privatization/SM 44731c40391 < prizefight/MRSZG --- > prizefight/ZGSMR 44734c40394 < prizewinner/SM --- > prizewinner/MS 44737c40397 < probabilist --- > proactive/Y 44739d40398 < probabilistically 44743c40402 < probate/MNV --- > probate/MN 44751c40410 < problematic/U --- > problematic 44756c40415 < procedural/Y --- > procedural 44761,44762c40420,40421 < process/AGDSM < processable --- > process's > process/AGDS 44764,44765c40423,40424 < procession/DG < processional/SM --- > procession/GD > processional/MS 44767d40425 < proclaim/Z 44770c40428 < procrastinate/GNXDS --- > procrastinate/DSGN 44772c40430 < procrastinator/SM --- > procrastinator/MS 44774,44775d40431 < procreational < procreatory 44777,44778c40433 < proctorial < procurement/SM --- > procurement/M 44784c40439,40440 < produce/AZGDRSM --- > produce's > produce/AZGDRS 44787d40442 < product/M 44789c40444 < productive/UAY --- > productive/UY 44793c40448 < profanation/SM --- > profanation/MS 44798,44799c40453,40454 < profession/MS < professional/SMY --- > profession/SM > professional/MYS 44805c40460 < professorship/MS --- > professorship/SM 44807c40462 < proficiency/SM --- > proficiency/M 44809d40463 < profiler/SM 44814c40468 < profiteer/MDSG --- > profiteer/MDGS 44816c40470 < profiterole/MS --- > profiterole/SM 44820,44821c40474 < proforma/S < profound/PRYT --- > profound/RYTP 44828a40482 > progestin/S 44833c40487 < prognosticate/XDSGN --- > prognosticate/XGNDS 44836,44838c40490,40493 < program/ZGMDRS < programer/M < programmable/SM --- > program/CAS > programed > programing > programmable/MS 44840,44841c40495 < programmatically < programmed/CA --- > programmed/AC 44843c40497 < programming/MS --- > programming/SM 44845,44846c40499,40500 < progression/SM < progressive/SMYP --- > progression/MS > progressive/PMYS 44853,44854c40507 < project/GVMDS < projected/A --- > project/GMDS 44857,44858c40510 < projectionist/MS < projective/Y --- > projectionist/SM 44859a40512 > prokaryotic 44869d40521 < prologize 44871d40522 < prologuize 44874c40525 < promenade/MZGDRS --- > promenade/MGDS 44876c40527 < prominence/MS --- > prominence/M 44885c40536 < promote/BDRZG --- > promote/DRZG 44894c40545 < promulgate/XGNDS --- > promulgate/GNDS 44898c40549 < pronator/MS --- > pronator/SM 44906,44907c40557 < pronounced/Y < pronouncement/MS --- > pronouncement/SM 44911c40561 < proofread/SZGR --- > proofread/SRZG 44915,44916c40565,40566 < propagandist/SM < propagandize/DSG --- > propagandist/MS > propagandize/GDS 44920d40569 < propane/M 44924d40572 < propellent/MS 44947c40595 < proportional/EY --- > proportional/YS 44949d40596 < proportionals 44956c40603 < proprietor/MS --- > proprietor/SM 44958c40605 < proprietorship/MS --- > proprietorship/SM 44961d40607 < proprioceptive 44965d40610 < propylene 44972a40618 > proscribe/DG 44974,44976c40620,40621 < proscriptive < prose/MS < prosecute/DSGNBX --- > prose/M > prosecute/DSXGN 44978c40623 < prosecutor/SM --- > prosecutor/MS 44981c40626 < proselytize/ZGDRS --- > proselytize/DRSZG 44983d40627 < prosodic 44987c40631 < prospector/MS --- > prospector/SM 45002c40646 < protagonist/MS --- > protagonist/SM 45004d40647 < protease 45010c40653 < protective/YP --- > protective/PY 45013c40656 < protectorate/SM --- > protectorate/MS 45018,45019c40661 < protestantism < protestation/SM --- > protestation/MS 45021d40662 < protists 45026c40667 < prototype/MGDS --- > prototype/MGS 45031d40671 < protozoon/M 45036d40675 < protrusive 45038a40678,40679 > protégé/MS > protégée/S 45040c40681 < prov/ZNRB --- > prov/NB 45042d40682 < provable/EU 45051c40691 < provide/BDRSZG --- > provide/DRSZG 45063c40703 < provocative/YP --- > provocative/PY 45076c40716 < proximate/Y --- > proximate 45090d40729 < prussic 45092c40731 < pryer/MS --- > précis/MDG 45095d40733 < psalter 45103,45104d40740 < pseudopod < pseudopodia 45124a40761 > psychoanalyses 45126c40763 < psychoanalyst/MS --- > psychoanalyst/SM 45129c40766 < psychoanalyze/GDS --- > psychoanalyze/DSG 45131c40768 < psychodrama/SM --- > psychodrama/MS 45135,45136d40771 < psycholinguistic/S < psycholinguists 45138c40773 < psychologist/SM --- > psychologist/MS 45147a40783 > psychopharmacology 45150d40785 < psychosocial 45160,45161c40795 < pterodactyl/SM < pterosaurs --- > pterodactyl/MS 45173c40807 < publication/AMS --- > publication/ASM 45177d40810 < publicized/U 45180c40813 < publishable/U --- > publishable 45211c40844 < pugnacious/PY --- > pugnacious/YP 45214d40846 < puissant 45227d40858 < pullup/SM 45248c40879 < punch/MDRSBZG --- > punch/MDRSZG 45250d40880 < punchbowl 45256c40886 < punctilious/YP --- > punctilious/PY 45260c40890 < punctuate/XGNDS --- > punctuate/GNDS 45262d40891 < punctuational 45272c40901 < punishment/SM --- > punishment/MS 45275d40903 < punkin/SM 45289d40916 < pupillage 45312c40939 < purify/DRSZGN --- > purify/NDRSZG 45320c40947 < purity/SM --- > purity/M 45328,45329c40955,40956 < purpose/DSMYGV < purposeful/PY --- > purpose/DSMYG > purposeful/YP 45331c40958 < purposeless/YP --- > purposeless/PY 45347c40974 < push/BZGMDRS --- > push/ZGMDRS 45367c40994 < putative/Y --- > putative 45376d41002 < putridity 45389d41014 < puzzling/Y 45390a41016,41017 > pwn/SGD > pyelonephritis 45400d41026 < pyridine 45404,45405d41029 < pyrolysis < pyrolyze 45407c41031 < pyromaniac/MS --- > pyromaniac/SM 45411d41034 < pyroxene/S 45422d41044 < quackish 45424c41046 < quadrangle/MS --- > quadrangle/SM 45429,45430c41051 < quadratically < quadrature/S --- > quadrature 45432c41053 < quadrennium/SM --- > quadrennium/MS 45434,45435c41055,41056 < quadrilateral/MS < quadrille/MNSX --- > quadrilateral/SM > quadrille/XMNS 45437d41057 < quadripartite 45441d41060 < quadrophonic 45445,45446c41064,41065 < quadruplet/SM < quadruplicate/DSMGN --- > quadruplet/MS > quadruplicate/MGNDS 45448,45449d41066 < quadruply < quadrupole 45452d41068 < quahaug/SM 45458c41074 < quaky/TR --- > quaky 45462c41078 < qualify/EXGNDS --- > qualify/EGXNDS 45470c41086 < quantifiable/U --- > quantifiable 45472d41087 < quantified/U 45477,45478d41091 < quantization < quantize/D 45487d41099 < quarrymen 45490c41102 < quarterback/SGMD --- > quarterback/GMDS 45498,45500d41109 < quartette/MS < quartic/S < quartile/S 45503d41111 < quartzite 45507,45509d41114 < quasilinear < quaternary < quaternion/S 45527d41131 < quern 45531c41135,41136 < ques/S --- > ques > quesadilla/MS 45535c41140 < question/BJSMDRZG --- > question/SMDRZGBJ 45541,45542c41146,41148 < questionnaire/MS < queue/MDSG --- > questionnaire/SM > queue's > queue/CDSG 45556d41161 < quiesce/D 45572d41176 < quincentenary 45576d41179 < quinquennial 45579c41182 < quintessence/MS --- > quintessence/SM 45582,45584d41184 < quintette/MS < quintic < quintillion 45586c41186 < quintuplet/SM --- > quintuplet/MS 45589d41188 < quipper 45592c41191,41192 < quire/IASM --- > quire's > quire/IAS 45605d41204 < quivering/Y 45614a41214 > quo/H 45620c41220 < quot/RB --- > quot/B 45624,45625c41224,41225 < quote/UDSGM < quoth --- > quote's > quote/UDSG 45642c41242 < racecourse/MS --- > racecourse/SM 45659c41259 < racketeer/GSMD --- > racketeer/SMDG 45662c41262 < racoon/MS --- > racoon 45664c41264 < racquetball/MS --- > racquetball/SM 45668,45670c41268 < radarscope/MS < radder < raddest --- > radarscope/SM 45673d41270 < radian/S 45676c41273 < radiate/DSGNVX --- > radiate/DSGNX 45678d41274 < radiative/Y 45689d41284 < radioastronomical 45691d41285 < radiogalaxy/S 45695,45696c41289 < radioisotope/SM < radiological --- > radioisotope/MS 45701c41294 < radiometer/SM --- > radiometer/MS 45704d41296 < radionuclide 45707c41299,41300 < radiosonde/MS --- > radiosonde/SM > radiosurgery 45711,45712c41304,41305 < radiotelephone/SM < radiotherapist/SM --- > radiotelephone/MS > radiotherapist/MS 45717d41309 < radix 45746c41338,41339 < rail/CGDSM --- > rail's > rail/CGDS 45759d41351 < raincloud/S 45763,45764d41354 < rainforest/S < rainless 45769d41358 < rainswept 45775d41363 < raj 45789d41376 < ramequin/SM 45792c41379 < ramify/DSGXN --- > ramify/DSXNG 45796c41383 < ramp/MDS --- > ramp/GMS 45814c41401 < rand/MS --- > rand/M 45823c41410,41411 < range/CGDSM --- > range's > range/CGDS 45860c41448 < rapscallion/SM --- > rapscallion/MS 45868c41456 < rarefaction/SM --- > rarefaction/M 45876c41464 < rasp/GMDRS --- > rasp/GMDS 45881c41469 < rasterize/SGDR --- > rasterize/DRSG 45886,45887c41474 < rate/BJXMZGNDRS < rateable --- > rate/JXMZGNDRS 45892c41479 < rathskeller/MS --- > rathskeller/SM 45895c41482 < ratify/DRSZGNX --- > ratify/NDRSZG 45904c41491 < rationalist/MS --- > rationalist/SM 45906c41493 < rationality/SM --- > rationality/M 45908c41495 < rationalize/GDS --- > rationalize/DSG 45910d41496 < ratlin/SM 45917c41503 < rattlebrain/MDS --- > rattlebrain/SMD 45919c41505 < rattlesnake/MS --- > rattlesnake/SM 45921c41507 < rattly/RT --- > rattly 45933c41519,41520 < ravel/UDSGM --- > ravel's > ravel/UDSG 45938c41525 < raving/MY --- > raving/M 45951c41538 < razor/MSG --- > razor/MS 45953,45954d41539 < razorbills < razorblades 45956d41540 < razzamatazz 45963d41546 < reached/U 45965d41547 < reacquisition 45968a41551 > reactivity/M 45987d41569 < realizable/U 46008d41589 < reasoned/U 46011c41592 < reasonless --- > reassemble/DSG 46022d41602 < rebook 46031d41610 < recalibrate/GN 46041d41619 < received/U 46045,46046c41623 < recension < recent/YTP --- > recent/RYTP 46048c41625 < receptacle/MS --- > receptacle/SM 46050,46051c41627,41628 < receptionist/MS < receptive/YP --- > receptionist/SM > receptive/PY 46056c41633 < recessional/MS --- > recessional/SM 46059d41635 < recharge/R 46060a41637 > recherché 46065,46066c41642,41643 < reciprocal/MYS < reciprocate/DSGN --- > reciprocal/SMY > reciprocate/GNDS 46070,46071c41647,41648 < recitalist/SM < recitative/SM --- > recitalist/MS > recitative/MS 46075c41652 < reckon/SJDRG --- > reckon/SJDG 46077,46078c41654 < reclaim/BR < reclamation/MS --- > reclamation/M 46082d41657 < recognition/S 46084,46086c41659,41660 < recognizably/U < recognizance/S < recognize/BDRSZG --- > recognizably > recognize/DRSGB 46088d41661 < recombinant 46090d41662 < recommended/U 46094,46095c41666 < reconcile/GLDSB < reconciled/U --- > reconcile/GDSB 46098,46099c41669,41671 < reconnaissance/SM < reconnection --- > reconfiguration > reconfigure/D > reconnaissance/MS 46103,46106d41674 < recontribute < reconversion < recopy/DSG < record/RBJZ 46108,46111c41676,41677 < recorder/M < recording/M < recordists < recount/SGMD --- > recorder/MS > recording/MS 46113d41678 < recouple 46119c41684 < recriminate/GNXDS --- > recriminate/DSGNX 46128d41692 < recrystallization 46135c41699 < rectify/NDRSZGX --- > rectify/XNDRSZG 46143c41707 < recuperate/DSGNV --- > recuperate/GNVDS 46147a41712 > recurrent/Y 46149,46153c41714,41716 < recurse/DGSV < recursion/S < recuse/DGS < recyclable/MS < recycle/BZ --- > recurse/XNV > recuse/DSG > recyclable/SM 46169d41731 < redeclaration 46171d41732 < redeemed/U 46173d41733 < redelivery 46176d41735 < redeposition 46180,46182c41739 < redisplay < redistribute/V < redistrict/DG --- > redistrict/GD 46194d41750 < redshift/S 46197d41752 < reduced/U 46199d41753 < reducibility 46203,46204c41757 < reductionism < reductionist/S --- > reductionist 46215c41768,41769 < reel/UGDSM --- > reel's > reel/UGDS 46219d41772 < refactor/SMDG 46225d41777 < refereed/U 46227,46230c41779,41780 < reference/MGDRS < referenced/U < referencing/U < referendum/SM --- > reference/MGDS > referendum/MS 46232c41782 < referential/Y --- > referential 46239c41789,41790 < refill/BJM --- > refile/DSG > refill/BM 46241c41792 < refinement/MS --- > refinement/SM 46248,46253c41799,41800 < reflectance < reflected/U < reflection/SM < reflectional < reflective/PY < reflectivity --- > reflection/MS > reflective/Y 46255,46256c41802 < reflexive/PSMY < reflexivity --- > reflexive/SMY 46258d41803 < reflooring 46260c41805 < reform/MB --- > reform/MZ 46266c41811 < refortify/DSG --- > refortify/GDS 46268c41813 < refractors --- > refraction/M 46271,46272c41816 < refresh/ZGBLDRS < refreshed/U --- > refresh/ZGLDRS 46279d41822 < refrigerated/U 46289d41831 < refuseniks 46298d41839 < regarded/U 46305c41846,41847 < regenerate/VX --- > regenerate/V > regex/M 46319d41860 < registrable 46346c41887 < regurgitate/GNDS --- > regurgitate/DSGN 46351c41892 < rehabilitate/DSGNV --- > rehabilitate/GNVDS 46359d41899 < rehydrate 46361c41901 < reimburse/BLDSG --- > reimburse/BDSGL 46363d41902 < reimplementation 46366,46368c41905,41907 < reinforce/GDSL < reinforcement/MS < reinitialization --- > reinforce/LGDS > reinforcement/SM > reinitialize 46372d41910 < reinvestigation 46379c41917 < rejuvenate/DSXGN --- > rejuvenate/DSGN 46381d41918 < rejuvenatory 46387,46388c41924,41925 < relational/Y < relationship/SM --- > relational > relationship/MS 46393d41929 < relativistically 46395d41930 < relator 46400d41934 < relaxing/Y 46402c41936 < releasable/U --- > release/B 46417d41950 < relict 46426,46427c41959 < relink/GD < relinquish/GLDS --- > relinquish/LDSG 46430a41963,41964 > relist/SGD > relocate/B 46436c41970 < remainder/MDSG --- > remainder/GMDS 46447c41981 < remembrance/SM --- > remembrance/MS 46450c41984 < reminiscence/SM --- > reminiscence/MS 46462,46463c41996,41997 < remonstrant/MS < remonstrate/XGNDS --- > remonstrant/SM > remonstrate/DSG 46470d42003 < remould/SDG 46472c42005 < remunerate/DSGNVX --- > remunerate/GNVXDS 46477d42009 < renationalisation 46490,46491c42022 < renormalization < renounce/DSLG --- > renounce/LDSG 46501a42033 > reorg/DSG 46504,46505c42036,42037 < repairable/U < repairer/MS --- > repair/BZR > repairer/M 46508d42039 < repaper 46510c42041 < reparation/SM --- > reparation/MS 46513c42044 < repatriate/DSXMGN --- > repatriate/XDSMGN 46516d42046 < repeatability/U 46523d42052 < repellant/SM 46526c42055 < repelling/Y --- > repelling 46529c42058 < repentant/UY --- > repentant/Y 46534c42063 < repetitious/PY --- > repetitious/YP 46538c42067 < rephotograph/GD --- > rephotograph/DG 46541c42070 < replenish/DSGL --- > replenish/LGDS 46547,46548c42076 < replicable < replicate/DSG --- > replicate/DSGNX 46551,46553d42078 < replug < reply/XRN < report/MRBZ 46559c42084 < reprehend/DSG --- > reprehend/DGS 46564,46566c42089,42091 < represent/DGSB < representable/U < representative/PSM --- > represent/GDS > representational > representative/MS 46568,46569c42093,42094 < repression/SM < repressive/YP --- > repression/MS > repressive/PY 46574,46575c42099,42100 < reproach/BGMDS < reproachful/PY --- > reproach/GMDSB > reproachful/Y 46577,46581c42102 < reproducibility < reproducible/U < reproducibly < reprogram/S < reprogrammable --- > reproductive 46593,46594c42114,42115 < repulsion/SM < repulsive/PY --- > repulsion/M > repulsive/YP 46603d42123 < requested/U 46606,46607c42126,42127 < requirement/SM < requisite/MNXS --- > requirement/MS > requisite/XMNS 46615,46617d42134 < reredos < reregistration < rerouteing 46619d42135 < res/C 46626,46627c42142 < reselect < reselection --- > resell/SG 46629c42144 < resend/G --- > resend 46633c42148 < resentment/SM --- > resentment/MS 46635c42150 < reservation/SM --- > reservation/MS 46642d42156 < reshow/G 46649d42162 < residuary 46652,46653c42165 < resignal < resignation/MS --- > resignation/SM 46659,46661c42171,42172 < resiny < resist/SMDRZGV < resistance/MS --- > resist/SMDRZG > resistance/SM 46664,46665d42174 < resistive/Y < resistivity 46667a42177 > resit/S 46671c42181 < resolute/XPYTNR --- > resolute/PY 46673,46675c42183 < resolvability < resolvable/U < resolve/M --- > resolve/RBM 46677d42184 < resolvent 46688d42194 < respecify 46703,46704c42209,42210 < respond/SZGDR < respondent/MS --- > respond/SGD > respondent/SM 46709c42215 < responsive/UPY --- > responsive/UYP 46712d42217 < restart/B 46715d42219 < restauranteur/SM 46724c42228 < restless/YP --- > restless/PY 46726,46727c42230,42231 < restoration/MS < restorative/MS --- > restoration/SM > restorative/SM 46734c42238 < restrictive/PY --- > restrictive/YP 46738,46739c42242 < restructuring/MS < resubstitute --- > restructuring/SM 46743c42246 < resumption/SM --- > resumption/MS 46747,46748c42250,42251 < resurrect/SGD < resurrection/SM --- > resurrect/GSD > resurrection/MS 46752d42254 < resynchronization 46766,46767c42268,42269 < retention/MS < retentive/PY --- > retention/M > retentive/YP 46769d42270 < retentivity 46774d42274 < reticular 46776,46778c42276 < reticulation/SM < reticule/S < reticulum --- > reticulation/MS 46781d42278 < retinitis 46792c42289 < retrenchment/SM --- > retrenchment/MS 46805c42302 < retrogress/DSGV --- > retrogress/GVDS 46807,46808c42304,42305 < retrorocket/SM < retrospect/GVSMD --- > retrorocket/MS > retrospect/MDSGV 46813,46814c42310 < retuning < returnable/MS --- > returnable/SM 46816c42312 < rev/VM --- > rev/ZVM 46818,46819c42314 < revanchist < reveal/BGJSD --- > reveal/GJSD 46824,46825c42319 < revelation/MS < revelatory --- > revelation/SM 46830,46831c42324,42325 < reverberant < reverberate/DSXGN --- > reverb > reverberate/DSGNX 46841c42335 < reverse/YR --- > reverse/Y 46847d42340 < revery/SM 46852,46856c42345,42346 < revise/BXRZN < revised/U < reviser/M < revision/M < revisionary --- > reviser/MS > revision/SM 46858c42348 < revisionist/MS --- > revisionist/SM 46862c42352 < revive/DRSG --- > revive/DSG 46865c42355 < revoke/DRSBZG --- > revoke/DSG 46886c42376 < rewrite/M --- > rewrite/MGS 46889c42379 < rhapsodize/DSG --- > rhapsodize/GDS 46893,46894d42382 < rheological < rheology 46899c42387 < rhetorician/MS --- > rhetorician/SM 46906c42394 < rheumatologist/SM --- > rheumatologist/MS 46908c42396 < rheumy/TR --- > rheumy 46912a42401,42402 > rhinoplasty > rhinovirus/MS 46935d42424 < ribcage 46937,46938d42425 < ribonucleic < ribosomes 46947d42433 < ricksha/MS 46951c42437 < rid/SR --- > rid/S 46956c42442 < ride/CZGSM --- > ride/MZGRS 46962c42448 < ridgy/RT --- > ridgy 46964c42450 < ridiculous/PY --- > ridiculous/YP 46978c42464 < rigamarole/MS --- > rigamarole/SM 46997,46998c42483 < rigidify/S < rigidity/SM --- > rigidity/M 47015d42499 < ringing/Y 47019c42503 < ringmaster/SM --- > ringmaster/MS 47021c42505 < ringtone/MS --- > ringtone/SM 47037,47038c42521 < ripost/SGMD < riposte/MS --- > riposte/MGDS 47043c42526 < ripply/TR --- > ripply 47045d42527 < ripstop 47058a42541 > risqué 47080d42562 < riveting/Y 47092c42574 < roadrunner/MS --- > roadrunner/SM 47095d42576 < roadsigns 47097d42577 < roadsweepers 47116c42596,42597 < robe/EGDSM --- > robe's > robe/EGDS 47117a42599 > robocall/SGD 47143c42625,42626 < rogue/KSM --- > rogue's > rogue/KS 47153d42635 < rolled/A 47168,47169c42650,42651 < romanticist/MS < romanticize/GDS --- > romanticist/SM > romanticize/DSG 47174d42655 < rontgen/S 47178d42658 < roofgarden 47196c42676 < rootkit/MS --- > rootkit/SM 47199d42678 < rootstock 47202d42680 < ropey 47216c42694 < roster/SMG --- > roster/SM 47222d42699 < rotatable 47224c42701 < rotate/DSGNBX --- > rotate/DSGNX 47226,47227c42703 < rotational/Y < rotators --- > rotational 47232c42708 < rotogravure/SM --- > rotogravure/MS 47251,47252c42727,42728 < roughhouse/DSMG < roughneck/MDSG --- > roughhouse/MGDS > roughneck/GMDS 47261c42737 < roundhouse/MS --- > roundhouse/SM 47264d42739 < roundtable/SM 47271c42746,42748 < route/ADSGM --- > route's > route/ADSG > routeing 47275a42753 > roué/MS 47302c42780 < rubberneck/SZGMDR --- > rubberneck/MDRSZG 47304c42782 < rubbery/TR --- > rubbery 47321c42799 < ruction/S --- > ructions 47337d42814 < ruffly/TR 47342a42820 > rugrat/SM 47344c42822 < ruination/SM --- > ruination/M 47347d42824 < rulebook/S 47364c42841 < rumormonger/MS --- > rumormonger/SM 47367d42843 < rumply/RT 47378d42853 < runnable 47391c42866 < rural/Y --- > rural 47395c42870 < rushy/RT --- > rushy 47413c42888 < ruthless/PY --- > ruthless/YP 47420,47421c42895 < sabbath < sabbatical/MS --- > sabbatical/SM 47430d42903 < saccharides 47441d42913 < sacral 47452c42924 < sacroiliac/SM --- > sacroiliac/MS 47460c42932,42933 < saddle/UDSGM --- > saddle's > saddle/UDSG 47472c42945 < sadomasochist/SM --- > sadomasochist/MS 47475,47477c42948,42950 < safe/UYTPRM < safeguard/GSMD < safekeeping/SM --- > safe/MYTPRS > safeguard/SMDG > safekeeping/M 47479d42951 < safes 47512c42984 < sake/MS --- > sake/M 47516c42988 < salacious/YP --- > salacious/PY 47524c42996 < saleability --- > saleable/U 47526c42998 < salesclerk/MS --- > salesclerk/SM 47533c43005 < salesperson/SM --- > salesperson/MS 47537d43008 < salicylic 47544c43015 < salivate/XGNDS --- > salivate/GNDS 47555c43026,43027 < salt/CTGDSM --- > salt's > salt/CTGDS 47563c43035 < saltshaker/MS --- > saltshaker/SM 47567d43038 < salubrity 47570c43041 < salutatorian/SM --- > salutatorian/MS 47593c43064 < sanctify/NGDS --- > sanctify/GDSN 47606a43078 > sandbagger/SM 47610c43082 < sandblast/MDRSZG --- > sandblast/ZGMDRS 47613c43085 < sandcastle/SM --- > sandcastle/MS 47621c43093 < sandpaper/MDGS --- > sandpaper/GMDS 47624c43096 < sandstone/SM --- > sandstone/M 47639c43111 < sanitize/ZGDRS --- > sanitize/GDS 47656c43128 < saprophyte/MS --- > saprophyte/SM 47661d43132 < sarape/SM 47671d43141 < saree/MS 47677c43147 < sarsaparilla/SM --- > sarsaparilla/MS 47698c43168 < satin/MS --- > satin/M 47710d43179 < satisfiable/U 47720c43189 < saturated/UC --- > saturated/U 47722d43190 < saturnalia 47742d43209 < sauterne/SM 47743a43211 > sauté/MDSG 47748,47749d43215 < savannah/M < savannahs 47754d43219 < saveloy 47772d43236 < sawtooth 47777,47778c43241,43243 < saxophonist/MS < say/USGM --- > saxophonist/SM > say's > say/USG 47793,47795d43257 < scagging < scalability < scalable 47799,47800c43261,43262 < scale/ACSDGM < scaled/U --- > scale's > scale/CGDS 47806c43268 < scallywag/S --- > scallywag/MS 47812a43275 > scammer/S 47817c43280 < scan/ASM --- > scan/MS 47819c43282 < scandalize/GDS --- > scandalize/DSG 47823c43286 < scanned/A --- > scanned 47825c43288 < scanning/A --- > scanning 47834,47836c43297,43298 < scape < scapegoat/SMDG < scapegrace/SM --- > scapegoat/SGMD > scapegrace/MS 47847,47848c43309 < scaremonger/MSG < scarey --- > scaremonger/SMG 47851c43312 < scarify/DSGN --- > scarify/NDSG 47863,47864d43323 < scathe/DG < scathed/U 47869,47870c43328,43329 < scatter/ZGJSMDR < scatterbrain/MDS --- > scatter/GJSMD > scatterbrain/SMD 47871a43331 > scattershot 47886,47887c43346 < scepter/MDS < sceptically --- > scepter/MS 47890c43349,43350 < schedule/ADSGM --- > schedule's > schedule/ADSG 47908,47909c43368 < schizophrenic/MS < schizophrenically --- > schizophrenic/SM 47914c43373 < schlocky/RT --- > schlocky 47916,47917c43375 < schmaltzy/RT < schmalz/M --- > schmaltzy/TR 47923c43381 < schnaps/M --- > schnaps 47939c43397 < schoolchildren --- > schoolchildren/M 47942,47943c43400 < schoolfellow/MS < schoolfriend --- > schoolfellow/SM 47945c43402 < schoolhouse/MS --- > schoolhouse/SM 47950c43407 < schoolmaster/SM --- > schoolmaster/MS 47954c43411 < schoolteacher/SM --- > schoolteacher/MS 47958,47959c43415 < schrod/SM < schtick --- > schrod/S 47961c43417 < schussboomer/SM --- > schussboomer/MS 47972c43428 < scintillate/XDSGN --- > scintillate/DSGN 47974d43429 < scintillator/S 47983c43438 < scold/MDRSGJ --- > scold/MDSGJ 47986d43440 < scollop/SMDG 47989c43443 < scoop/MDRSG --- > scoop/MDSG 48017c43471 < scoutmaster/SM --- > scoutmaster/MS 48026c43480,43481 < scramble/UGDSM --- > scramble's > scramble/UGDS 48041c43496 < scratch/GJMDS --- > scratch/GMDS 48047c43502 < scratchy/RPT --- > scratchy/PRT 48049c43504 < scrawly/TR --- > scrawly 48062,48064c43517,43519 < screensaver/MS < screenshot/MS < screenwriter/MS --- > screensaver/SM > screenshot/SM > screenwriter/SM 48066c43521,43522 < screw/UDSGM --- > screw's > screw/UDSG 48068c43524 < screwdriver/SM --- > screwdriver/MS 48073c43529 < scribble/JMZGDRS --- > scribble/MZGDRS 48075c43531,43532 < scribe/IKCGSDM --- > scribe's > scribe/CKIS 48083d43539 < scriptorium 48086,48087c43542 < scriptwriter/MS < scriptwriting --- > scriptwriter/SM 48093,48095c43548 < scrogged < scrogging < scroll/GSBMD --- > scroll/GSMD 48115c43568 < scrummage/GS --- > scrummage/S 48126c43579 < scrupulous/UYP --- > scrupulous/UPY 48129,48130c43582,43583 < scrutinize/DSG < scrutiny/SM --- > scrutinize/GDS > scrutiny/M 48153c43606 < scurfy/TR --- > scurfy 48155c43608 < scurrilous/YP --- > scurrilous/PY 48157c43610 < scurry/GDSMJ --- > scurry/GDSM 48179c43632,43633 < seal/AUSDGM --- > seal's > seal/AUSDG 48184d43637 < seamail 48187a43641 > seamount/MS 48195c43649 < searchable --- > searchable/U 48198c43652 < searchlight/SM --- > searchlight/MS 48213,48214c43667,43668 < seat/UGDSM < seated/A --- > seat's > seat/UGDS 48223c43677 < seaworthy/TRP --- > seaworthy/P 48232c43686 < secession/MS --- > secession/M 48244c43698 < secret/STGVMDRY --- > secret/SGVMDY 48251c43705 < secretive/YP --- > secretive/PY 48264,48265d43717 < sectoral < sectored 48281,48282c43733,43734 < sedge/MS < sedgy/RT --- > sedge/M > sedgy 48291c43743 < seductive/PY --- > seductive/YP 48296c43748,43749 < seed/AGDSM --- > seed's > seed/AGDS 48313c43766 < seen --- > seen/U 48322d43774 < segmental 48328,48329c43780,43781 < segregationist/SM < segue/MDS --- > segregationist/MS > segue/MGDS 48338d43789 < seismogram 48346c43797 < seismologist/SM --- > seismologist/MS 48348d43798 < seismometer/S 48352,48354c43802 < select/CSGDV < selectable < selected/UA --- > select/CSGVD 48365,48367c43813,43814 < selenology < self/MG < selfie/S --- > self/GM > selfie/SM 48372c43819 < selfless/YP --- > selfless/PY 48375c43822 < sell/AZGRSM --- > sell/ZGMRS 48376a43824 > selloff/MS 48385c43833 < semanticist/SM --- > semanticist/MS 48400c43848 < semiconductor/SM --- > semiconductor/MS 48405c43853 < semifinalist/SM --- > semifinalist/MS 48414d43861 < semioticians 48420c43867 < semiprofessional/MS --- > semiprofessional/SM 48427c43874 < semitrailer/SM --- > semitrailer/MS 48434d43880 < sempiternal 48456d43901 < sensationalistic 48463c43908 < sensible/PRT --- > sensible/P 48466c43911 < sensitive/SPMY --- > sensitive/SMYP 48472d43916 < sensitizers 48475,48476c43919,43920 < sensual/FY < sensualist/MS --- > sensual/Y > sensualist/SM 48482d43925 < sentential 48499c43942 < separate/PXMYGNVDS --- > separate/XMYGNVDSP 48507a43951 > septal 48509d43952 < septette/SM 48521d43963 < sequent/F 48523,48524c43965,43966 < sequester/GSD < sequestrate/XDSGN --- > sequester/SDG > sequestrate/XGNDS 48526a43969 > sequinned 48533,48534c43976 < seraphically < seraphim/M --- > seraphim 48537,48538c43979,43980 < serenade/MGDRS < serendipitous/Y --- > serenade/MGDS > serendipitous 48548c43990 < serialization/MS --- > serialization/SM 48551c43993 < serif/MDS --- > serif/MS 48569c44011,44012 < serve/FACGDSM --- > serve's/AF > serve/FACGDS 48574,48575c44017,44018 < serviceable/U < serviced/U --- > serviceable > serviced 48582c44025 < servile/Y --- > servile 48584c44027,44028 < serving/MS --- > serving's > servings 48592d44035 < sessile 48599d44041 < settable/A 48603c44045,44046 < settle/AUGDSM --- > settle's > settle/AUGDS 48609,48610d44051 < sevenfold < sevenpence 48630c44071 < sewn --- > sewn/A 48638c44079 < sexologist/MS --- > sexologist/SM 48643c44084 < sextette/MS --- > sexting 48647c44088 < sexuality/SM --- > sexuality/M 48655c44096,44097 < shackle/UGDSM --- > shackle's > shackle/UGDS 48658,48659d44099 < shaded/U < shadeless 48665d44104 < shadowless 48676,48680c44115 < shaikh < shaikhs < shakable/U < shake/MZGRSB < shakeable/U --- > shake/MZGRS 48706c44141 < shameful/YP --- > shameful/PY 48710a44146 > shammies 48712d44147 < shammy/SM 48723c44158,44159 < shape/AGDSM --- > shape's > shape/AGDS 48725c44161 < shapeless/PY --- > shapeless/YP 48729d44164 < sharable/U 48737,48738c44172 < shared/U < shareholder/MS --- > shareholder/SM 48741c44175 < shareware/MS --- > shareware/M 48758d44191 < shattering/Y 48776c44209 < sheave/SM --- > sheave/DSMG 48786c44219 < sheepherder/SM --- > sheepherder/MS 48792c44225 < sheet/MDSG --- > sheet/MSG 48796a44230 > sheikh/M 48797a44232 > sheikhs 48803,48804c44238,44239 < shellack/JGMDS < shellacking/M --- > shellacked > shellacking/MS 48810c44245 < shemale/MS! --- > shemale/MS 48814d44248 < sherbert/SM 48826,48827c44260 < shielded/U < shift/ZGMDRS --- > shift/GMDS 48832a44266 > shiitake/S 48834,48835d44267 < shillalah/M < shillalahs 48858c44290,44291 < ship/ALSM --- > ship's > ship/ALS 48860,48861c44293 < shipborne < shipbuilder/MS --- > shipbuilder/SM 48868d44299 < shippable 48885c44316 < shirtsleeve/MS --- > shirtsleeve/SM 48887c44318 < shirtwaist/SM --- > shirtwaist/MS 48889c44320 < shit/MS! --- > shit/SM! 48892c44323,44325 < shitload/MS! --- > shitload's > shitload/! > shitloads 48895c44328 < shitty/TR! --- > shitty/RT! 48898d44330 < shivering/Y 48900,48904d44331 < shlemiel/MS < shlep/MS < shlepp/MDSG < shlock/M < shmaltz/M 48916d44342 < shoebox 48920d44345 < shoeless 48923c44348 < shoestring/MS --- > shoestring/SM 48940d44364 < shopkeeping 48952d44375 < shoreward 48958c44381 < shortchange/GDS --- > shortchange/DSG 48965c44388 < shorthand/MDS --- > shorthand/MD 48969c44392 < shortlist/DSG --- > shortlist/DGS 48987c44410 < shovel/MDRSG --- > shovel/MDSG 48996c44419 < showery/TR --- > showery 49011c44434 < showstopper/SM --- > showstopper/MS 49026c44449 < shriek/MDRSZG --- > shriek/MDSG 49036d44458 < shrinking/Y 49069c44491 < shuttlecock/MDGS --- > shuttlecock/GMDS 49075,49076d44496 < sibilance < sibilancy 49081a44502,44503 > sicced > siccing 49095c44517,44518 < side/AGDSM --- > side's > side/AGDS 49097d44519 < sideband/S 49121d44542 < sidewards 49123,49124c44544 < sidewinder/MS < sidewise --- > sidewinder/SM 49138d44557 < sighted/P 49140c44559 < sightless/Y --- > sightless 49146,49147c44565,44566 < sigmoid < sign/AFCGDSM --- > sign's/C > sign/AFCGDS 49163d44581 < significances 49166,49167c44584,44585 < signify/XNDRSG < signing/MCS --- > signify/XDSNG > signing/CSM 49184d44601 < silicious 49199d44615 < siltstone 49207c44623,44624 < silvery/RT --- > silvery > sim/S 49223,49224c44640,44641 < simplex/S < simplicity/SM --- > simplex > simplicity/M 49226,49227c44643 < simplified/U < simplify/XDRSNG --- > simplify/DSXNG 49247d44662 < sinecurist 49267,49269c44682 < singularization < sinister/Y < sinistral --- > sinister 49283,49284c44696 < sinusoid < sinusoidal/Y --- > sinusoidal 49298d44709 < sirup/SM 49307c44718 < sit/ASG --- > sit/S 49311,49312c44722,44723 < site/MJDS < sitemap/MS --- > site/MGDS > sitemap/SM 49318,49319d44728 < situationist < situp/SM 49323d44731 < sixpenny 49328c44736 < sixth/MY --- > sixth/M 49333c44741,44743 < size/AMGBDRS --- > size's > size/AGBDRS > sizeable 49338c44748 < skateboard/ZGSMDR --- > skateboard/MDRSZG 49351d44760 < skerries 49359c44768 < skew/MDRZGPS --- > skew/MDRZGS 49372,49373c44781,44783 < skilful/Y < skill/CSDM --- > skilfully > skill's > skill/CSD 49394d44803 < skinner/S 49460c44869 < slang/MG --- > slang/M 49467c44876 < slaphappy/RT --- > slaphappy 49479c44888 < slaughter/MDRJZGS --- > slaughter/MDRZGS 49481c44890 < slaughterhouse/SM --- > slaughterhouse/MS 49503c44912 < sledgehammer/SMDG --- > sledgehammer/GSMD 49520c44929 < sleety/RT --- > sleety 49526c44935 < slender/PRYT --- > slender/PRT 49534d44942 < sliced/U 49544d44951 < slighting/Y 49546d44952 < slily 49548c44954 < slime/SM --- > slime/M 49574c44980 < slipstream/MS --- > slipstream/SM 49579d44984 < slitted 49606c45011 < slothful/PY --- > slothful/YP 49618c45023 < slovenly/TPR --- > slovenly/PTR 49622d45026 < slowish 49633c45037 < sluggish/YP --- > sluggish/PY 49639a45044 > slumdog/SM 49659a45065,45066 > slyer > slyest 49669d45075 < smalltalk 49674c45080 < smartphone/MS --- > smartphone/SM 49675a45082 > smartwatch/MS 49684,49685c45091 < smegma < smell/SMDGB --- > smell/SMDG 49691,49692d45096 < smidgeon/SM < smidgin/MS 49694c45098 < smile/DRSMG --- > smile/DSMG 49696c45100 < smiling/UY --- > smiling/Y 49713c45117 < smokescreen/MS --- > smokescreen/SM 49723c45127 < smoothie/MS --- > smoothie/M 49726c45130 < smoothy --- > smoothy/SM 49730c45134 < smoulder/GSMD --- > smoulder/GMDS 49743a45148 > smörgåsbord/MS 49756c45161,45162 < snap/USM --- > snap's > snap/US 49772c45178,45179 < snarl/USDGM --- > snarl's > snarl/USDG 49843c45250,45251 < snowboard/MDRSZG --- > snowblower/MS > snowboard/ZGMDRS 49857,49858d45264 < snowplough < snowploughs 49873d45278 < snuffly/RT 49881c45286 < so/M --- > so 49891d45295 < soaring/Y 49913,49914d45316 < sociobiology < sociocultural 49917,49918d45318 < sociolinguistic/S < sociolinguists 49920c45320 < sociologist/MS --- > sociologist/SM 49939d45338 < sofabed/SM 49956d45354 < soh 49958a45357,45358 > soigné > soignée 49961a45362 > soirée/SM 49969c45370 < sold/UR --- > sold 49979c45380 < solemnify/GDS --- > solemnify/DSG 49985d45385 < solenoidal 49990c45390 < solicitous/YP --- > solicitous/PY 50002c45402 < soliloquize/GDS --- > soliloquize/DSG 50004,50005c45404 < solipsism/MS < solipsist/S --- > solipsism/M 50010c45409 < solitude/SM --- > solitude/M 50016c45415,45416 < solute/XNM --- > solute's > solute/AXN 50018c45418 < solution/EAM --- > solution's/AE 50020c45420 < solve/ARZBGSD --- > solve/EADSG 50024c45424 < solver/M --- > solver/SM 50028c45428,45429 < sombre --- > sombre/PY > sombreness/M 50036c45437 < somersault/MDSG --- > somersault/MDGS 50045c45446 < sommelier/SM --- > sommelier/MS 50060c45461 < songwriter/MS --- > songwriter/SM 50063d45463 < sonically 50066d45465 < sonofabitch/! 50068,50069c45467,45468 < sonority/SM < sonorous/PY --- > sonority/M > sonorous/YP 50073d45471 < soonish 50079c45477 < soothsayer/SM --- > soothsayer/MS 50114c45512 < sorrowful/PY --- > sorrowful/YP 50119d45516 < sortable 50128d45524 < soubriquet/SM 50129a45526 > soufflé/SM 50134c45531 < soul/MDS --- > soul/MS 50137a45535 > soulmate/S 50138a45537,45538 > soundalike/S > soundbar/S 50140c45540,45541 < soundboard/SM --- > soundboard/MS > soundcheck/S 50145c45546 < soundproof/DGS --- > soundproof/GDS 50146a45548 > soundscape/S 50150a45553 > soupçon/MS 50153d45555 < sourceless 50173c45575 < southwest/MRZ --- > southwest/ZMR 50181c45583,45584 < sow/ASGDM --- > sow's > sow/ASGD 50185d45587 < soya/M 50189c45591 < space/DRSMZGJ --- > space/DRSMZG 50191c45593 < spaceflight/SM --- > spaceflight/MS 50202a45605,45606 > spacier > spaciest 50205c45609 < spacious/PY --- > spacious/YP 50207d45610 < spacy/RTP 50215,50216c45618 < spam/S < spamblock/S --- > spam/MS 50222d45623 < spandrels 50226c45627 < spank/SMDRGJ --- > spank/SMDGJ 50228c45629 < spanned/U --- > spanned 50239d45639 < sparkling/Y 50264,50265c45664 < speak/SRZGBJ < speakable/U --- > speak/SRZGJ 50270a45670 > speargun 50274c45674 < special/SPMRY --- > special/SMY 50284,50285c45684 < specifiably < specific/PMS --- > specific/MS 50289c45688 < specified/UA --- > specified/U 50299c45698 < spectacular/SMY --- > spectacular/MYS 50305,50312c45704,45705 < spectrogram < spectrograph < spectrometer/SM < spectrometric < spectrometry < spectrophotometer < spectrophotometry < spectroscope/SM --- > spectrometer/MS > spectroscope/MS 50314d45706 < spectroscopically 50317,50318c45709 < specular < speculate/XDSGNV --- > speculate/DSXGNV 50322d45712 < speculum 50326c45716 < speechless/PY --- > speechless/YP 50344,50345c45734,45735 < spell/BJSMDRZG < spellbind/RZGS --- > spell/JSMDRZG > spellbind/ZGRS 50348c45738,45739 < spellchecker/S --- > spellcheck/DRZGS > spellchecker/M 50350d45740 < spelled 50365c45755 < spermicide/SM --- > spermicide/MS 50379c45769 < spick/S! --- > spick/S 50384c45774 < spidery/RT --- > spidery 50389d45778 < spik/S! 50393c45782 < spill/SMDRG --- > spill/SMDG 50402d45790 < spindrift 50419c45807,45808 < spire/IFASM --- > spire's > spire/IFAS 50421c45810,45811 < spirit/ISGDM --- > spirit's > spirit/ISGD 50431c45821 < spiry/RT --- > spiry 50460a45851 > splenectomy 50470,50471d45860 < splittable < splitter/S 50479c45868,45869 < spoil/CSDRZGM --- > spoil's > spoil/CSDRZG 50486d45875 < spokeshave/S 50490c45879 < spokesperson/SM --- > spokesperson/MS 50500c45889 < sponsorship/MS --- > sponsorship/M 50537c45926 < spotlight/SGMD --- > spotlight/GSMD 50552c45941,45942 < spray/ASDGM --- > spray's > spray/ASDG 50557c45947 < spreadsheet/SM --- > spreadsheet/MS 50563,50564c45953,45954 < sprightly/RPT < spring/GSMR --- > sprightly/RTP > spring/GSM 50590d45979 < spumone/M 50592c45981 < spumy/RT --- > spumy 50598c45987 < spurious/YP --- > spurious/PY 50610d45998 < spyhole 50619d46006 < squaddie/S 50624c46011 < squally/TR --- > squally 50657c46044 < squelchy/RT --- > squelchy 50663c46050 < squiggly/RT --- > squiggly 50671a46059 > sriracha 50679d46066 < stabilizability 50689c46076 < stack/SMDRG --- > stack/SMDG 50691c46078,46079 < staff/ASDGM --- > staff's > staff/ASDG 50694d46081 < staffroom 50713c46100 < stain/SMDRG --- > stain/SMDG 50721c46108 < stakeholder/SM --- > stakeholder/MS 50724c46111 < stalagmite/SM --- > stalagmite/MS 50731c46118,46119 < stall/SDGM --- > stall's > stall/ISDG 50740c46128 < stamp/SMDRJZG --- > stamp/SMDRZG 50749,50750c46137,46138 < standardization/SM < standardize/GDS --- > standardization/M > standardize/DSG 50761c46149 < standstill/SM --- > standstill/MS 50765d46152 < stapes 50773a46161 > starburst/S 50800a46189 > startup/MS 50803c46192 < starveling/SM --- > starveling/MS 50811c46200 < statehouse/SM --- > statehouse/MS 50829c46218 < statical/Y --- > statically 50837,50838c46226 < statistician/MS < stator/S --- > statistician/SM 50850c46238 < stave/DMG --- > stave/DSMG 50862c46250 < steal/SMRHG --- > steal/SMHG 50866c46254 < stealthy/TRP --- > stealthy/TPR 50870c46258 < steamfitter/MS --- > steamfitter/SM 50882,50883c46270 < steelwork/RSZ < steelworker/M --- > steelworker/SM 50890,50891c46277,46278 < steeplechase/MRS < steeplejack/MS --- > steeplechase/MS > steeplejack/SM 50902d46288 < stellated 50911c46297 < stenographer/MS --- > stenographer/SM 50914c46300,46301 < stent/MS --- > stenosis > stent/SM 50917c46304 < stepbrother/MS --- > stepbrother/SM 50919,50921c46306,46309 < stepchildren < stepdaughter/MS < stepfather/MS --- > stepchildren/M > stepdad/MS > stepdaughter/SM > stepfather/SM 50922a46311 > stepmom/MS 50927,50928c46316,46317 < steppingstone/MS < stepsister/SM --- > steppingstone/SM > stepsister/MS 50930,50931d46318 < stepwise < steradians 50933d46319 < stereographic 50937,50938d46322 < stereoscopically < stereoscopy 50940c46324 < stereotypical/Y --- > stereotypical 50943c46327 < sterilization/MS --- > sterilization/SM 50945d46328 < sterilized/U 50955c46338 < stethoscope/SM --- > stethoscope/MS 50968,50969c46351 < sticking/U < stickleback/MS --- > stickleback/SM 50985c46367 < stigmatize/DSG --- > stigmatize/GDS 50988c46370,46371 < still/ITGSDM --- > still's > still/ITGSD 50998d46380 < stimulated/U 51000,51001d46381 < stimulator < stimulatory 51022c46402 < stirred/U --- > stirred 51026c46406,46407 < stitch/ADSGM --- > stitch's > stitch/ADSG 51031c46412,46413 < stock/AGSDM --- > stock's > stock/AGSD 51041c46423 < stocking/SMD --- > stocking/SM 51066d46447 < stoma 51071d46451 < stomata 51073,51074c46453 < stone/DSMG < stoneless --- > stone/DRSMZG 51075a46455 > stoner/M 51080d46459 < stoney 51090c46469,46470 < stop/USM --- > stop's > stop/US 51094d46473 < stopoff 51104,51107c46483,46487 < store/ADSGM < storefront/SM < storehouse/SM < storekeeper/MS --- > store's > store/ADSG > storefront/MS > storehouse/MS > storekeeper/SM 51110c46490 < storm/ZGSMDR --- > storm/GSMD 51113d46492 < stormtroopers 51116c46495 < storyboard/SM --- > storyboard/MS 51118,51119c46497 < storyline < storyteller/SM --- > storyteller/MS 51136c46514 < straight/SXTPMNRY --- > straight/SPXTMNRY 51141c46519 < straightforward/SYP --- > straightforward/YPS 51143d46520 < straightjacket/SM 51146c46523,46524 < strain/FADSGM --- > strain's > strain/FADSG 51150c46528 < straitjacket/SMDG --- > straitjacket/SGMD 51159c46537 < strangulate/DSGN --- > strangulate/GNDS 51161c46539,46540 < strap/USM --- > strap's > strap/US 51170c46549 < strategist/MS --- > strategist/SM 51175,51177c46554 < stratigraphic < stratigraphical < stratosphere/MS --- > stratosphere/SM 51179d46555 < stratospherically 51190c46566 < streamline/GDS --- > streamline/DSG 51194,51195c46570,46571 < streetlight/MS < streetwalker/MS --- > streetlight/SM > streetwalker/SM 51198c46574 < strengthen/AGSD --- > strengthen/AGDS 51210c46586 < stressful/P --- > stressful 51212,51213d46587 < stretchability < stretchable/U 51216c46590 < stretchy/TRP --- > stretchy/TR 51228c46602 < stride/MGRS --- > stride/MGS 51234c46608 < strikebreaker/MS --- > strikebreaker/SM 51254c46628 < stripy/RT --- > stripy 51264d46637 < stromatolites 51266d46638 < strongbow 51269d46640 < strongish 51286c46657,46658 < structure/AGDSM --- > structure's > structure/AGDS 51288d46659 < structureless 51298d46668 < strutter 51305c46675 < stubbly/TR --- > stubbly 51320d46689 < studier/S 51322c46691 < studious/YP --- > studious/PY 51325,51326c46694,46696 < study/AGDSM < stuff/GSMDR --- > study's > study/AGDS > stuff/GSMD 51335d46704 < stumbling/Y 51349d46717 < stupefying/Y 51362c46730,46731 < style/ADSGM --- > style's > style/ADSG 51369d46737 < stylization 51372c46740 < stymie/M --- > stymie/MDS 51374d46741 < stymy/DSM 51376d46742 < styrene 51387c46753 < subbasement/MS --- > subbasement/SM 51392,51393c46758 < subclass/S < subclauses --- > subclass 51401,51403c46766,46767 < subcontractor/SM < subcultural < subculture/SM --- > subcontractor/MS > subculture/MS 51406,51408c46770,46771 < subdivision/MS < subducted < subduction --- > subdivision/SM > subdominant 51410d46772 < subdued/U 51415d46776 < subharmonic/S 51427,51428c46788 < subjunctive/MS < sublayer --- > subjunctive/SM 51438c46798 < sublunary --- > sublingual 51448c46808,46809 < submission/ASM --- > submission's/A > submission/MS 51452d46812 < submittable 51454c46814 < submitter/S --- > submitter 51457d46816 < suboptimal 51460c46819 < subordinate/MGNDS --- > subordinate/DSMGN 51464c46823 < subpena/GMDS --- > subparagraph 51466a46826 > subprime 51469c46829 < subroutine/MS --- > subroutine/SM 51471c46831 < subscriber/SM --- > subscriber/MS 51473c46833 < subscription/SM --- > subscription/MS 51485d46844 < subsidized/U 51492c46851 < subspace/S --- > subspace 51497c46856 < substantiate/XGNDS --- > substantiate/GNDSX 51503,51504c46862 < substitute/MGNBXDS < substituted/U --- > substitute/XMGNDS 51510a46869 > subsumption/S 51523c46882 < subtly/U --- > subtly 51526c46885 < subtract/GVSD --- > subtract/GSD 51528d46886 < subtractive/Y 51533,51534d46890 < subtype/S < subunit/S 51538d46893 < suburbanization 51550c46905 < succession/MS --- > succession/SM 51565c46920 < suck/MDRZGSB --- > suck/MDRZGS 51571d46925 < sud/S 51590d46943 < suffocating/Y 51594c46947 < suffragette/MS --- > suffragette/SM 51600c46953 < sugarcoat/DGS --- > sugarcoat/GDS 51604c46957 < suggest/ZGVSDR --- > suggest/GVSDR 51608c46961 < suggestive/PY --- > suggestive/YP 51610,51611c46963 < sugillate < suicidal/Y --- > suicidal 51614d46965 < suitabilities 51616d46966 < suitable/UP 51627a46978 > sulfonamides 51639,51640d46989 < sulphate/S < sulphide/S 51649,51651d46997 < sumach/M < summability < summable 51653c46999 < summarize/ZGDRS --- > summarize/GDS 51659c47005 < summerhouse/MS --- > summerhouse/SM 51661c47007 < summery/RT --- > summery 51665c47011 < summon/JDRSZG --- > summon/DRSZG 51685d47030 < suncream 51716d47060 < sunspots/S 51725c47069 < superabundance/SM --- > superabundance/MS 51738d47081 < supercomputing 51743,51745d47085 < supercooled < supercooling < superdense 51752,51754c47092,47093 < superfix < superfluity/SM < superfluous/PY --- > superfluity/M > superfluous/YP 51758d47096 < superheat/D 51761c47099 < superhighway/MS --- > superhighway/SM 51763c47101 < superimpose/DSG --- > superimpose/GDS 51765c47103 < superintend/SGD --- > superintend/DSG 51771c47109 < superlative/MYS --- > superlative/SMY 51773c47111 < supermarket/MS --- > supermarket/SM 51775c47113 < supermodel/S --- > supermodel/SM 51778,51779c47116 < supernatant < supernatural/YS --- > supernatural/SY 51783d47119 < superordinate 51785,51786c47121,47122 < superposition/SM < superpower/MS --- > superposition/M > superpower/SM 51792a47129 > supersize/GDS 51794d47130 < supersonically 51797c47133 < superstition/SM --- > superstition/MS 51799,51801c47135,47137 < superstore/SM < superstructure/SM < supertanker/SM --- > superstore/MS > superstructure/MS > supertanker/MS 51805c47141 < supervise/GNXDS --- > supervise/XGNDS 51808c47144 < supervisor/SM --- > supervisor/MS 51819c47155 < supplement/GMDS --- > supplement/MDGS 51829c47165 < supply/ZGXDRSMN --- > supply/ZGDRSMXN 51831,51832c47167 < supportability < supportable/IU --- > supportable/UI 51837c47172 < supposition/SM --- > supposition/MS 51839c47174 < suppress/GVDS --- > suppress/GDS 51841d47175 < suppressed/U 51844c47178 < suppressor/MS --- > suppressor/SM 51849c47183 < supremacist/SM --- > supremacist/MS 51851,51852c47185 < supremal < supreme/YTR --- > supreme/Y 51858d47190 < surd 51865,51868c47197,47199 < surface/AGDSM < surfaced/U < surfactant/S < surfboard/MDGS --- > surface's > surface/AGDS > surfboard/MDSG 51876d47206 < surlily 51890d47219 < surprised/U 51897,51899c47226,47227 < surreality < surrender/GMDS < surreptitious/YP --- > surrender/MDSG > surreptitious/PY 51910c47238,47239 < survey/ADGSM --- > survey's > survey/ADGS 51913,51914d47241 < survivability < survivable/U 51916c47243 < survivalist/MS --- > survivalist/SM 51935d47261 < sustainably 51952c47278 < swallow/GSMDR --- > swallow/GSMD 51957c47283 < swampland/MS --- > swampland/M 51969d47294 < swappable/U 51971d47295 < swapper/S 51997d47320 < sweatily 52000c47323 < sweatshirt/MS --- > sweatshirt/SM 52005c47328 < sweep/ZGSMRBJ --- > sweep/ZGSMRJ 52009d47331 < sweepstake/SM 52019c47341 < sweetheart/MS --- > sweetheart/SM 52024d47345 < sweetshop 52031a47353 > swerving/U 52053c47375 < swirly/RT --- > swirly 52055d47376 < swishy 52057,52059c47378,47380 < switchback/SM < switchblade/MS < switchboard/MS --- > switchback/MS > switchblade/SM > switchboard/SM 52061,52062d47381 < switchgear < switchover 52067,52069d47385 < swob/MS < swobbed < swobbing 52074,52076d47389 < swop/MS < swopped < swopping 52096,52097d47408 < sycophantically < syllabary 52100c47411 < syllabicate/DSGN --- > syllabicate/GNDS 52114d47424 < symbiont 52123d47432 < symbolist 52126c47435 < symmetric --- > symmetric/Y 52128,52129d47436 < symmetrization < symmetrizing 52138d47444 < symphonists 52144,52146c47450 < symptomless < syn < synagog/MS --- > syn/H 52152c47456 < synch/GMDS --- > synches 52154,52155c47458,47459 < synchronization/MS < synchronize/ADSG --- > synchronization/SM > synchronize/GDS 52157,52158d47460 < synchrony < synchrotron 52176,52177c47478 < synonymic < synonymous/Y --- > synonymous 52181d47481 < synopsizes 52182a47483 > synovial 52186c47487 < synthase/MS --- > synthase/SM 52192a47494 > synths 52199c47501 < sysop/MS --- > sysop/SM 52208a47511 > séance/SM 52226c47529 < tablespoonful/MS --- > tablespoonful/SM 52233d47535 < tabu/GMDS 52242c47544 < tachyon/S --- > tachyon 52264d47565 < tactual 52271c47572 < tagged/U --- > tagged 52284c47585 < tailless/P --- > tailless 52286c47587 < tailor/SGBMD --- > tailor/SGMD 52290d47590 < tailplane 52296d47595 < takeable 52308c47607 < talebearer/SM --- > talebearer/MS 52311d47609 < talentless 52315c47613 < talkative/YP --- > talkative/PY 52360c47658,47659 < tangle/UDSGM --- > tangle's > tangle/UDSG 52371c47670 < tannin/SM --- > tannin/M 52399c47698 < tarantella/SM --- > tarantella/MS 52432a47732 > taser/GMDS 52453c47753 < tatterdemalion/SM --- > tatterdemalion/MS 52476d47775 < taverna/S 52484d47782 < taxed/U 52488c47786 < taxidermist/MS --- > taxidermist/SM 52491d47788 < taxing/U 52511d47807 < teacloth 52517c47813 < tealeaves --- > tealight/MS 52526c47822 < tearful/PY --- > tearful/Y 52530,52531c47826 < tearjerker/SM < tearless --- > tearjerker/MS 52537d47831 < teashop/S 52540c47834 < teaspoonful/MS --- > teaspoonful/SM 52543,52544d47836 < teazel/S < teazle/S 52550c47842 < technician/MS --- > technician/SM 52553a47846 > technobabble 52560d47852 < technophiles 52562,52563d47853 < technophobia < technophobic 52566d47855 < tectonically 52577c47866 < teenage/DRZ --- > teenage/RZ 52579d47867 < teensy/RT 52586d47873 < teethmarks 52594,52595c47881,47882 < telecom/MS < telecommunication/SM --- > telecom/M > telecommunication/MS 52597c47884 < telecommute/DRSZG --- > telecommute/ZGDRS 52600d47886 < telecoms 52632c47918 < teleport/SGD --- > teleport/DSG 52634c47920 < teleprinter/SM --- > teleprinter/MS 52646c47932 < televangelist/SM --- > televangelist/MS 52649d47934 < televisual 52663c47948 < temper/ESMD --- > temper/MDG 52670,52672c47955 < temperature/MS < tempered/U < tempering --- > temperature/SM 52676c47959,47961 < template/SM --- > tempi > template's > template/S 52686c47971 < temptation/SM --- > temptation/MS 52703c47988 < tend/IEFDGS --- > tend/IFEDGS 52709,52710c47994,47995 < tenderfoot/SM < tenderhearted/YP --- > tenderfoot/MS > tenderhearted/PY 52725c48010 < tenon/SM --- > tenon/SMDG 52733,52734d48017 < tensional < tensioned 52753c48036 < terabit/MS --- > terabit/SM 52759c48042 < tercentennial/MS --- > tercentennial/SM 52766,52767c48049 < terminated/U < termination/CMS --- > termination/CSM 52776d48057 < terpsichorean 52780d48060 < terraform/D 52785c48065 < terrestrial/MYS --- > terrestrial/SMY 52795c48075 < territorial/SMY --- > territorial/MS 52806,52807c48086,48087 < tertiary/S < tessellate/XDSGN --- > tertiary > tessellate/DSXGN 52809,52812c48089,48091 < tesseral < test/AKFCDGSM < testability < testable/UF --- > test's/AFK > test/AKFCDGS > testable/CF 52819,52820d48097 < testbed/S < testcard 52823c48100 < tester/KMS --- > tester/KSM 52830c48107 < testimonial/SM --- > testimonial/MS 52836c48113 < testsuite/MS --- > testsuite/SM 52842d48118 < tethered/U 52844d48119 < tetrachloride 52847,52848c48122,48123 < tetrahedron/SM < tetrameter/MS --- > tetrahedron/MS > tetrameter/SM 52851c48126,48127 < textbox/SM --- > textbox/MS > texted 52852a48129 > texting 52854,52856c48131,48132 < textural/Y < texture/MDS < textured/U --- > textural > texture/MGDS 52865,52867c48141 < thankful/PY < thankfuller < thankfullest --- > thankful/YP 52871c48145 < thanksgiving/MS --- > thanksgiving/SM 52876d48149 < thaumaturge 52892d48164 < themas 52906d48177 < theologists 52911c48182 < theoretician/MS --- > theoretician/SM 52917c48188 < theosophist/MS --- > theosophist/SM 52934c48205 < theremin/MS --- > theremin/SM 52939d48209 < thereunder 52946,52948d48215 < thermistor/S < thermochemical < thermocouple/S 52950d48216 < thermodynamical/Y 52952,52954c48218 < thermoelectric < thermoluminescence < thermometer/SM --- > thermometer/MS 52957,52959c48221 < thermophile/S < thermophilic < thermoplastic/MS --- > thermoplastic/SM 52976d48237 < thiamin/M 52991c48252 < thievish/P --- > thievish 52996c48257 < thimbleful/MS --- > thimbleful/SM 53008c48269 < thinking/M --- > thinking's 53014d48274 < thinnish 53048c48308 < thoughtful/PY --- > thoughtful/YP 53073d48332 < threepenny 53099a48359 > thrombolytic 53104c48364,48365 < throne/CDSM --- > throne's > throne/S 53111c48372 < throughway/SM --- > throughway/MS 53117d48377 < throwout 53123c48383 < thrust/ZGSMR --- > thrust/GSM 53140,53142c48400,48402 < thunderbolt/MS < thunderclap/MS < thundercloud/SM --- > thunderbolt/SM > thunderclap/SM > thundercloud/MS 53144,53145c48404 < thunderflashes < thunderhead/MS --- > thunderhead/SM 53148c48407 < thunderstorm/MS --- > thunderstorm/SM 53160d48418 < thyristor/S 53176c48434 < ticklish/PY --- > ticklish/YP 53188d48445 < tideless 53196c48453,48454 < tie/AUSDM --- > tie's > tie/AUSD 53214d48471 < tike/MS 53217c48474 < tile/MZGJDRS --- > tile/MZGDRS 53220c48477,48478 < till/EDRZGSM --- > till's > till/EDRZGS 53225c48483 < timber/SMD --- > timber/SMDG 53227c48485 < timberline/SM --- > timberline/MS 53231d48488 < timebase 53243c48500 < timeserver/MS --- > timeserver/SM 53246,53247d48502 < timestamped < timestamps 53250c48505 < timezone/S --- > timezone 53255c48510 < timorous/YP --- > timorous/PY 53271d48525 < tingly/RT 53276d48529 < tinkly 53278d48530 < tinnily 53289c48541 < tintinnabulation/SM --- > tintinnabulation/MS 53294d48545 < tipi/MS 53310c48561,48563 < tire/AGDSM --- > tiramisu/MS > tire's > tire/AGDS 53313c48566 < tireless/PY --- > tireless/YP 53317d48569 < tiro/M 53319c48571 < tit/SZMR --- > tit/SM 53322d48573 < titanically 53324d48574 < titbit/SM 53336,53338c48586,48587 < titled/UA < titleholder/SM < titling/A --- > titled/U > titleholder/MS 53342,53343d48590 < titrated < titration 53345c48592,48593 < tittivate/DSG --- > tittivate/DSGN > tittivation/M 53355,53356d48602 < toadded < toadding 53362c48608 < toastmaster/MS --- > toastmaster/SM 53366c48612 < tobacconist/MS --- > tobacconist/SM 53378d48623 < toeclip/S 53385d48629 < toffy/SM 53389d48632 < toge 53439c48682,48683 < tone/IZGDRSM --- > tone's > tone/IZGDRS 53458,53459c48702,48704 < tool/ADGSM < toolbar/MS --- > tool's > tool/ADGS > toolbar/SM 53463d48707 < toolmaking 53471,53472c48715 < toothmarks < toothpaste/MS --- > toothpaste/SM 53481c48724 < topdressing/MS --- > topdressing/SM 53494c48737 < topographer/MS --- > topographer/SM 53499,53500c48742 < topologist/S < topology/S --- > topology 53516d48757 < torchlit 53519,53521c48760 < tori < torment/SMDRZG < tormenter/M --- > torment/SMDG 53527,53528d48765 < toroid < toroidal 53537c48774 < torrid/RYPT --- > torrid/YP 53540,53541c48777 < tors/S < torsion/SM --- > torsion/M 53544c48780,48781 < tort/FEASM --- > tort's > tort/EFAS 53546c48783 < tortellini/SM --- > tortellini/M 53549c48786 < tortoiseshell/MS --- > tortoiseshell/SM 53560c48797 < tot/SGMDR --- > tot/SGMD 53562c48799 < totalitarian/MS --- > totalitarian/SM 53565,53566c48802 < totalizator/MS < totalizing --- > totalizator/SM 53584c48820 < touchscreen/SM --- > touchscreen/MS 53586a48823 > touché 53595d48831 < tourer/S 53601c48837 < tournament/MS --- > tournament/SM 53639,53640d48874 < toymaker < toyshop 53641a48876,48878 > trabecula > trabecular > trabecule 53643d48879 < traceability 53645d48880 < traceless 53655c48890 < trackback/MS --- > trackback/SM 53657d48891 < trackbed 53661,53662c48895,48896 < trackway/S < tract/CEKFASM --- > tract's > tract/CEKFAS 53666c48900 < traction/EFACKM --- > traction/FEACKM 53670,53671c48904 < trademark/SMDG < tradeoff/MS --- > trademark/SGMD 53693c48926 < tragical/Y --- > tragically 53700c48933 < train/ZGSMDRBJ --- > train/ZGSMDRB 53726,53727c48959 < trampoline/DSMG < trampolinist --- > trampoline/MGDS 53733c48965 < tranquilize/DRSZG --- > tranquilize/ZGDRS 53735,53736c48967 < tranquillize/DRSZG < tranquillizer/M --- > tranquillity/M 53740d48970 < transactional 53744c48974 < transcend/SGD --- > transcend/GSD 53747c48977 < transcendental/SY --- > transcendental/Y 53749c48979 < transcendentalist/MS --- > transcendentalist/SM 53754,53757c48984,48985 < transcription/MS < transcriptional < transducer/SM < transduction --- > transcription/SM > transducer/MS 53760,53762c48988,48989 < transfect/DSMG < transfer/MSB < transferability --- > transfect/SGD > transfer/MBS 53764d48990 < transferee/S 53770c48996 < transfinite/Y --- > transfinite 53772,53775c48998,48999 < transform/SMDRZGB < transformation/MS < transformational < transformed/U --- > transform/BSZGMDR > transformation/SM 53777c49001 < transfuse/DSGNX --- > transfuse/DSXGN 53779c49003 < transgender/MDS --- > transgender/SD 53781c49005 < transgene/MS --- > transgene/S 53783,53784c49007,49008 < transgress/GVDS < transgression/MS --- > transgress/GDS > transgression/SM 53786d49009 < transhipment 53790c49013 < transistor/MS --- > transistor/SM 53793c49016 < transition/MDGS --- > transition/GSMD 53795c49018 < transitive/IMYS --- > transitive/ISMY 53801c49024 < translate/BXDSGN --- > translate/DSGNBX 53804,53806c49027,49028 < translational < translator/MS < transliterate/GNXDS --- > translator/SM > transliterate/DSGNX 53807a49030 > translocation 53811c49034 < transmigrate/DSGN --- > transmigrate/GNDS 53814,53816c49037,49039 < transmission/ASM < transmissive < transmit/AS --- > transmission's/A > transmission/MS > transmit/S 53820,53822c49043,49045 < transmitted/A < transmitter/MS < transmitting/A --- > transmitted > transmitter/SM > transmitting 53824,53827c49047,49050 < transmogrify/NGDS < transmutation/MS < transmute/DSBG < transnational/SM --- > transmogrify/DSNG > transmutation/SM > transmute/BDSG > transnational/MS 53830d49052 < transonic 53836c49058 < transplant/GMDS --- > transplant/MDGS 53840,53842c49062 < transport/SZGBMDR < transportability < transportable/U --- > transport/BSZGMDR 53846,53848c49066,49067 < transposition/SM < transputer/S < transsexual/MS --- > transposition/MS > transsexual/SM 53850c49069 < transship/LS --- > transship/SL 53855c49074 < transverse/SMY --- > transverse/MYS 53864c49083 < trappable/U --- > trappable 53891c49110 < treacherous/YP --- > treacherous/PY 53897d49115 < treader 53905d49122 < treasurership 53908c49125 < treatable/U --- > treatable 53927,53928c49144 < tremble/DSJMG < trembling/Y --- > tremble/DSMG 53934c49150,49151 < trench/AIGSDM --- > trench's > trench/ADSG 53946,53947c49163 < trepanned < trepidation/SM --- > trepidation/M 53955d49170 < triadic 53960,53961d49174 < trialled < trialling 53963d49175 < triangulable 53965c49177 < triangulate/XDSGN --- > triangulate/GNDS 53969,53970c49181 < triatomic < tribal/Y --- > tribal 53977c49188 < tribulation/MS --- > tribulation/SM 53981c49192,49193 < tribute/FSM --- > tribute's > tribute/FS 53983c49195 < tricentennial/SM --- > tricentennial/MS 54002,54003c49214 < trifecta/S < triffid/S --- > trifecta/SM 54009,54010c49220 < triggest < triglyceride/SM --- > triglyceride/MS 54014d49223 < trigram/S 54018d49226 < trilingual 54035d49242 < trimodal 54044d49250 < triplane 54048c49254 < triplicate/MGNDS --- > triplicate/MGDS 54051c49257 < tripos/S --- > tripos 54061d49266 < trisector 54079c49284 < trivialization/SM --- > trivialization/M 54085c49290 < trodden/AU --- > trodden/A 54091d49295 < trollish 54093d49296 < trolly/SM 54098,54099d49300 < tronned < tronning 54109,54111c49310 < tropopause < troposphere/MS < tropospheric --- > troposphere/SM 54120,54121c49319,49320 < troublemaker/SM < troubleshoot/ZGDRS --- > troublemaker/MS > troubleshoot/DRZGS 54162c49361 < truncate/GNXDS --- > truncate/GNDS 54168d49366 < trunnion/S 54170,54171c49368 < trust/IESGDM < trusted/U --- > trust/ESGMD 54176c49373 < trustingly --- > trusting/Y 54178c49375 < trustworthy/PTR --- > trustworthy/TPR 54181c49378 < truthful/UPY --- > truthful/UYP 54182a49380 > truthiness 54184c49382,49383 < try/AGDSM --- > try's > try/AGDS 54188,54190c49387 < tsarina/MS < tsarism < tsarist/S --- > tsarists 54197d49393 < tubae 54243,54244c49439 < tumulus < tun/SZGMDRBJ --- > tun/SZGMDR 54258c49453,49454 < tuppence/S --- > tuple/S > tuppence 54275c49471 < turducken --- > turducken/SM 54278c49474 < turfy/RT --- > turfy 54289d49484 < turned/U 54334c49529 < twee/DP --- > twee 54350a49546 > twerk/SDG 54353,54354c49549,49550 < twiddle/MGDRS < twiddly/RT --- > twiddle/MGDS > twiddly 54375,54376c49571,49573 < twirly/TR < twist/USDGM --- > twirly > twist's > twist/USDG 54397a49595 > tympanic 54400c49598,49599 < type/AGDSM --- > type's > type/AGDS 54402d49600 < typed/U 54404d49601 < typeless 54407c49604 < typesetter/SM --- > typesetter/MS 54424c49621 < typographer/MS --- > typographer/SM 54428d49624 < typological/Y 54432d49627 < tyrannicide 54434c49629 < tyrannosaur/SM --- > tyrannosaur/MS 54440,54444d49634 < tyrosine < tzar/MS < tzarina/SM < tzarism < tzarist/S 54452d49641 < uglification 54457d49645 < ukelele/SM 54460c49648 < ulcerate/XDSGN --- > ulcerate/DSGN 54475c49663 < ultralight/MS --- > ultralight/SM 54478,54479c49666 < ultramontane < ultrasonic/S --- > ultrasonic 54493d49679 < umbrageous 54504d49689 < unaccountability 54506d49690 < unadaptive 54510d49693 < unambiguity 54519d49701 < unattainably 54526,54527d49707 < unbiased/Y < unbiassedly 54529a49710 > unblushing/Y 54532d49712 < unbreakability 54538d49717 < uncatalogued 54540d49718 < unchallengeable 54543d49720 < uncharismatic 54546d49722 < uncheckable 54552,54553c49728 < unclench/D < uncollimated --- > uncomfortable 54555c49730 < uncommunicative --- > uncomplaining/Y 54558d49732 < uncompromisable 54561d49734 < unconfused 54562a49736 > unconscionable 54566d49739 < uncontentious 54567a49741 > uncontroversial 54570,54572c49744 < uncouth/YP < uncreative < uncross/B --- > uncouth/Y 54579d49750 < undead 54584c49755 < underachieve/ZGLDRS --- > underachieve/LZGDRS 54587a49759 > underappreciated 54594c49766 < undercharge/DSMG --- > undercharge/MGDS 54600c49772 < undercoat/JGSMD --- > undercoat/GJSMD 54602d49773 < undercooked 54611,54612d49781 < undereducated < underemphasis 54615c49784 < underestimate/MGNXDS --- > underestimate/DSMGNX 54617,54618c49786 < underexploited < underexpose/DSG --- > underexpose/GDS 54621c49789 < underfeed/SG --- > underfeed/GS 54625,54626c49793 < underframe < underfund/GD --- > underfunded 54633,54634c49800,49801 < undergraduate/MS < underground/SM --- > undergraduate/SM > underground/MS 54637c49804 < underhanded/YP --- > underhanded/PY 54639d49805 < underinvestment 54643c49809 < underline/MGJDS --- > underline/MGDS 54646d49811 < underloaded 54661,54662c49826 < underpayment/MS < underperformed --- > underpayment/SM 54665c49829 < underpinning/SM --- > underpinning/MS 54668,54670d49831 < underpopulation < underpowered < underpricing 54677d49837 < undersealed 54679c49839 < undersell/SG --- > undersell/GS 54686c49846 < undersign/DSG --- > undersign/DGS 54688c49848 < undersize/D --- > undersized 54691,54694d49850 < underspecification < underspecified < underspend/G < underspent 54696,54697c49852 < understand/RGSBJ < understandability --- > understand/SGBJ 54700c49855 < understate/GDSL --- > understate/DSLG 54702d49856 < understocked 54704,54708c49858,49859 < understorey < understory < understrength < understudy/DSMG < undertake/ZGRSJ --- > understudy/GDSM > undertake/ZGJRS 54717d49867 < underusing 54720c49870 < undervalue/GDS --- > undervalue/DSG 54726,54728c49876,49879 < underwhelm/SDG < underworld/SM < underwrite/RSZG --- > underwhelm/DGS > underwire/DS > underworld/MS > underwrite/ZGRS 54732c49883 < undesirable/SM --- > undesirable/MS 54734,54735d49884 < undiscerning < undisguised/Y 54740,54741d49888 < undrinkability < undroppable 54756d49902 < unergonomic 54759,54760c49905 < uneven/RYPT < unexacting --- > uneven/Y 54764c49909 < unexpected/PY --- > unexpected/YP 54774d49918 < unfetchable 54784d49927 < unfocussed 54787a49931 > unfriend/GD 54791d49934 < unfulfillable 54793d49935 < unfussy 54795c49937,49938 < ungainly/RTP --- > ungainly/RPT > ungenerous 54797d49939 < unglamorous 54808d49949 < unheroic 54816,54817d49956 < unicyclist/S < unideal 54819d49957 < unifiable 54821,54822c49959 < unifier < uniform/SMDRYTG --- > uniform/SMDYG 54827,54828d49963 < unilateralist < unimportance 54830a49966 > uninformative 54831a49968 > uninstall/BSZGDR 54833d49969 < unintellectual 54838d49973 < unintuitive 54843d49977 < unipolar 54857d49990 < universalism 54862,54863c49995 < unixism/S < unjam --- > unjust/Y 54867d49998 < unknightly 54873d50003 < unlikeable 54875d50004 < unlink/D 54882c50011 < unmanageably --- > unman/S 54884d50012 < unmannerly 54887,54888d50014 < unmeetable < unmelodious 54895,54897d50020 < unmistakeable < unmistakeably < unmnemonic 54900c50023 < unmusical/Y --- > unmusical 54903,54904d50025 < unobjectionable < unobservable 54909,54912d50029 < unoriginality < unorthodoxy < unpack/Z < unparallelled 54916d50032 < unphysical 54920,54921d50035 < unploughed < unpoetical 54924d50037 < unportable 54929d50041 < unpronounced 54931,54932d50042 < unpunctual < unpunctuality 54935d50044 < unraisable 54937,54938c50046 < unreadability < unready/TR --- > unready 54941d50048 < unreceptive 54948c50055 < unrepeated --- > unrepentant 54951d50057 < unresisting/Y 54953d50058 < unriddle 54959,54961c50064 < unsafe/T < unsaleable < unsatisfactory/P --- > unsafe/YTR 54963,54966c50066 < unseal/B < unsearchable < unseasonal < unseaworthiness --- > unscathed 54969,54971c50069 < unseen/MS < unselfconscious/Y < unsellable --- > unseen/M 54973a50072 > unshakable 54974a50074 > unshakeable 54975a50076 > unshockable 54977,54978d50077 < unshrinking < unsighted 54980,54981c50079,50080 < unsightly/TP < unskilful --- > unsightly/PT > unsmiling 54984c50083 < unsophistication --- > unsold 54985a50085 > unspeakable 54989d50088 < unspoilt 54991,54994c50090,50091 < unstable/RT < unstack/DG < unstamped < unsteady/PTR --- > unstable > unsteady/TRP 54996d50092 < unstoppably 55000c50096,50097 < unsure/P --- > unsuitable > unsure 55002d50098 < unswerving/Y 55005d50100 < untenability 55008d50102 < unthoughtful 55013c50107 < untouchable/SM --- > untouchable/MS 55017d50110 < unusably 55020d50112 < unvarying/Y 55022d50113 < unwarrantably 55023a50115 > unwavering 55025d50116 < unwedge 55030,55031d50120 < unwind/B < unwisdom 55035c50124 < unwound/D --- > unwound 55045d50133 < updatability 55050,55051c50138 < upgrade/MGDSBJ < upgradeable --- > upgrade/MGDS 55057,55058c50144,50145 < upholster/ASDG < upholsterer/SM --- > upholster/ASGD > upholsterer/MS 55080d50166 < uprate/DG 55113d50198 < upwelling 55122c50207 < urbanologist/SM --- > urbanologist/MS 55133,55134c50218 < urethritis < urge/MGDSJ --- > urge/MGDS 55156,55157d50239 < useability/M < useable 55168c50250,50251 < usual/UYM --- > usual's > usual/UY 55187c50270 < utter/SDRYTG --- > utter/SDYG 55189a50273 > uveitis 55200c50284 < vacationist/MS --- > vacationist/SM 55215c50299 < vagina/MS --- > vagina/SM 55221a50306 > vagus 55228c50313 < valediction/SM --- > valediction/MS 55241d50325 < validated/U 55243a50328 > validator/S 55253c50338,50339 < value/CAGSDM --- > value's > value/CAGSD 55271d50356 < vanishing/Y 55276d50360 < vanquished/U 55278a50363 > vape/GDS 55287c50372 < vaporware/S --- > vaporware 55295,55296c50380,50381 < variant/ISM < variate/NXS --- > variant/MS > variate/NX 55298d50382 < variational 55312a50397 > varying/U 55315a50401 > vasoconstriction 55333,55334d50418 < vectorization < vectorized 55338c50422 < veg/M --- > veg/SM 55339a50424 > veganism 55347d50431 < vegetational 55358c50442,50443 < veil/UDGSM --- > veil's > veil/UDGS 55363d50447 < veldt/SM 55368d50451 < velor 55371,55373c50454,50456 < velvet/MS < velveteen/MS < velvety/TR --- > velvet/M > velveteen/M > velvety 55377,55378c50460 < vend/DRZGS < vender/KM --- > vend/DGS 55388d50469 < venetian 55398c50479,50480 < vent/DGSM --- > vent's > vent/DGS 55400d50481 < ventilated/U 55402,55403c50483,50484 < ventilator/MS < ventral/Y --- > ventilator/SM > ventral 55410c50491 < venturesome/YP --- > venturesome/PY 55412c50493 < venturous/YP --- > venturous/PY 55427c50508 < verbose/YP --- > verbose/Y 55432c50513 < verdigris/MDSG --- > verdigris/GMDS 55434c50515,50516 < verge/FDSGM --- > verge's > verge/FDSG 55436d50517 < verifiability 55440c50521 < verify/DRSNXZG --- > verify/DSNG 55450d50530 < vermillion/M 55454c50534 < vernacular/SM --- > vernacular/MS 55459a50540 > versa 55464d50544 < versicle 55467c50547 < versify/NZGDRS --- > versify/ZGNDRS 55468a50549,50550 > versioned > versioning 55470a50553 > vert/A 55488c50571,50572 < vest/ILDGSM --- > vest's > vest/ILDGS 55490d50573 < vestibular 55502c50585 < veterinarian/SM --- > veterinarian/MS 55529d50611 < vibrational/Y 55546c50628 < vicinity/SM --- > vicinity/M 55553d50634 < victimless 55558a50640 > vicuña/MS 55564d50645 < videodisk/MS 55567c50648 < videotex/S --- > videotex 55569c50650 < view/AMDRBSZG --- > view/AMDRSZG 55572c50653 < viewfinder/MS --- > viewfinder/SM 55583c50664 < vignettist/SM --- > vignettist/MS 55599d50679 < ville 55607d50686 < vindaloos 55614c50693 < vinegar/SM --- > vinegar/M 55636c50715 < violoncello/SM --- > violoncello/MS 55649c50728 < virologist/MS --- > virologist/SM 55651a50731 > virtualization 55653d50732 < virtuosic 55665,55666c50744 < viscid/I < viscometer --- > viscid 55675c50753 < visibility/ISM --- > visibility/IM 55680,55681c50758,50759 < visit/ASGDM < visitable/U --- > visit's > visit/ASGD 55684d50761 < visited/U 55689c50766 < visualization/MS --- > visualization/SM 55703c50780 < viticulturist/SM --- > viticulturist/MS 55734,55735d50810 < vizir/SM < vizor/SM 55749c50824 < vociferous/PY --- > vociferous/YP 55752d50826 < voe/S 55758a50833 > voicemail/M 55762,55763c50837,50839 < vol < volatile/S --- > voilà > vol/S > volatile 55767,55768d50842 < volcanically < volcanism 55778c50852 < volleyball/SM --- > volleyball/MS 55787,55788c50861 < volumetric < voluminous/PY --- > voluminous/YP 55806d50878 < vorticity 55808c50880,50881 < vote/CGVDSM --- > vote's > vote/CGVDS 55821d50893 < vulcanism 55824d50895 < vulcanologist 55840a50912 > vuvuzela/MS 55844c50916 < wackes --- > wack/RTS 55872d50943 < waggly 55881c50952 < wainscot/SMDGJ --- > wainscot/SJMDG 55883c50954,50956 < wainwright/SM --- > wainscotted > wainscotting/MS > wainwright/MS 55891d50963 < waitpeople 55904c50976 < walk/BMDRZGS --- > walk/MDRZGS 55914d50985 < walla/S 55919d50989 < wallchart 55926c50996 < wallpaper/GSMD --- > wallpaper/SMDG 55938c51008 < wanderlust/MS --- > wanderlust/SM 55951c51021 < wanton/MDRYSPG --- > wanton/MDYSPG 55954c51024 < war/SGM --- > war/SM 55964d51033 < wardship 55967,55968c51036 < warehouseman < warez/S --- > warez 55989,55990c51057 < warned/U < warning/MY --- > warning/M 56010c51077,51078 < wash/BJMDRSZG --- > wasabi > wash/BMDRSZG 56017d51084 < washday 56037c51104 < wastebasket/SM --- > wastebasket/MS 56042a51110 > wastewater 56048d51115 < watched/U 56050c51117 < watchful/PY --- > watchful/YP 56057c51124 < watchtower/MS --- > watchtower/SM 56061a51129 > waterboard/DJSG 56064,56065c51132 < watercolorists < watercourse/MS --- > watercourse/SM 56073d51139 < waterless 56077,56078c51143 < waterman < watermark/MDSG --- > watermark/MDGS 56082c51147 < waterproof/SGMD --- > waterproof/SMDG 56087c51152 < waterspout/MS --- > waterspout/SM 56090c51155 < waterwheel/MS --- > waterwheel/SM 56098,56100c51163 < waveform/S < wavefront < waveguide/S --- > waveform 56107,56108c51170 < wavering/UY < wavily --- > wavering/Y 56123,56124d51184 < wayleave/S < waymarked 56140d51199 < weakly/RT 56147d51205 < weanling 56149c51207 < weaponize/DSG --- > weaponize/GDS 56160d51217 < wearying/Y 56163,56164c51220,51221 < weatherboard/GS < weathercock/SM --- > weatherboard/SG > weathercock/MS 56170,56171c51227,51228 < weatherperson/SM < weatherproof/SGD --- > weatherperson/MS > weatherproof/GSD 56182c51239 < webcast/MS --- > webcast/SMG 56185a51243,51244 > webinar/SM > webisode/MS 56189c51248 < webpage/MS --- > webpage/SM 56203d51261 < weeds/S 56221c51279,51280 < weigh/AGDM --- > weigh's > weigh/AGD 56230c51289 < weightlifter/SM --- > weightlifter/MS 56238d51296 < welch/GDS 56255c51313 < welterweight/MS --- > welterweight/SM 56278,56279d51335 < wetsuit/S < wettable 56286d51341 < whacky/TR 56291d51345 < whales/S 56297c51351 < wharf/SM --- > wharf/M 56314,56315c51368,51369 < wheel/SMDRZG < wheelbarrow/MS --- > wheel/SMDRG > wheelbarrow/SM 56318c51372 < wheelhouse/SM --- > wheelhouse/MS 56320c51374 < wheelwright/SM --- > wheelwright/MS 56364d51417 < whimsey/MS 56382,56383c51435,51436 < whippletree/MS < whippoorwill/SM --- > whippletree/SM > whippoorwill/MS 56390,56391c51443,51445 < whirlybird/MS < whirr/SMDG --- > whirlybird/SM > whirred > whirring 56396c51450,51452 < whisper/JMDRSZG --- > whisky/SM > whiskys > whisper/MDRSZG 56402c51458 < white/SPMY --- > white/SPM 56416c51472 < whitewash/GMDS --- > whitewash/MDSG 56425a51482 > whizz/MDSG 56427,56429d51483 < whizzed < whizzes < whizzing 56437d51490 < whodunnit/SM 56465c51518 < whorehouse/SM --- > whorehouse/MS 56484,56486c51537 < wicketkeeper/S < wicketkeeping < wide/YTRSP --- > wide/YTRP 56506d51556 < wifely/TR 56513d51562 < wiggles/S 56536a51586 > wilful/P 56542d51591 < willie 56544,56545c51593 < willing/UTPY < willinger --- > willing/UPY 56549c51597 < willowy/TR --- > willowy 56561c51609,51610 < wind/UASGM --- > wind's > wind/UASG 56564c51613 < windbreak/ZSMR --- > windbreak/SZMR 56572c51621 < windflower/SM --- > windflower/MS 56575,56576c51624,51625 < winding/SM < windjammer/MS --- > winding's > windjammer/SM 56588c51637 < windshield/MS --- > windshield/SM 56603d51651 < wineskin 56607a51656 > wingnut/SM 56614c51663 < winnable --- > winnable/U 56626d51674 < wintery/RT 56631c51679,51680 < wire/AGDSM --- > wire's > wire/AGDS 56635d51683 < wirer 56646c51694 < wisecrack/GMDS --- > wisecrack/MDSG 56648d51695 < wisely/TR 56653c51700 < wishlist/MS --- > wishlist/SM 56657d51703 < wistaria/SM 56664d51709 < witchdoctor/S 56681c51726 < withstand/SG --- > withstand/GS 56695c51740 < wiz/M --- > wiz/S 56701c51746 < wobble/MGDRS --- > wobble/MGDS 56717c51762 < wolfish/Y --- > wolfish 56739c51784 < wonderful/PY --- > wonderful/YP 56749,56750c51794 < wonton/MS < woo/SZGDRY --- > woo/SZGDR 56771c51815 < woodpecker/SM --- > woodpecker/MS 56778d51821 < woodsmoke 56789c51832 < wool/MNYSX --- > wool/MNX 56792c51835 < woolie/M --- > wooliness 56795d51837 < wooly/TPRSM 56800c51842,51843 < word/AJDSGM --- > word's > word/ADSG 56805c51848 < wording/M --- > wording/SM 56812,56813c51855,51856 < work/ADJSGM < workability/U --- > work's > work/ADJSG 56825c51868 < workforce/SM --- > workforce/M 56828c51871 < working/M --- > working's 56841,56842d51883 < workpeople < workpiece/S 56849d51889 < workspace 56885c51925 < worthless/YP --- > worthless/PY 56888,56889c51928,51929 < worthy/UPRTM < wost --- > worthy's > worthy/UPRT 56906c51946,51947 < wrap/USM --- > wrap's > wrap/US 56928c51969 < wretched/PTRY --- > wretched/TPRY 56932c51973 < wriggly/RT --- > wriggly 56942,56943c51983,51984 < writ/MRSZ < write/ASBJG --- > writ/MRBJSZG > write/S 56945d51985 < writeup 56991,56992d52030 < xreffed < xreffing 57021c52059 < xylophonist/SM --- > xylophonist/MS 57031d52068 < yack/MDSG 57048c52085 < yardmaster/SM --- > yardmaster/MS 57051d52087 < yarmelke/SM 57060d52095 < yawning/Y 57073c52108 < yearning/MY --- > yearning/M 57091c52126 < yeshivah/M --- > yeshivot 57114,57115d52148 < yoghourt/SM < yoghurt/MS 57118d52150 < yogin/SM 57120c52152,52153 < yoke/UGDSM --- > yoke's > yoke/UGDS 57127d52159 < york/RZ 57161c52193 < yuppie/M --- > yuppie/MS 57163d52194 < yuppy/SM 57185,57186c52216 < zenning < zeolites --- > zeolite/S 57196,57198d52225 < zeugma < zigamorph < zigamorphs 57213c52240,52241 < zip/USM --- > zip's > zip/US 57222a52251 > zlotys 57225d52253 < zombi/SM 57228c52256,52257 < zone/AGDSM --- > zone's > zone/AGDS 57239c52268,52270 < zorch/GDS --- > zooplankton > zorch > zoster 57242d52272 < zugzwang 57247a52278,52284 > Ångström/M > éclair/SM > éclat/M > élan/M > émigré/SM > épée/MS > étude/SM diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 9,10d8 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 3,9d2 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 57,59c50 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 89c80 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 112d102 < rmdir "Contents/Resources/searchplugins/" 117d106 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < EAdq3cP+suidvz922TVTeyQXfxQ= --- > a3ZmjyK9ouwVmPbSfagDyHLtjuU= 33c33 < snBudnonqTIuHZhxbuw75UcXCgk= --- > 5FPUQjYafQZUnNSRxOn9yAG4qo8= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < 0RMHz4mUdmxW0Ke9vefuoOzRPtU= --- > 6025wgzl/3LFfHQDIn6i3lGV66Q= 229c229 < H8c74Ogi5Dca4fdA/NJauAhwRn0= --- > 9mnqpkuNL2f6pQAGpiV15eJrBDc= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 321c321 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 325c325 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 329c329 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 333c333 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 337c337 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 341c341 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 345c345 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 349c349 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 353c353 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 357c357 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 361c361 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 365c365 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 373c373 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 377c377 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 381c381 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 385c385 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 389c389,397 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 404,408c412 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 410,414c414 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > O/nBtjC7XGgBwkh40HzGTgtHeBU= 442c442 < GMUrzQwWrXkM6FNrFXiy2jShV4w= --- > 7bb9z9F4aWTe+FcDUvUNTTwH6cs= 446c446 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 450c450 < GvvbEX+dXkOyCsJq3Gjo4ny3h7A= --- > 6X6xGQjY1s9Biuz3AnHYUML4DBg= 454c454 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 604,631d603 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 660c632 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 669c641 < ebAYiG65Nm8wcHwEDZea8fL60nE= --- > d3ffPM03L1GZ+AOQMBO08cDCQjo= 678c650 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 687c659 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 696c668 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 701c673 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 705c677 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 714c686 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 723c695 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 732c704 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 741c713 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 750c722 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 759c731 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 768c740 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 777c749 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 786c758 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 795c767 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 802c774 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 806c778 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 818c790 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 822c794 < EAdq3cP+suidvz922TVTeyQXfxQ= --- > a3ZmjyK9ouwVmPbSfagDyHLtjuU= 826c798 < snBudnonqTIuHZhxbuw75UcXCgk= --- > 5FPUQjYafQZUnNSRxOn9yAG4qo8= 830c802 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 834c806 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 838c810 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 842c814 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 846c818 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 850c822 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 854c826 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 858c830 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 862c834 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 866c838 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 870c842 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 874c846 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 878c850 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 882c854 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 886c858 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 890c862 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 894c866 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 898c870 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 902c874 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 906c878 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 910c882 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 914c886 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 918c890 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 922c894 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 926c898 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 930c902 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 934c906 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 938c910 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 942c914 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 946c918 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 950c922 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 954c926 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 958c930 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 962c934 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 966c938 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 970c942 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 974c946 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 978c950 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 982c954 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 986c958 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 990c962 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 994c966 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 998c970 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1002c974 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1010c982 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1014c986 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1018c990 < 0RMHz4mUdmxW0Ke9vefuoOzRPtU= --- > 6025wgzl/3LFfHQDIn6i3lGV66Q= 1022c994 < H8c74Ogi5Dca4fdA/NJauAhwRn0= --- > 9mnqpkuNL2f6pQAGpiV15eJrBDc= 1026c998 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1030c1002 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1034c1006 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1038c1010 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1042c1014 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1046c1018 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1050c1022 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1054c1026 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1058c1030 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1062c1034 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1066c1038 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1070c1042 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1074c1046 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1078c1050 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1082c1054 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1094c1066 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1098c1070 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1106c1078 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1110c1082 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1114c1086 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1118c1090 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1122c1094 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1126c1098 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1130c1102 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1134c1106 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1138c1110 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1142c1114 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1146c1118 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1150c1122 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1154c1126 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1158c1130 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1166c1138 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1170c1142 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1174c1146 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1178c1150 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1182c1154,1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1197,1201c1177 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1203,1207c1179 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > O/nBtjC7XGgBwkh40HzGTgtHeBU= 1235c1207 < GMUrzQwWrXkM6FNrFXiy2jShV4w= --- > 7bb9z9F4aWTe+FcDUvUNTTwH6cs= 1239c1211 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1243c1215 < GvvbEX+dXkOyCsJq3Gjo4ny3h7A= --- > 6X6xGQjY1s9Biuz3AnHYUML4DBg= 1247c1219 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1397,1424d1368 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48020969 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:39 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48020968 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:39 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48020967 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:39 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48020919 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:39 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48020918 8 -rw-r--r-- 1 cltbld staff 1670 May 9 17:39 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48020917 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:39 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48020916 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:39 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48020915 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:39 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48020914 8 -rw-r--r-- 1 cltbld staff 1338 May 9 17:39 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48020913 8 -rw-r--r-- 1 cltbld staff 1363 May 9 17:39 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.7.0/20160310150025/Darwin_x86_64-gcc3-u-i386-x86_64/ru/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.0/20160310150025/Darwin_x86_64-gcc3-u-i386-x86_64/ru/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.7.0/20160310150025/Darwin_x86_64-gcc3-u-i386-x86_64/ru/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:39:55-- https://aus4.mozilla.org/update/3/Thunderbird/38.7.0/20160310150025/Darwin_x86_64-gcc3-u-i386-x86_64/ru/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:39:55 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 939 Length: 939 [text/xml] Saving to: 'update.xml' 0K 100% 128M=0s 2016-05-09 17:39:55 (128 MB/s) - 'update.xml' saved [939/939] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ru/thunderbird-38.8.0.complete.mar' from cache... Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.0/mac/ru/Thunderbird 38.7.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.7.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.0/mac/ru/Thunderbird 38.7.0.dmg'] --2016-05-09 17:39:56-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.7.0/mac/ru/Thunderbird%2038.7.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70387379 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:39:57 GMT ETag: "81b8d7561958d1baf142bf8fd3717e47" Last-Modified: Sun, 13 Mar 2016 23:46:03 GMT x-amz-replication-status: COMPLETED x-amz-version-id: xBov6eKSguN3prVtMrfltEdE9f4vfZGd X-Cache: Miss from cloudfront Via: 1.1 11512f00e812993b9daa35c376d7cb20.cloudfront.net (CloudFront) X-Amz-Cf-Id: 9RwxAeP53ZFckJ08-F5pJFcZBKpLIVH1XIfCGqTvCx-P4P-yjaDJqQ== Length: 70387379 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.7.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 898K 73s 3072K ........ ........ ........ ........ ........ ........ 8% 4.32M 42s 6144K ........ ........ ........ ........ ........ ........ 13% 6.11M 30s 9216K ........ ........ ........ ........ ........ ........ 17% 7.44M 23s 12288K ........ ........ ........ ........ ........ ........ 22% 9.00M 19s 15360K ........ ........ ........ ........ ........ ........ 26% 10.9M 15s 18432K ........ ........ ........ ........ ........ ........ 31% 11.4M 13s 21504K ........ ........ ........ ........ ........ ........ 35% 14.2M 11s 24576K ........ ........ ........ ........ ........ ........ 40% 10.7M 9s 27648K ........ ........ ........ ........ ........ ........ 44% 18.9M 8s 30720K ........ ........ ........ ........ ........ ........ 49% 13.3M 7s 33792K ........ ........ ........ ........ ........ ........ 53% 13.9M 6s 36864K ........ ........ ........ ........ ........ ........ 58% 14.0M 5s 39936K ........ ........ ........ ........ ........ ........ 62% 15.1M 4s 43008K ........ ........ ........ ........ ........ ........ 67% 16.8M 4s 46080K ........ ........ ........ ........ ........ ........ 71% 15.3M 3s 49152K ........ ........ ........ ........ ........ ........ 75% 16.7M 3s 52224K ........ ........ ........ ........ ........ ........ 80% 14.2M 2s 55296K ........ ........ ........ ........ ........ ........ 84% 16.1M 1s 58368K ........ ........ ........ ........ ........ ........ 89% 15.8M 1s 61440K ........ ........ ........ ........ ........ ........ 93% 15.8M 1s 64512K ........ ........ ........ ........ ........ ........ 98% 16.2M 0s 67584K ........ ........ .. 100% 13.1M=9.0s 2016-05-09 17:40:06 (7.47 MB/s) - 'Thunderbird 38.7.0.dmg' saved [70387379/70387379] Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ru/Thunderbird 45.1.0.dmg' from cache... installing downloads/Thunderbird 38.7.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yandex.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/yandex-slovari.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ru.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/priceru.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/ozonru.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/duckduckgo-ru.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/ru.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/ru.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/ru.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/ru.lproj/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yandex.xml PREPARE ADD Contents/Resources/searchplugins/yandex-slovari.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-ru.xml PREPARE ADD Contents/Resources/searchplugins/priceru.xml PREPARE ADD Contents/Resources/searchplugins/ozonru.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/duckduckgo-ru.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/ru.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/ru.dic PREPARE ADD Contents/Resources/dictionaries/ru.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yandex.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/yandex-slovari.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ru.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/priceru.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/ozonru.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/duckduckgo-ru.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/ru.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/ru.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/ru.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/ru.lproj/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yandex.xml EXECUTE ADD Contents/Resources/searchplugins/yandex-slovari.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-ru.xml EXECUTE ADD Contents/Resources/searchplugins/priceru.xml EXECUTE ADD Contents/Resources/searchplugins/ozonru.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/duckduckgo-ru.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/ru.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/ru.dic EXECUTE ADD Contents/Resources/dictionaries/ru.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yandex.xml FINISH REMOVEFILE Contents/Resources/searchplugins/yandex-slovari.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-ru.xml FINISH REMOVEFILE Contents/Resources/searchplugins/priceru.xml FINISH REMOVEFILE Contents/Resources/searchplugins/ozonru.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/duckduckgo-ru.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/ru.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/ru.dic FINISH REMOVEFILE Contents/Resources/dictionaries/ru.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ru.lproj/ non-fatal error removing directory: Contents/Resources/ru.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yandex.xml FINISH ADD Contents/Resources/searchplugins/yandex-slovari.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-ru.xml FINISH ADD Contents/Resources/searchplugins/priceru.xml FINISH ADD Contents/Resources/searchplugins/ozonru.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/duckduckgo-ru.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/ru.lproj/InfoPlist.strings FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/ru.dic FINISH ADD Contents/Resources/dictionaries/ru.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_8-00000/l10n/ru/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,11d3 < remove "Contents/Resources/searchplugins/yandex.xml" < remove "Contents/Resources/searchplugins/yandex-slovari.xml" < remove "Contents/Resources/searchplugins/wikipedia-ru.xml" < remove "Contents/Resources/searchplugins/priceru.xml" < remove "Contents/Resources/searchplugins/ozonru.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/duckduckgo-ru.xml" < remove "Contents/Resources/searchplugins/bing.xml" 60,62c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 93c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 119d108 < rmdir "Contents/Resources/searchplugins/" 125d113 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < CRSJpPTujeynjvL9ZOCsfHlMgGM= --- > +pPNf2d5uXjBy+DGeudRL0MpDT8= 229c229 < WQYHtUOccvZ5Cv/Nv0g2lR7GFZI= --- > 8aMR0Hz7f7HtpAmhuRKhtaececU= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < Ypvl/Mao16isAGHVHeI4yvcxlmE= --- > V1iabLLcHUS7aWSTaGn+3SstrZM= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 395c395 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 397c397 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 401c401 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 403c403 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 405c405 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 409c409 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 437c437 < 8Nqyh0bbMhHUnv0HquLkFzukdeY= --- > bhDInzTifDoElUrIZUm7uI/4kcc= 441c441 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 445c445 < rjxpqJmPp2h7JhEY7Zj3lttHwCE= --- > NQoyKEFqjung4DQq7rxtOF4ZRzQ= 449c449 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,639d607 < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/duckduckgo-ru.xml < < rTtp/63jYMu0VW0M7PNKtVUZ+7Q= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/ozonru.xml < < VR8fK/+Ezedg8w885i9+FUemORU= < < Resources/searchplugins/priceru.xml < < CM4Hq8wL4sh8QDE3DbDCQTUCBqs= < < Resources/searchplugins/wikipedia-ru.xml < < TnK10ekNrlvFAg/XrxxyuiEbFDI= < < Resources/searchplugins/yandex-slovari.xml < < nGw4UCa+KcosnBsVAYlS3EBQy8g= < < Resources/searchplugins/yandex.xml < < SfvkHxwX3/lGu9dC4xe9wW4/4qc= < 668c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 677c645 < 5FfFBZWPm6H3/NYHL9DWeTIRFWE= --- > 4UoijNWSZSU28+LQ4IHJCAZKHQs= 686c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 695c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 704c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 709c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 713c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 722c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 731c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 740c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 749c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 758c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 767c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 776c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 785c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 794c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 803c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 810c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 814c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 826c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 838c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 842c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 846c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 850c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 854c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 858c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 862c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 866c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 870c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 874c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 878c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 882c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 886c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 890c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 894c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 898c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 902c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 906c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 910c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 914c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 918c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 922c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 926c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 930c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 934c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 938c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 942c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 946c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 950c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 954c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 958c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 962c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 966c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 970c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 974c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 978c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 982c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 986c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 990c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 994c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 998c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 1002c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 1006c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1010c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1018c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1022c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1026c994 < CRSJpPTujeynjvL9ZOCsfHlMgGM= --- > +pPNf2d5uXjBy+DGeudRL0MpDT8= 1030c998 < WQYHtUOccvZ5Cv/Nv0g2lR7GFZI= --- > 8aMR0Hz7f7HtpAmhuRKhtaececU= 1034c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1038c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1042c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1046c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1050c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1054c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1058c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1062c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1066c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1070c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1074c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1078c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1082c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1086c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1090c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1102c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1106c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1114c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1118c1086 < Ypvl/Mao16isAGHVHeI4yvcxlmE= --- > V1iabLLcHUS7aWSTaGn+3SstrZM= 1122c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1126c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1130c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1134c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1138c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1142c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1146c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1150c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1154c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1158c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1162c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1166c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1170c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1178c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1182c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1186c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1190c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1194c1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1196c1164 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1198c1166 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1200c1168 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1202c1170 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1204c1172 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1206c1174 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1208c1176 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1210c1178 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1238c1206 < 8Nqyh0bbMhHUnv0HquLkFzukdeY= --- > bhDInzTifDoElUrIZUm7uI/4kcc= 1242c1210 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1246c1214 < rjxpqJmPp2h7JhEY7Zj3lttHwCE= --- > NQoyKEFqjung4DQq7rxtOF4ZRzQ= 1250c1218 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1409,1440d1376 < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/duckduckgo-ru.xml < < rTtp/63jYMu0VW0M7PNKtVUZ+7Q= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/ozonru.xml < < VR8fK/+Ezedg8w885i9+FUemORU= < < Resources/searchplugins/priceru.xml < < CM4Hq8wL4sh8QDE3DbDCQTUCBqs= < < Resources/searchplugins/wikipedia-ru.xml < < TnK10ekNrlvFAg/XrxxyuiEbFDI= < < Resources/searchplugins/yandex-slovari.xml < < nGw4UCa+KcosnBsVAYlS3EBQy8g= < < Resources/searchplugins/yandex.xml < < SfvkHxwX3/lGu9dC4xe9wW4/4qc= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48021724 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:40 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48021723 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:40 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48021722 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:40 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48021673 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:40 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48021672 8 -rw-r--r-- 1 cltbld staff 1664 May 9 17:40 source/Thunderbird.app/Contents/Resources/searchplugins/duckduckgo-ru.xml 48021671 8 -rw-r--r-- 1 cltbld staff 2371 May 9 17:40 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48021670 16 -rw-r--r-- 1 cltbld staff 5804 May 9 17:40 source/Thunderbird.app/Contents/Resources/searchplugins/ozonru.xml 48021669 8 -rw-r--r-- 1 cltbld staff 1370 May 9 17:40 source/Thunderbird.app/Contents/Resources/searchplugins/priceru.xml 48021668 24 -rw-r--r-- 1 cltbld staff 9413 May 9 17:40 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-ru.xml 48021667 8 -rw-r--r-- 1 cltbld staff 1794 May 9 17:40 source/Thunderbird.app/Contents/Resources/searchplugins/yandex-slovari.xml 48021666 16 -rw-r--r-- 1 cltbld staff 7674 May 9 17:40 source/Thunderbird.app/Contents/Resources/searchplugins/yandex.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:41:01-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:41:01 GMT Keep-Alive: timeout=5, max=946 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 17:41:01 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ar/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ar/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:41:01-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ar/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67862446 Connection: keep-alive Date: Tue, 10 May 2016 00:22:38 GMT x-amz-replication-status: COMPLETED x-amz-version-id: _83PqTFMM18mTV_0SeZRVnY9nli4LkOe Last-Modified: Tue, 03 May 2016 15:25:26 GMT ETag: "3f4b60800e4c104f2ba0802cd7ad3faf" Accept-Ranges: bytes Server: AmazonS3 Age: 1104 X-Cache: Hit from cloudfront Via: 1.1 aa96a51fedae85199c643eb5c8eca4e4.cloudfront.net (CloudFront) X-Amz-Cf-Id: f-uluVmuDImT858HFH5mcGXcDqg38u6DO96bzMxnkmTN-z-BX8Cc_A== Length: 67862446 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 31.8M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 70.3M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 78.2M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 63.9M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 47.3M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 36.1M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 66.5M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 45.5M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 66.4M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 65.7M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 61.0M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 70.9M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 69.1M 0s 39936K ........ ........ ........ ........ ........ ........ 64% 44.1M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 53.7M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 67.1M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 44.2M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 56.9M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 49.4M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 50.0M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 64.1M 0s 64512K ........ ........ ........ ... 100% 58.4M=1.2s 2016-05-09 17:41:02 (54.3 MB/s) - 'update/complete.mar' saved [67862446/67862446] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ar/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ar/Thunderbird 38.6.0.dmg'] --2016-05-09 17:41:03-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ar/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69871951 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:41:04 GMT ETag: "0642589f77d1e572edf337d1d5c33512" Last-Modified: Fri, 12 Feb 2016 21:48:33 GMT x-amz-replication-status: COMPLETED x-amz-version-id: ItHj7TAJXQtVc4JnA_wvc_6YA.RNt6xx X-Cache: Miss from cloudfront Via: 1.1 3d3d633d266d05d90a4eea7a6a59b514.cloudfront.net (CloudFront) X-Amz-Cf-Id: hw6Yp-essnDPdREo4uoATnXQHRi2wDjf1bg5RT8NBqLRbkcQ0sro7w== Length: 69871951 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.60M 40s 3072K ........ ........ ........ ........ ........ ........ 9% 5.78M 24s 6144K ........ ........ ........ ........ ........ ........ 13% 8.80M 17s 9216K ........ ........ ........ ........ ........ ........ 18% 10.1M 14s 12288K ........ ........ ........ ........ ........ ........ 22% 13.5M 11s 15360K ........ ........ ........ ........ ........ ........ 27% 15.2M 9s 18432K ........ ........ ........ ........ ........ ........ 31% 15.9M 8s 21504K ........ ........ ........ ........ ........ ........ 36% 22.1M 7s 24576K ........ ........ ........ ........ ........ ........ 40% 21.9M 6s 27648K ........ ........ ........ ........ ........ ........ 45% 12.7M 5s 30720K ........ ........ ........ ........ ........ ........ 49% 8.98M 5s 33792K ........ ........ ........ ........ ........ ........ 54% 6.14M 4s 36864K ........ ........ ........ ........ ........ ........ 58% 9.98M 4s 39936K ........ ........ ........ ........ ........ ........ 63% 13.7M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 15.2M 3s 46080K ........ ........ ........ ........ ........ ........ 72% 16.5M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 24.5M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 16.4M 1s 55296K ........ ........ ........ ........ ........ ........ 85% 22.6M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 18.2M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 22.2M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 25.4M 0s 67584K ........ .. 100% 10.1M=6.8s 2016-05-09 17:41:11 (9.82 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69871951/69871951] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ar/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ar/Thunderbird 45.1.0.dmg'] --2016-05-09 17:41:11-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ar/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77245870 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:23:05 GMT ETag: "220b74c4862dfa7788e12f0c9db72aac" Last-Modified: Mon, 09 May 2016 20:35:53 GMT x-amz-replication-status: COMPLETED x-amz-version-id: rhIFN9nNb427oLyYBDiC7F8mTct0eSvy Age: 1086 X-Cache: Hit from cloudfront Via: 1.1 30bb04916f91d64c600e15c15000042d.cloudfront.net (CloudFront) X-Amz-Cf-Id: JbmknE7BiWWCx2u0PGSeFoXeQ-XDxWC0u9VF_ZPyN4aVxdwDBrNwNg== Length: 77245870 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 19.9M 4s 3072K ........ ........ ........ ........ ........ ........ 8% 55.0M 2s 6144K ........ ........ ........ ........ ........ ........ 12% 65.5M 2s 9216K ........ ........ ........ ........ ........ ........ 16% 47.8M 2s 12288K ........ ........ ........ ........ ........ ........ 20% 51.1M 1s 15360K ........ ........ ........ ........ ........ ........ 24% 51.2M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 40.9M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 38.1M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 37.4M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 38.4M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 36.7M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 35.0M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 36.3M 1s 39936K ........ ........ ........ ........ ........ ........ 57% 35.2M 1s 43008K ........ ........ ........ ........ ........ ........ 61% 34.0M 1s 46080K ........ ........ ........ ........ ........ ........ 65% 33.8M 1s 49152K ........ ........ ........ ........ ........ ........ 69% 46.3M 1s 52224K ........ ........ ........ ........ ........ ........ 73% 52.2M 1s 55296K ........ ........ ........ ........ ........ ........ 77% 40.7M 0s 58368K ........ ........ ........ ........ ........ ........ 81% 34.5M 0s 61440K ........ ........ ........ ........ ........ ........ 85% 36.2M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 30.7M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 29.7M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 35.5M 0s 73728K ........ ........ ........ .. 100% 36.4M=1.9s 2016-05-09 17:41:13 (37.8 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77245870/77245870] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ar.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/ar.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ar.lproj/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-ar.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/ar.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ar.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/ar.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ar.lproj/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-ar.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/ar.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-ar.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/ar.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ar.lproj/ non-fatal error removing directory: Contents/Resources/ar.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-ar.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/ar.lproj/InfoPlist.strings FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,9d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia-ar.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 57,59c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 89c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 115d106 < rmdir "Contents/Resources/searchplugins/" 120d110 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 22c22 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 34c34 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 38c38 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 42c42 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 46c46 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 50c50 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 54c54 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 58c58 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 62c62 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 66c66 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 70c70 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 74c74 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 78c78 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 82c82 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 86c86 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 90c90 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 94c94 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 98c98 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 102c102 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 106c106 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 110c110 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 114c114 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 118c118 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 122c122 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 126c126 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 130c130 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 134c134 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 138c138 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 142c142 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 146c146 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 150c150 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 154c154 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 158c158 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 162c162 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 166c166 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 170c170 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 174c174 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 178c178 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 182c182 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 186c186 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 190c190 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 194c194 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 198c198 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 202c202 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 206c206 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 210c210 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 218c218 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 222c222 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 226c226 < rdcQkfMwzDDMbUDlzbMOtuCbxW0= --- > Firyf6O4x+2EEisLMM8VSw7ZqXI= 230c230 < a8X4p67MjDRucqHNb1ZD0xNcP4U= --- > 788ESn78DAfBgxwTD5gekh2CJd4= 234c234 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 238c238 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 242c242 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 246c246 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 250c250 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 254c254 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 258c258 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 262c262 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 266c266 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 270c270 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 274c274 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 278c278 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 282c282 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 286c286 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 290c290 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 302c302 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 306c306 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 314c314 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 318c318 < swDvZCPyGcHPrTd17t0xJ7zMGCA= --- > 2Xry9laKczyuNJYvl3zLoWtLPU0= 322c322 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 326c326 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 330c330 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 334c334 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 338c338 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 342c342 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 346c346 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 350c350 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 354c354 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 358c358 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 362c362 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 366c366 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 370c370 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 378c378 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 382c382 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 386c386 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 390c390 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 394c394 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 396c396 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 398c398 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 400c400 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 402c402 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 404c404 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 406c406 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 408c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 410c410 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < 24IuTHkxkLKtpFBBwLBznSFYBzo= --- > N3IgC6iGWKY+bW0vYYtuxzmVULU= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < RnOjWfEd5Gk51vDaps+uJb3r0Cc= --- > ZfbjMu+LBuFZZsJqvvn8A21x6kk= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,623d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-ar.xml < < P2/uI1vL4oOnHW4vOmGUp/IO+Dk= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 652c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 661c637 < l7q5yz+rsXnX9X/9AXDIhLJnnAQ= --- > A6c91ug1JsFEGquLHWr0UtmrriA= 670c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 679c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 688c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 693c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 697c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 706c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 715c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 724c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 733c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 742c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 751c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 760c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 769c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 778c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 787c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 794c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 807c783 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 819c795 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 823c799 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 827c803 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 831c807 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 835c811 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 839c815 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 843c819 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 847c823 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 851c827 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 855c831 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 859c835 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 863c839 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 867c843 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 871c847 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 875c851 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 879c855 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 883c859 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 887c863 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 891c867 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 895c871 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 899c875 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 903c879 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 907c883 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 911c887 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 915c891 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 919c895 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 923c899 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 927c903 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 931c907 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 935c911 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 939c915 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 943c919 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 947c923 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 951c927 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 955c931 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 959c935 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 963c939 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 967c943 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 971c947 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 975c951 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 979c955 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 983c959 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 987c963 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 991c967 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 995c971 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1003c979 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1007c983 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1011c987 < rdcQkfMwzDDMbUDlzbMOtuCbxW0= --- > Firyf6O4x+2EEisLMM8VSw7ZqXI= 1015c991 < a8X4p67MjDRucqHNb1ZD0xNcP4U= --- > 788ESn78DAfBgxwTD5gekh2CJd4= 1019c995 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1023c999 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1027c1003 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1031c1007 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1035c1011 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1039c1015 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1043c1019 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1047c1023 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1051c1027 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1055c1031 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1059c1035 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1063c1039 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1067c1043 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1071c1047 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1075c1051 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1087c1063 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1091c1067 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1099c1075 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1103c1079 < swDvZCPyGcHPrTd17t0xJ7zMGCA= --- > 2Xry9laKczyuNJYvl3zLoWtLPU0= 1107c1083 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1111c1087 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1115c1091 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1119c1095 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1123c1099 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1127c1103 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1131c1107 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1135c1111 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1139c1115 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1143c1119 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1147c1123 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1151c1127 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1155c1131 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1163c1139 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1167c1143 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1171c1147 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1175c1151 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1179c1155 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1181c1157 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1183c1159 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1185c1161 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1187c1163 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1189c1165 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1191c1167 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1193c1169 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1195c1171 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1223c1199 < 24IuTHkxkLKtpFBBwLBznSFYBzo= --- > N3IgC6iGWKY+bW0vYYtuxzmVULU= 1227c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1231c1207 < RnOjWfEd5Gk51vDaps+uJb3r0Cc= --- > ZfbjMu+LBuFZZsJqvvn8A21x6kk= 1235c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1385,1408d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-ar.xml < < P2/uI1vL4oOnHW4vOmGUp/IO+Dk= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48022476 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:41 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48022475 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:41 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48022474 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:41 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48022426 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:41 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48022425 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:41 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48022424 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:41 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48022423 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:41 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48022422 8 -rw-r--r-- 1 cltbld staff 1403 May 9 17:41 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-ar.xml 48022421 8 -rw-r--r-- 1 cltbld staff 1363 May 9 17:41 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:42:07-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:42:07 GMT Keep-Alive: timeout=5, max=992 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 594 Length: 594 [text/xml] Saving to: 'update.xml' 0K 100% 94.4M=0s 2016-05-09 17:42:07 (94.4 MB/s) - 'update.xml' saved [594/594] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ast/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ast/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:42:08-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ast/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67794201 Connection: keep-alive Date: Tue, 10 May 2016 00:25:02 GMT x-amz-replication-status: COMPLETED x-amz-version-id: djeakFazicSIjSzmOgk_ZTojCmmz5Jds Last-Modified: Tue, 03 May 2016 15:38:46 GMT ETag: "45e8e28c009a071628d73bbfab0dea6e" Accept-Ranges: bytes Server: AmazonS3 Age: 1027 X-Cache: Hit from cloudfront Via: 1.1 dc553909528b8b63475c922dc07d8ba6.cloudfront.net (CloudFront) X-Amz-Cf-Id: n6fQ-HNEgdplz3Efg63kEGebgVUENkkG137umzG3Z8XYrnNmnJ7BFw== Length: 67794201 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 45.4M 1s 3072K ........ ........ ........ ........ ........ ........ 9% 62.6M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 54.1M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 53.2M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 55.0M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 51.0M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 40.8M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 63.2M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 53.9M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 58.3M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 56.5M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 50.4M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 34.4M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 24.4M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 47.8M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 42.7M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 43.8M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 57.7M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 49.0M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 43.7M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 22.2M 0s 64512K ........ ........ ........ .. 100% 25.2M=1.5s 2016-05-09 17:42:09 (43.9 MB/s) - 'update/complete.mar' saved [67794201/67794201] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ast/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ast/Thunderbird 38.6.0.dmg'] --2016-05-09 17:42:10-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ast/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69808896 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:42:11 GMT ETag: "c67cd2430b0f97b8d90c77bc7b7b6278" Last-Modified: Fri, 12 Feb 2016 21:48:36 GMT x-amz-replication-status: COMPLETED x-amz-version-id: j1nHbHQW2rdUHgj.MAVIzcJHCv292xZu X-Cache: Miss from cloudfront Via: 1.1 96255a5b0caf50bcafcd101c1ff13691.cloudfront.net (CloudFront) X-Amz-Cf-Id: 2imUh1tqAhivBPfqeBzHacPr80fyVLEcupLX4OknpK9kgNuA1ZyIdA== Length: 69808896 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 2.02M 32s 3072K ........ ........ ........ ........ ........ ........ 9% 6.73M 20s 6144K ........ ........ ........ ........ ........ ........ 13% 8.64M 15s 9216K ........ ........ ........ ........ ........ ........ 18% 9.05M 12s 12288K ........ ........ ........ ........ ........ ........ 22% 7.33M 10s 15360K ........ ........ ........ ........ ........ ........ 27% 7.82M 9s 18432K ........ ........ ........ ........ ........ ........ 31% 8.89M 8s 21504K ........ ........ ........ ........ ........ ........ 36% 6.59M 7s 24576K ........ ........ ........ ........ ........ ........ 40% 9.62M 7s 27648K ........ ........ ........ ........ ........ ........ 45% 10.1M 6s 30720K ........ ........ ........ ........ ........ ........ 49% 9.65M 5s 33792K ........ ........ ........ ........ ........ ........ 54% 10.9M 5s 36864K ........ ........ ........ ........ ........ ........ 58% 10.1M 4s 39936K ........ ........ ........ ........ ........ ........ 63% 10.2M 4s 43008K ........ ........ ........ ........ ........ ........ 67% 10.3M 3s 46080K ........ ........ ........ ........ ........ ........ 72% 8.25M 3s 49152K ........ ........ ........ ........ ........ ........ 76% 8.43M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 9.61M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 8.64M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 7.61M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 8.56M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 8.05M 0s 67584K ........ . 100% 7.77M=8.8s 2016-05-09 17:42:20 (7.52 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69808896/69808896] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ast/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ast/Thunderbird 45.1.0.dmg'] --2016-05-09 17:42:20-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ast/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77162335 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:25:15 GMT ETag: "8d85e9e06ffa61772be86f7ba262e73f" Last-Modified: Mon, 09 May 2016 20:59:26 GMT x-amz-replication-status: COMPLETED x-amz-version-id: h.NeXnFsssvfF7qDAxHSqPN5T1Dkj9VF Age: 1025 X-Cache: Hit from cloudfront Via: 1.1 9767e262e4af15c8d83a726bb0f44fa5.cloudfront.net (CloudFront) X-Amz-Cf-Id: srX60fyWBTyzFEOlSFyoAcUkvON3-ttgT4ALyoDib4X4KhZUgZfjcA== Length: 77162335 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 35.0M 2s 3072K ........ ........ ........ ........ ........ ........ 8% 44.2M 2s 6144K ........ ........ ........ ........ ........ ........ 12% 51.2M 2s 9216K ........ ........ ........ ........ ........ ........ 16% 51.5M 1s 12288K ........ ........ ........ ........ ........ ........ 20% 45.6M 1s 15360K ........ ........ ........ ........ ........ ........ 24% 53.6M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 40.4M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 51.5M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 38.7M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 42.1M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 32.4M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 49.3M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 50.8M 1s 39936K ........ ........ ........ ........ ........ ........ 57% 48.7M 1s 43008K ........ ........ ........ ........ ........ ........ 61% 26.1M 1s 46080K ........ ........ ........ ........ ........ ........ 65% 47.6M 1s 49152K ........ ........ ........ ........ ........ ........ 69% 43.0M 1s 52224K ........ ........ ........ ........ ........ ........ 73% 54.6M 0s 55296K ........ ........ ........ ........ ........ ........ 77% 56.4M 0s 58368K ........ ........ ........ ........ ........ ........ 81% 54.3M 0s 61440K ........ ........ ........ ........ ........ ........ 85% 46.5M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 47.0M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 46.3M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 52.7M 0s 73728K ........ ........ ........ . 100% 46.1M=1.6s 2016-05-09 17:42:22 (44.8 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77162335/77162335] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ast.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/ast.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ast.lproj/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-ast.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/ast.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ast.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/ast.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ast.lproj/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-ast.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/ast.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-ast.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/ast.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ast.lproj/ non-fatal error removing directory: Contents/Resources/ast.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-ast.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/ast.lproj/InfoPlist.strings FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia-ast.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 58,60c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d106 < rmdir "Contents/Resources/searchplugins/" 121d110 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 22c22 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 34c34 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 38c38 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 42c42 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 46c46 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 50c50 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 54c54 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 58c58 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 62c62 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 66c66 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 70c70 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 74c74 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 78c78 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 82c82 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 86c86 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 90c90 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 94c94 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 98c98 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 102c102 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 106c106 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 110c110 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 114c114 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 118c118 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 122c122 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 126c126 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 130c130 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 134c134 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 138c138 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 142c142 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 146c146 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 150c150 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 154c154 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 158c158 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 162c162 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 166c166 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 170c170 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 174c174 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 178c178 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 182c182 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 186c186 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 190c190 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 194c194 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 198c198 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 202c202 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 206c206 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 210c210 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 218c218 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 222c222 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 226c226 < apW3IoKwi/VHVz0SAIT32C9sZds= --- > 2/fgzQ7KtO511qAiVl8+zKXi/0I= 230c230 < Gd3dgr1LauABe8L3Wnj850QpDnY= --- > BQeAx6fFwIL3H7dKwEPB4lm0F3I= 234c234 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 238c238 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 242c242 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 246c246 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 250c250 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 254c254 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 258c258 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 262c262 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 266c266 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 270c270 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 274c274 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 278c278 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 282c282 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 286c286 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 290c290 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 302c302 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 306c306 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 314c314 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 318c318 < plqXZ5VvlLmj3in8d9q74hinvjA= --- > M6M6qSvt996OT85izklx11KQjS8= 322c322 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 326c326 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 330c330 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 334c334 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 338c338 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 342c342 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 346c346 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 350c350 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 354c354 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 358c358 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 362c362 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 366c366 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 370c370 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 378c378 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 382c382 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 386c386 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 390c390 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 394c394 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 396c396 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 398c398 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 400c400 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 402c402 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 404c404 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 406c406 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 408c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 410c410 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < 5ejylxAjenzRge/k6nGmmjg5rBs= --- > J8+0NELuoN4p57S2lmpa89oAg3Y= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < s6bTBKZUPuOvBWPnJgSQlBy3yQQ= --- > rT21oNKoC/505roqE1mNreikMEI= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,627d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-ast.xml < < TswxytfosoOZR3QSPI5OZqG7LiM= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < ufqBNlxcdFNnSE0dJIlFiLbh3/Q= --- > 6QCnypszXsNO2GuUOuRwDQEzrDk= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 811c783 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 823c795 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 827c799 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 831c803 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 835c807 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 839c811 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 843c815 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 847c819 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 851c823 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 855c827 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 859c831 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 863c835 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 867c839 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 871c843 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 875c847 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 879c851 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 883c855 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 887c859 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 891c863 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 895c867 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 899c871 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 903c875 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 907c879 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 911c883 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 915c887 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 919c891 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 923c895 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 927c899 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 931c903 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 935c907 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 939c911 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 943c915 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 947c919 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 951c923 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 955c927 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 959c931 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 963c935 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 967c939 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 971c943 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 975c947 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 979c951 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 983c955 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 987c959 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 991c963 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 995c967 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 999c971 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1007c979 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1011c983 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1015c987 < apW3IoKwi/VHVz0SAIT32C9sZds= --- > 2/fgzQ7KtO511qAiVl8+zKXi/0I= 1019c991 < Gd3dgr1LauABe8L3Wnj850QpDnY= --- > BQeAx6fFwIL3H7dKwEPB4lm0F3I= 1023c995 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1027c999 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1031c1003 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1035c1007 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1039c1011 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1043c1015 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1047c1019 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1051c1023 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1055c1027 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1059c1031 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1063c1035 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1067c1039 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1071c1043 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1075c1047 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1079c1051 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1091c1063 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1095c1067 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1103c1075 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1107c1079 < plqXZ5VvlLmj3in8d9q74hinvjA= --- > M6M6qSvt996OT85izklx11KQjS8= 1111c1083 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1115c1087 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1119c1091 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1123c1095 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1127c1099 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1131c1103 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1135c1107 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1139c1111 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1143c1115 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1147c1119 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1151c1123 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1155c1127 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1159c1131 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1167c1139 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1171c1143 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1175c1147 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1179c1151 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1183c1155 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1185c1157 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1187c1159 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1189c1161 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1191c1163 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1193c1165 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1195c1167 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1197c1169 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1199c1171 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1227c1199 < 5ejylxAjenzRge/k6nGmmjg5rBs= --- > J8+0NELuoN4p57S2lmpa89oAg3Y= 1231c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1235c1207 < s6bTBKZUPuOvBWPnJgSQlBy3yQQ= --- > rT21oNKoC/505roqE1mNreikMEI= 1239c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1389,1416d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-ast.xml < < TswxytfosoOZR3QSPI5OZqG7LiM= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48023224 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:43 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48023223 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:43 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48023222 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:43 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48023174 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:43 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48023173 8 -rw-r--r-- 1 cltbld staff 1670 May 9 17:43 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48023172 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:43 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48023171 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:43 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48023170 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:43 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48023169 8 -rw-r--r-- 1 cltbld staff 1336 May 9 17:43 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-ast.xml 48023168 8 -rw-r--r-- 1 cltbld staff 1363 May 9 17:43 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:43:16-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:43:16 GMT Keep-Alive: timeout=5, max=974 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 17:43:16 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/be/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/be/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:43:17-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/be/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67833976 Connection: keep-alive Date: Tue, 10 May 2016 00:27:17 GMT x-amz-replication-status: COMPLETED x-amz-version-id: semhoFzsItehyBBcOkN4jGsNJNSkcD8y Last-Modified: Tue, 03 May 2016 15:52:15 GMT ETag: "88183b4f026c8de4641741321e0b3bfd" Accept-Ranges: bytes Server: AmazonS3 Age: 961 X-Cache: Hit from cloudfront Via: 1.1 2a47832c458ab2a6b20c8363f5aa35ea.cloudfront.net (CloudFront) X-Amz-Cf-Id: xWhdK1FQHYGONwePUkfwe-mNuQ0qScro5ZpMo03f-4Qz0uIPDfBfAQ== Length: 67833976 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 42.2M 1s 3072K ........ ........ ........ ........ ........ ........ 9% 51.1M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 27.1M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 33.3M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 35.2M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 27.0M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 47.1M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 42.5M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 40.8M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 37.4M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 44.4M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 44.4M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 45.3M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 49.4M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 41.4M 1s 46080K ........ ........ ........ ........ ........ ........ 74% 27.1M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 35.4M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 39.3M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 30.5M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 31.4M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 44.6M 0s 64512K ........ ........ ........ ... 100% 49.2M=1.7s 2016-05-09 17:43:19 (37.7 MB/s) - 'update/complete.mar' saved [67833976/67833976] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/be/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/be/Thunderbird 38.6.0.dmg'] --2016-05-09 17:43:20-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/be/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69852581 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:43:20 GMT ETag: "8d04e5e9fa95ebef77a86bd49e5f6a55" Last-Modified: Fri, 12 Feb 2016 21:48:40 GMT x-amz-replication-status: COMPLETED x-amz-version-id: y4D045N3nJ7eVTeTm6NDB3e6U3X58cF8 X-Cache: Miss from cloudfront Via: 1.1 2239f0bfe6d7427183a4e375c4638619.cloudfront.net (CloudFront) X-Amz-Cf-Id: O8Oc8cGaWtk2IJqj1T48q_Geh6IAxz9Ul_RK5Xn3-ppCef25I9gJMQ== Length: 69852581 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.62M 39s 3072K ........ ........ ........ ........ ........ ........ 9% 5.40M 24s 6144K ........ ........ ........ ........ ........ ........ 13% 8.13M 18s 9216K ........ ........ ........ ........ ........ ........ 18% 10.9M 14s 12288K ........ ........ ........ ........ ........ ........ 22% 14.5M 11s 15360K ........ ........ ........ ........ ........ ........ 27% 16.3M 9s 18432K ........ ........ ........ ........ ........ ........ 31% 17.5M 8s 21504K ........ ........ ........ ........ ........ ........ 36% 19.0M 7s 24576K ........ ........ ........ ........ ........ ........ 40% 21.6M 6s 27648K ........ ........ ........ ........ ........ ........ 45% 21.8M 5s 30720K ........ ........ ........ ........ ........ ........ 49% 20.1M 4s 33792K ........ ........ ........ ........ ........ ........ 54% 20.8M 4s 36864K ........ ........ ........ ........ ........ ........ 58% 7.20M 3s 39936K ........ ........ ........ ........ ........ ........ 63% 3.97M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 5.57M 3s 46080K ........ ........ ........ ........ ........ ........ 72% 9.65M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 7.31M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 13.6M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 8.41M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 10.3M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 9.67M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 6.72M 0s 67584K ........ . 100% 10.8M=8.5s 2016-05-09 17:43:29 (7.88 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69852581/69852581] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/be/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/be/Thunderbird 45.1.0.dmg'] --2016-05-09 17:43:29-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/be/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77216172 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:27:41 GMT ETag: "fa0fa9d5d23f534a4a82ee70a038a958" Last-Modified: Mon, 09 May 2016 21:22:09 GMT x-amz-replication-status: COMPLETED x-amz-version-id: QdfUntkzQfR_ADpgvsEOCyGDK2Mn9CM_ Age: 948 X-Cache: Hit from cloudfront Via: 1.1 7db492e48a5d55351dcb787a8a14e113.cloudfront.net (CloudFront) X-Amz-Cf-Id: EId2dEUmswt0bxIDRVdf7nLUWDE8s9FKhknWlv3gHgCv_qXS9aU2gw== Length: 77216172 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 25.4M 3s 3072K ........ ........ ........ ........ ........ ........ 8% 67.8M 2s 6144K ........ ........ ........ ........ ........ ........ 12% 42.7M 2s 9216K ........ ........ ........ ........ ........ ........ 16% 45.4M 2s 12288K ........ ........ ........ ........ ........ ........ 20% 47.2M 1s 15360K ........ ........ ........ ........ ........ ........ 24% 15.4M 2s 18432K ........ ........ ........ ........ ........ ........ 28% 44.8M 2s 21504K ........ ........ ........ ........ ........ ........ 32% 38.5M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 26.3M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 57.1M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 49.5M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 51.2M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 45.6M 1s 39936K ........ ........ ........ ........ ........ ........ 57% 53.3M 1s 43008K ........ ........ ........ ........ ........ ........ 61% 48.6M 1s 46080K ........ ........ ........ ........ ........ ........ 65% 50.4M 1s 49152K ........ ........ ........ ........ ........ ........ 69% 55.4M 1s 52224K ........ ........ ........ ........ ........ ........ 73% 42.0M 0s 55296K ........ ........ ........ ........ ........ ........ 77% 43.1M 0s 58368K ........ ........ ........ ........ ........ ........ 81% 24.9M 0s 61440K ........ ........ ........ ........ ........ ........ 85% 77.4M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 46.7M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 57.3M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 29.3M 0s 73728K ........ ........ ........ .. 100% 31.5M=1.9s 2016-05-09 17:43:31 (39.7 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77216172/77216172] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yandex.by.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/tut.by.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/ru.wikipedia.org-be.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/be.wikipedia.org.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/be-x-old.wikipedia.org.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/be.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/be.lproj/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yandex.by.xml PREPARE ADD Contents/Resources/searchplugins/tut.by.xml PREPARE ADD Contents/Resources/searchplugins/ru.wikipedia.org-be.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/be.wikipedia.org.xml PREPARE ADD Contents/Resources/searchplugins/be-x-old.wikipedia.org.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/be.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yandex.by.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/tut.by.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/ru.wikipedia.org-be.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/be.wikipedia.org.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/be-x-old.wikipedia.org.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/be.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/be.lproj/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yandex.by.xml EXECUTE ADD Contents/Resources/searchplugins/tut.by.xml EXECUTE ADD Contents/Resources/searchplugins/ru.wikipedia.org-be.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/be.wikipedia.org.xml EXECUTE ADD Contents/Resources/searchplugins/be-x-old.wikipedia.org.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/be.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yandex.by.xml FINISH REMOVEFILE Contents/Resources/searchplugins/tut.by.xml FINISH REMOVEFILE Contents/Resources/searchplugins/ru.wikipedia.org-be.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/be.wikipedia.org.xml FINISH REMOVEFILE Contents/Resources/searchplugins/be-x-old.wikipedia.org.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/be.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/be.lproj/ non-fatal error removing directory: Contents/Resources/be.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yandex.by.xml FINISH ADD Contents/Resources/searchplugins/tut.by.xml FINISH ADD Contents/Resources/searchplugins/ru.wikipedia.org-be.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/be.wikipedia.org.xml FINISH ADD Contents/Resources/searchplugins/be-x-old.wikipedia.org.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/be.lproj/InfoPlist.strings FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,9d3 < remove "Contents/Resources/searchplugins/yandex.by.xml" < remove "Contents/Resources/searchplugins/tut.by.xml" < remove "Contents/Resources/searchplugins/ru.wikipedia.org-be.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/be.wikipedia.org.xml" < remove "Contents/Resources/searchplugins/be-x-old.wikipedia.org.xml" 57,59c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 89c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 115d106 < rmdir "Contents/Resources/searchplugins/" 120d110 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 22c22 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 34c34 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 38c38 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 42c42 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 46c46 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 50c50 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 54c54 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 58c58 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 62c62 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 66c66 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 70c70 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 74c74 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 78c78 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 82c82 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 86c86 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 90c90 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 94c94 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 98c98 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 102c102 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 106c106 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 110c110 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 114c114 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 118c118 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 122c122 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 126c126 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 130c130 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 134c134 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 138c138 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 142c142 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 146c146 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 150c150 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 154c154 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 158c158 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 162c162 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 166c166 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 170c170 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 174c174 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 178c178 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 182c182 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 186c186 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 190c190 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 194c194 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 198c198 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 202c202 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 206c206 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 210c210 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 218c218 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 222c222 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 226c226 < GK8TLsD/fOz7eerK2Sje46iQI7k= --- > LfYR9NZFIA4rKcx0MjD/1ohE3hk= 230c230 < 1IR2b4KKrXBySdO9n3N1FyIsYsk= --- > QVEaibcmNGS4lebWcdW47OU44GA= 234c234 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 238c238 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 242c242 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 246c246 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 250c250 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 254c254 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 258c258 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 262c262 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 266c266 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 270c270 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 274c274 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 278c278 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 282c282 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 286c286 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 290c290 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 302c302 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 306c306 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 314c314 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 318c318 < jgsDehgFgiHmDva645lR8Kvk+gM= --- > ycsYP+G3R22RekLs5dW4e2u5vOk= 322c322 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 326c326 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 330c330 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 334c334 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 338c338 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 342c342 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 346c346 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 350c350 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 354c354 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 358c358 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 362c362 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 366c366 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 370c370 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 378c378 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 382c382 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 386c386 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 390c390 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 394c394 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 396c396 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 398c398 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 400c400 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 402c402 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 404c404 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 406c406 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 408c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 410c410 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < g8PqoFwCfReoqm4uNnW1b0tucNQ= --- > wgm9n5x6RWrrfNK0EZklWLUL5+s= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < O7Uwrg2N9/b4jj1vQC6S3O1F1AI= --- > gOM9ZSuSoMmTMHGV+T4qZJhT638= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,623d599 < Resources/searchplugins/be-x-old.wikipedia.org.xml < < rrLyJJBRGZwGQNDkhqCYllFoKVU= < < Resources/searchplugins/be.wikipedia.org.xml < < /Njj8Xr7BJOqaDqDlMgurKIMcuU= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/ru.wikipedia.org-be.xml < < Ki8VIyVZVNoWUozywugFLCxD9oM= < < Resources/searchplugins/tut.by.xml < < O6I5GKtEygC9m0n8zoM0xLsHtKY= < < Resources/searchplugins/yandex.by.xml < < WnjXeVpU6O3PPl9XIlAaIye9SCM= < 652c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 661c637 < 1Uyp28tGy+CwAjUjeMOwaEjq6cg= --- > kIA/wNRFfaPGyuik/r+Jcq4Mo9c= 670c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 679c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 688c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 693c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 697c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 706c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 715c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 724c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 733c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 742c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 751c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 760c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 769c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 778c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 787c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 794c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 807c783 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 819c795 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 823c799 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 827c803 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 831c807 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 835c811 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 839c815 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 843c819 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 847c823 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 851c827 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 855c831 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 859c835 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 863c839 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 867c843 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 871c847 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 875c851 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 879c855 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 883c859 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 887c863 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 891c867 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 895c871 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 899c875 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 903c879 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 907c883 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 911c887 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 915c891 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 919c895 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 923c899 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 927c903 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 931c907 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 935c911 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 939c915 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 943c919 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 947c923 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 951c927 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 955c931 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 959c935 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 963c939 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 967c943 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 971c947 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 975c951 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 979c955 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 983c959 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 987c963 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 991c967 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 995c971 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1003c979 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1007c983 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1011c987 < GK8TLsD/fOz7eerK2Sje46iQI7k= --- > LfYR9NZFIA4rKcx0MjD/1ohE3hk= 1015c991 < 1IR2b4KKrXBySdO9n3N1FyIsYsk= --- > QVEaibcmNGS4lebWcdW47OU44GA= 1019c995 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1023c999 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1027c1003 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1031c1007 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1035c1011 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1039c1015 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1043c1019 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1047c1023 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1051c1027 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1055c1031 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1059c1035 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1063c1039 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1067c1043 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1071c1047 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1075c1051 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1087c1063 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1091c1067 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1099c1075 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1103c1079 < jgsDehgFgiHmDva645lR8Kvk+gM= --- > ycsYP+G3R22RekLs5dW4e2u5vOk= 1107c1083 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1111c1087 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1115c1091 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1119c1095 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1123c1099 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1127c1103 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1131c1107 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1135c1111 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1139c1115 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1143c1119 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1147c1123 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1151c1127 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1155c1131 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1163c1139 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1167c1143 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1171c1147 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1175c1151 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1179c1155 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1181c1157 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1183c1159 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1185c1161 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1187c1163 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1189c1165 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1191c1167 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1193c1169 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1195c1171 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1223c1199 < g8PqoFwCfReoqm4uNnW1b0tucNQ= --- > wgm9n5x6RWrrfNK0EZklWLUL5+s= 1227c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1231c1207 < O7Uwrg2N9/b4jj1vQC6S3O1F1AI= --- > gOM9ZSuSoMmTMHGV+T4qZJhT638= 1235c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1385,1408d1360 < Resources/searchplugins/be-x-old.wikipedia.org.xml < < rrLyJJBRGZwGQNDkhqCYllFoKVU= < < Resources/searchplugins/be.wikipedia.org.xml < < /Njj8Xr7BJOqaDqDlMgurKIMcuU= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/ru.wikipedia.org-be.xml < < Ki8VIyVZVNoWUozywugFLCxD9oM= < < Resources/searchplugins/tut.by.xml < < O6I5GKtEygC9m0n8zoM0xLsHtKY= < < Resources/searchplugins/yandex.by.xml < < WnjXeVpU6O3PPl9XIlAaIye9SCM= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48023973 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:44 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48023972 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:44 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48023971 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:44 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48023923 8 -rw-r--r-- 1 cltbld staff 2803 May 9 17:44 source/Thunderbird.app/Contents/Resources/searchplugins/be-x-old.wikipedia.org.xml 48023922 8 -rw-r--r-- 1 cltbld staff 2761 May 9 17:44 source/Thunderbird.app/Contents/Resources/searchplugins/be.wikipedia.org.xml 48023921 8 -rw-r--r-- 1 cltbld staff 2371 May 9 17:44 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48023920 8 -rw-r--r-- 1 cltbld staff 2759 May 9 17:44 source/Thunderbird.app/Contents/Resources/searchplugins/ru.wikipedia.org-be.xml 48023919 8 -rw-r--r-- 1 cltbld staff 1421 May 9 17:44 source/Thunderbird.app/Contents/Resources/searchplugins/tut.by.xml 48023918 8 -rw-r--r-- 1 cltbld staff 1892 May 9 17:44 source/Thunderbird.app/Contents/Resources/searchplugins/yandex.by.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:44:25-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:44:25 GMT Keep-Alive: timeout=5, max=840 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 17:44:25 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bg/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bg/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:44:25-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bg/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68164300 Connection: keep-alive Date: Tue, 10 May 2016 00:29:42 GMT x-amz-replication-status: COMPLETED x-amz-version-id: OnrxoqnMHaJ83HFr4WwJbif2hcF5nFoX Last-Modified: Tue, 03 May 2016 16:05:51 GMT ETag: "9f6f75752a3b6f46e868cceec3ae6940" Accept-Ranges: bytes Server: AmazonS3 Age: 884 X-Cache: Hit from cloudfront Via: 1.1 02192a27c967e955f8c815efa939bfc8.cloudfront.net (CloudFront) X-Amz-Cf-Id: I3nGYF5DO9_j5-lkgYphAFaSc7SLBmHcfBpdjcVfGGLeHC6ORlwqcw== Length: 68164300 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 42.7M 1s 3072K ........ ........ ........ ........ ........ ........ 9% 42.7M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 40.5M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 47.3M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 34.9M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 36.9M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 55.1M 1s 21504K ........ ........ ........ ........ ........ ........ 36% 42.1M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 53.3M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 31.2M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 34.8M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 55.7M 1s 36864K ........ ........ ........ ........ ........ ........ 59% 40.3M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 24.7M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 25.8M 1s 46080K ........ ........ ........ ........ ........ ........ 73% 40.6M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 33.2M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 45.4M 0s 55296K ........ ........ ........ ........ ........ ........ 87% 39.6M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 47.9M 0s 61440K ........ ........ ........ ........ ........ ........ 96% 36.6M 0s 64512K ........ ........ ........ ........ 100% 46.7M=1.7s 2016-05-09 17:44:27 (38.9 MB/s) - 'update/complete.mar' saved [68164300/68164300] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/bg/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/bg/Thunderbird 38.6.0.dmg'] --2016-05-09 17:44:28-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/bg/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70154343 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:44:29 GMT ETag: "9fad6975305da1657d61e44ca6374f13" Last-Modified: Fri, 12 Feb 2016 21:48:42 GMT x-amz-replication-status: COMPLETED x-amz-version-id: AJsL2NqnSEp2rf0e2gzrhDknht5qDrOz X-Cache: Miss from cloudfront Via: 1.1 7db492e48a5d55351dcb787a8a14e113.cloudfront.net (CloudFront) X-Amz-Cf-Id: GSE8veinM5cwN3j8QUFrAZDfRQuHaALxTMVLhrVqwvVfBY3XavqDpw== Length: 70154343 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.74M 37s 3072K ........ ........ ........ ........ ........ ........ 8% 3.96M 25s 6144K ........ ........ ........ ........ ........ ........ 13% 3.80M 21s 9216K ........ ........ ........ ........ ........ ........ 17% 3.96M 18s 12288K ........ ........ ........ ........ ........ ........ 22% 4.27M 16s 15360K ........ ........ ........ ........ ........ ........ 26% 3.93M 15s 18432K ........ ........ ........ ........ ........ ........ 31% 4.26M 14s 21504K ........ ........ ........ ........ ........ ........ 35% 4.32M 12s 24576K ........ ........ ........ ........ ........ ........ 40% 4.80M 11s 27648K ........ ........ ........ ........ ........ ........ 44% 6.15M 10s 30720K ........ ........ ........ ........ ........ ........ 49% 5.95M 9s 33792K ........ ........ ........ ........ ........ ........ 53% 7.34M 8s 36864K ........ ........ ........ ........ ........ ........ 58% 6.74M 7s 39936K ........ ........ ........ ........ ........ ........ 62% 7.34M 6s 43008K ........ ........ ........ ........ ........ ........ 67% 6.75M 5s 46080K ........ ........ ........ ........ ........ ........ 71% 7.43M 4s 49152K ........ ........ ........ ........ ........ ........ 76% 6.10M 3s 52224K ........ ........ ........ ........ ........ ........ 80% 4.10M 3s 55296K ........ ........ ........ ........ ........ ........ 85% 3.66M 2s 58368K ........ ........ ........ ........ ........ ........ 89% 3.72M 2s 61440K ........ ........ ........ ........ ........ ........ 94% 3.24M 1s 64512K ........ ........ ........ ........ ........ ........ 98% 3.70M 0s 67584K ........ ...... 100% 3.34M=15s 2016-05-09 17:44:44 (4.32 MB/s) - 'Thunderbird 38.6.0.dmg' saved [70154343/70154343] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/bg/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/bg/Thunderbird 45.1.0.dmg'] --2016-05-09 17:44:45-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/bg/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77547324 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:29:56 GMT ETag: "6be53db772d6a95a8ee476ea29cc3d78" Last-Modified: Mon, 09 May 2016 21:44:23 GMT x-amz-replication-status: COMPLETED x-amz-version-id: n7yjiAk.GEf7FXM7uAjdqxRQBY555jGM Age: 889 X-Cache: Hit from cloudfront Via: 1.1 95da1452a75435200220a7075ca3893f.cloudfront.net (CloudFront) X-Amz-Cf-Id: LISfYJ3junBZYDY_XyJ6LZLpemdV7XdDXmkt1EbB5TeLkRDz1Gj6xg== Length: 77547324 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 41.1M 2s 3072K ........ ........ ........ ........ ........ ........ 8% 53.6M 1s 6144K ........ ........ ........ ........ ........ ........ 12% 35.0M 2s 9216K ........ ........ ........ ........ ........ ........ 16% 59.8M 1s 12288K ........ ........ ........ ........ ........ ........ 20% 42.3M 1s 15360K ........ ........ ........ ........ ........ ........ 24% 57.1M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 52.8M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 34.6M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 34.9M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 39.0M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 43.1M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 52.3M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 48.7M 1s 39936K ........ ........ ........ ........ ........ ........ 56% 48.9M 1s 43008K ........ ........ ........ ........ ........ ........ 60% 32.0M 1s 46080K ........ ........ ........ ........ ........ ........ 64% 46.6M 1s 49152K ........ ........ ........ ........ ........ ........ 68% 52.7M 1s 52224K ........ ........ ........ ........ ........ ........ 73% 58.0M 0s 55296K ........ ........ ........ ........ ........ ........ 77% 51.4M 0s 58368K ........ ........ ........ ........ ........ ........ 81% 50.2M 0s 61440K ........ ........ ........ ........ ........ ........ 85% 47.4M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 40.9M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 29.1M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 39.1M 0s 73728K ........ ........ ........ ....... 100% 55.0M=1.7s 2016-05-09 17:44:46 (44.0 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77547324/77547324] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/bg.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/bg.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/bg.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/bg.lproj/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/bg.dic PREPARE ADD Contents/Resources/dictionaries/bg.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/bg.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/bg.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/bg.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/bg.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/bg.lproj/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/bg.dic EXECUTE ADD Contents/Resources/dictionaries/bg.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/bg.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/bg.dic FINISH REMOVEFILE Contents/Resources/dictionaries/bg.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/bg.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/bg.lproj/ non-fatal error removing directory: Contents/Resources/bg.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/bg.dic FINISH ADD Contents/Resources/dictionaries/bg.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/bg.lproj/InfoPlist.strings FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini 11c11 < CrashReporterTitle=Докладчик за Ñривове --- > CrashReporterTitle=Доклад за Ñрив 13c13 < CrashReporterVendorTitle=Докладчик за Ñривове на %s --- > CrashReporterVendorTitle=Доклад за Ñрив на %s 15c15 < CrashReporterErrorText=Възникна проблем и програмата Ñе Ñрина.\n\nЗа Ñъжаление докладчикът за Ñривове не уÑÐ¿Ñ Ð´Ð° изпрати доклад за Ñрива.\n\nПодробноÑти: %s --- > CrashReporterErrorText=Възникна проблем и програмата Ñе Ñрина.\n\nЗа Ñъжаление доклад за Ñрива не беше изпратен.\n\nПодробноÑти: %s 17c17 < CrashReporterProductErrorText2=%s имаше проблем и Ñе Ñрина.\n\nЗа Ñъжаление не беше изпратен доклад за това..\n\nПодробноÑти: %s --- > CrashReporterProductErrorText2=Възникна проблем и %s Ñе Ñрина.\n\nЗа Ñъжаление доклад за Ñрива не беше изпратен.\n\nПодробноÑти: %s 20,21c20,21 < CrashReporterDescriptionText2=%s имаше проблем и Ñе Ñрина.\n\nЗа да ни помогнете да диагноÑтицираме и поправим проблема, можете да ни изпратите доклад за Ñрива. < CrashReporterDefault=Приложението е пуÑнато Ñлед Ñрив Ñ Ñ†ÐµÐ» докладване на проблема. Ðе Ñ‚Ñ€Ñбва да бъде пуÑкано направо. --- > CrashReporterDescriptionText2=Възникна проблем и %s Ñе Ñрина.\n\nЗа да ни помогнете да бъде диагноÑтициран и оправен проблема, можете да ни изпратите доклад за Ñрива. > CrashReporterDefault=Това приложение Ñе пуÑка Ñлед Ñрив, за да докладва за проблема на ÑъздателÑ. То не бива да бъде пуÑкано ÑамоÑтаÑтелно. 24,25c24,25 < CommentGrayText=ДобавÑне на коментар. Забележка: коментарите Ñа публично видими. < ExtraReportInfo=Докладът Ñъщо Ñъдържа техничеÑка Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° ÑÑŠÑтоÑнието на приложението в момента на Ñрива. --- > CommentGrayText=ДобавÑне на коментар (коментарите Ñа общодоÑтъпни) > ExtraReportInfo=Докладът Ñъщо така Ñъдържа техничеÑка Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° ÑÑŠÑтоÑнието на приложението в момента на Ñрива. 30,33c30,33 < EmailGrayText=Въведете вашата е-поща < ReportPreSubmit2=ВашиÑÑ‚ доклад за Ñрив ще бъде изпратен Ñлед реÑтартиране на приложението. < ReportDuringSubmit2=Изпращане на Ð²Ð°ÑˆÐ¸Ñ Ð´Ð¾ÐºÐ»Ð°Ð´ и реÑтартиране на приложението… < ReportSubmitSuccess=Докладът е изпратен уÑпешно! --- > EmailGrayText=Въведете адреÑа на ÑвоÑта ел. поща > ReportPreSubmit2=ВашиÑÑ‚ доклад за Ñрив ще бъде изпратен преди затварÑне или реÑтартиране. > ReportDuringSubmit2=Изпращане на Ð²Ð°ÑˆÐ¸Ñ Ð´Ð¾ÐºÐ»Ð°Ð´â€¦ > ReportSubmitSuccess=Докладът е уÑпешно изпратен! 45,49c45,49 < CrashDetailsURL=Можете да преглеждате подробноÑти за този Ñрив на Ð°Ð´Ñ€ÐµÑ %s < ErrorBadArguments=Приложението даде невалиден аргумент. < ErrorExtraFileExists=Приложението не оÑтави файл Ñ Ð´Ð°Ð½Ð½Ð¸ на приложението. < ErrorExtraFileRead=Ðе можа да Ñе прочете файлът Ñ Ð´Ð°Ð½Ð½Ð¸ на приложението. < ErrorExtraFileMove=Ðе можа да Ñе премеÑти файлът Ñ Ð´Ð°Ð½Ð½Ð¸ на приложението. --- > CrashDetailsURL=Може да видите подробноÑтите за този Ñрив на %s > ErrorBadArguments=Приложението подаде невалиден аргумент. > ErrorExtraFileExists=Приложението не оÑтави файла Ñи Ñ Ð´Ð°Ð½Ð½Ð¸. > ErrorExtraFileRead=Файлът Ñ Ð´Ð°Ð½Ð½Ð¸ от приложението не може да бъде прочетен. > ErrorExtraFileMove=Файлът Ñ Ð´Ð°Ð½Ð½Ð¸ от приложението не може да бъде премеÑтен. 51c51 < ErrorDumpFileMove=Ðе можа да Ñе премеÑти резултатът от Ñрива. --- > ErrorDumpFileMove=ОпиÑателниÑÑ‚ файл на Ñрива не може да бъде премеÑтен. 54,55c54,55 < ErrorNoSettingsPath=Ðе можаха да Ñе намерÑÑ‚ наÑтройките на докладчика за Ñривове. < ErrorCreateDumpDir=Ðе можа да Ñе Ñъздаде Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° изходни данни. --- > ErrorNoSettingsPath=ÐаÑтройките на Доклад за Ñрив не можаха да бъдат намерени. > ErrorCreateDumpDir=Временна папка за опиÑателните файлове не можа да бъде Ñъздадена. 57c57 < ErrorEndOfLife=Използваната от Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð½Ð° %s вече не Ñе поддържа. Доклади за Ñривове на тази верÑÐ¸Ñ Ð²ÐµÑ‡Ðµ не Ñе приемат. Ðай-добре инÑталирайте по-нова верÑиÑ. --- > ErrorEndOfLife=Използваната от Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð½Ð° %s е вече неподдържана. Доклади за Ñривове на тази верÑÐ¸Ñ Ð²ÐµÑ‡Ðµ не Ñе приемат. МолÑ, помиÑлете за обновÑване до поддържана верÑиÑ. diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources 76c76 < 3aIuA2tT7Kqng7Ia7BsM76Kkkl4= --- > +ObZmjiYejbVjMREWjbqxx3axYM= 150c150 < 3aIuA2tT7Kqng7Ia7BsM76Kkkl4= --- > +ObZmjiYejbVjMREWjbqxx3axYM= Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 36 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/l10n/bg/calendar/lightning-l10n.js" --- > //@line 36 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/l10n/bg/calendar/lightning-l10n.js" 3c3 < //@line 38 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/l10n/bg/calendar/lightning-l10n.js" --- > //@line 38 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/l10n/bg/calendar/lightning-l10n.js" 5c5 < //@line 41 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/l10n/bg/calendar/lightning-l10n.js" --- > //@line 41 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/l10n/bg/calendar/lightning-l10n.js" 8c8 < //@line 44 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/l10n/bg/calendar/lightning-l10n.js" --- > //@line 44 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/l10n/bg/calendar/lightning-l10n.js" 19c19 < //@line 55 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/l10n/bg/calendar/lightning-l10n.js" --- > //@line 55 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/l10n/bg/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 58,60c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 92c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 118d108 < rmdir "Contents/Resources/searchplugins/" 123d112 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 22c22 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 34c34 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 46c46 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 50c50 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 54c54 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 58c58 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 62c62 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 66c66 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 70c70 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 74c74 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 78c78 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 82c82 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 86c86 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 90c90 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 94c94 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 98c98 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 102c102 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 106c106 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 110c110 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 114c114 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 118c118 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 122c122 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 126c126 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 130c130 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 134c134 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 138c138 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 142c142 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 146c146 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 150c150 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 154c154 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 158c158 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 162c162 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 166c166 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 170c170 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 174c174 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 178c178 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 182c182 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 186c186 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 190c190 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 194c194 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 198c198 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 202c202 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 206c206 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 210c210 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 214c214 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 218c218 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 226c226 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 230c230 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 234c234 < v2ErwvZstffWY1naFQ11R3xre3Y= --- > VRZr7uqjryIALtTyLrnZLqzkR5I= 238c238 < AX3fLx36Dk+Kfj0RhfPo093j4uA= --- > RtZK1NvSpCmPx+Ar3LrzLCYO7e8= 242c242 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 246c246 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 250c250 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 254c254 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 258c258 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 262c262 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 266c266 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 270c270 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 274c274 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 278c278 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 282c282 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 286c286 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 290c290 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 294c294 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 298c298 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 310c310 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 314c314 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 322c322 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 326c326 < qXnHB8HQ7HAEmI8jeioR9svcdMc= --- > 1KvpxqPJjKk9w2HOymxXN7Y5qhc= 330c330 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 334c334 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 338c338 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 342c342 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 346c346 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 350c350 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 354c354 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 358c358 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 362c362 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 366c366 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 370c370 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 374c374 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 378c378 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 386c386 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 390c390 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 394c394 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 398c398 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 402c402 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 404c404 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 406c406 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 408c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 410c410 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 412c412 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 414c414 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 416c416 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 418c418 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 446c446 < V3y76uX+LD5shcWPws/DMtAdoY4= --- > 9dmIwSmXj3J22qi0MAYGf+zCeEs= 450c450 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 454c454 < axrhEpnL2Lve7hghg3rZIvDiMFE= --- > xg7KuJ5tO+UOU2MfXvQJfp4OLP0= 458c458 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,635d607 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 664c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 673c645 < 7cis8W9Yt0+UZ8ot7XerZaEPI0U= --- > 21p7dZvnGF2WEVc6FMBC1FVJhQo= 682c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 691c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 700c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 705c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 709c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 718c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 727c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 736c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 745c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 754c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 763c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 772c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 781c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 790c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 799c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 806c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 819c791 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 831c803 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 843c815 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 847c819 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 851c823 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 855c827 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 859c831 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 863c835 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 867c839 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 871c843 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 875c847 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 879c851 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 883c855 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 887c859 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 891c863 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 895c867 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 899c871 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 903c875 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 907c879 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 911c883 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 915c887 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 919c891 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 923c895 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 927c899 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 931c903 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 935c907 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 939c911 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 943c915 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 947c919 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 951c923 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 955c927 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 959c931 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 963c935 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 967c939 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 971c943 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 975c947 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 979c951 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 983c955 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 987c959 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 991c963 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 995c967 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 999c971 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 1003c975 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 1007c979 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 1011c983 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1015c987 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1023c995 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1027c999 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1031c1003 < v2ErwvZstffWY1naFQ11R3xre3Y= --- > VRZr7uqjryIALtTyLrnZLqzkR5I= 1035c1007 < AX3fLx36Dk+Kfj0RhfPo093j4uA= --- > RtZK1NvSpCmPx+Ar3LrzLCYO7e8= 1039c1011 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1043c1015 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1047c1019 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1051c1023 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1055c1027 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1059c1031 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1063c1035 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1067c1039 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1071c1043 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1075c1047 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1079c1051 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1083c1055 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1087c1059 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1091c1063 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1095c1067 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1107c1079 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1111c1083 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1119c1091 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1123c1095 < qXnHB8HQ7HAEmI8jeioR9svcdMc= --- > 1KvpxqPJjKk9w2HOymxXN7Y5qhc= 1127c1099 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1131c1103 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1135c1107 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1139c1111 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1143c1115 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1147c1119 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1151c1123 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1155c1127 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1159c1131 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1163c1135 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1167c1139 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1171c1143 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1175c1147 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1183c1155 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1187c1159 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1191c1163 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1195c1167 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1199c1171 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1201c1173 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1203c1175 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1205c1177 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1207c1179 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1209c1181 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1211c1183 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1213c1185 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1215c1187 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1243c1215 < V3y76uX+LD5shcWPws/DMtAdoY4= --- > 9dmIwSmXj3J22qi0MAYGf+zCeEs= 1247c1219 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1251c1223 < axrhEpnL2Lve7hghg3rZIvDiMFE= --- > xg7KuJ5tO+UOU2MfXvQJfp4OLP0= 1255c1227 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1405,1432d1376 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48024727 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:45 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48024726 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:45 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48024725 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:45 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48024677 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:45 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48024676 8 -rw-r--r-- 1 cltbld staff 1670 May 9 17:45 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48024675 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:45 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48024674 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:45 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48024673 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:45 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48024672 8 -rw-r--r-- 1 cltbld staff 1338 May 9 17:45 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48024671 8 -rw-r--r-- 1 cltbld staff 1363 May 9 17:45 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:45:41-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:45:41 GMT Keep-Alive: timeout=5, max=969 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 17:45:41 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bn-BD/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bn-BD/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:45:41-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bn-BD/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67908629 Connection: keep-alive Date: Tue, 10 May 2016 00:32:03 GMT x-amz-replication-status: COMPLETED x-amz-version-id: QmfP7QgrqOcqn.DHuXeqptZvctPFdJw8 Last-Modified: Tue, 03 May 2016 16:19:22 GMT ETag: "f7e0ad20b33c833868a9018a68fafbd9" Accept-Ranges: bytes Server: AmazonS3 Age: 819 X-Cache: Hit from cloudfront Via: 1.1 9767e262e4af15c8d83a726bb0f44fa5.cloudfront.net (CloudFront) X-Amz-Cf-Id: X9LCGV1z-4Xf6VQhn3sblTbztZ7BSQX28vs4HsO_4IA1mpjQa2lSFg== Length: 67908629 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 46.0M 1s 3072K ........ ........ ........ ........ ........ ........ 9% 50.8M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 55.9M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 34.9M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 61.5M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 55.1M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 45.4M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 58.1M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 43.7M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 51.3M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 43.5M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 42.5M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 45.7M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 44.6M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 53.8M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 41.2M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 27.1M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 48.3M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 35.9M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 42.2M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 26.0M 0s 64512K ........ ........ ........ .... 100% 33.7M=1.5s 2016-05-09 17:45:43 (43.0 MB/s) - 'update/complete.mar' saved [67908629/67908629] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/bn-BD/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/bn-BD/Thunderbird 38.6.0.dmg'] --2016-05-09 17:45:44-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/bn-BD/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69939622 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:45:45 GMT ETag: "9a443c12b2e00a71a17c729d1b385eae" Last-Modified: Fri, 12 Feb 2016 21:48:45 GMT x-amz-replication-status: COMPLETED x-amz-version-id: U5p8zInezLgzzc.bkG1ZIqlAgVI0IGS7 X-Cache: Miss from cloudfront Via: 1.1 d01884a3320364227d925bce1a38f0ad.cloudfront.net (CloudFront) X-Amz-Cf-Id: QO6utlk3sh3yvynEUuscPAcq-80DBwnISIRgR1VEpo0_MZZcPO__2g== Length: 69939622 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.56M 41s 3072K ........ ........ ........ ........ ........ ........ 8% 5.32M 25s 6144K ........ ........ ........ ........ ........ ........ 13% 8.99M 18s 9216K ........ ........ ........ ........ ........ ........ 17% 12.1M 14s 12288K ........ ........ ........ ........ ........ ........ 22% 12.2M 11s 15360K ........ ........ ........ ........ ........ ........ 26% 15.5M 10s 18432K ........ ........ ........ ........ ........ ........ 31% 11.3M 8s 21504K ........ ........ ........ ........ ........ ........ 35% 2.26M 9s 24576K ........ ........ ........ ........ ........ ........ 40% 1.89M 10s 27648K ........ ........ ........ ........ ........ ........ 44% 6.27M 9s 30720K ........ ........ ........ ........ ........ ........ 49% 10.4M 8s 33792K ........ ........ ........ ........ ........ ........ 53% 12.9M 7s 36864K ........ ........ ........ ........ ........ ........ 58% 14.4M 6s 39936K ........ ........ ........ ........ ........ ........ 62% 16.9M 5s 43008K ........ ........ ........ ........ ........ ........ 67% 18.2M 4s 46080K ........ ........ ........ ........ ........ ........ 71% 18.2M 3s 49152K ........ ........ ........ ........ ........ ........ 76% 20.2M 3s 52224K ........ ........ ........ ........ ........ ........ 80% 18.5M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 27.2M 2s 58368K ........ ........ ........ ........ ........ ........ 89% 22.7M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 31.7M 1s 64512K ........ ........ ........ ........ ........ ........ 98% 23.7M 0s 67584K ........ ... 100% 39.6M=9.2s 2016-05-09 17:45:54 (7.25 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69939622/69939622] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/bn-BD/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/bn-BD/Thunderbird 45.1.0.dmg'] --2016-05-09 17:45:54-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/bn-BD/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77290156 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:32:17 GMT ETag: "523940fdded476e6870f5f833164f4ee" Last-Modified: Mon, 09 May 2016 22:06:42 GMT x-amz-replication-status: COMPLETED x-amz-version-id: .OcaB4nrnWcc3xDSJnMmHW3EES_SzY7T Age: 817 X-Cache: Hit from cloudfront Via: 1.1 990c804118e679d7ea0f4d3ca3cc4534.cloudfront.net (CloudFront) X-Amz-Cf-Id: iqEyENSFrAkFEchPcjgU5uuqxanizkaNMiozHTwpHUer-SNqgIon_w== Length: 77290156 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 40.3M 2s 3072K ........ ........ ........ ........ ........ ........ 8% 37.8M 2s 6144K ........ ........ ........ ........ ........ ........ 12% 39.5M 2s 9216K ........ ........ ........ ........ ........ ........ 16% 39.8M 2s 12288K ........ ........ ........ ........ ........ ........ 20% 43.7M 1s 15360K ........ ........ ........ ........ ........ ........ 24% 29.3M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 48.9M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 37.1M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 37.9M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 37.5M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 26.7M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 51.2M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 55.6M 1s 39936K ........ ........ ........ ........ ........ ........ 56% 55.3M 1s 43008K ........ ........ ........ ........ ........ ........ 61% 38.0M 1s 46080K ........ ........ ........ ........ ........ ........ 65% 39.1M 1s 49152K ........ ........ ........ ........ ........ ........ 69% 39.3M 1s 52224K ........ ........ ........ ........ ........ ........ 73% 39.1M 0s 55296K ........ ........ ........ ........ ........ ........ 77% 39.0M 0s 58368K ........ ........ ........ ........ ........ ........ 81% 39.3M 0s 61440K ........ ........ ........ ........ ........ ........ 85% 40.0M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 54.2M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 45.9M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 52.6M 0s 73728K ........ ........ ........ ... 100% 39.5M=1.8s 2016-05-09 17:45:56 (40.6 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77290156/77290156] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/bn.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/bn.lproj/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/bn.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/bn.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/bn.lproj/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/bn.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/bn.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/bn.lproj/ non-fatal error removing directory: Contents/Resources/bn.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/bn.lproj/InfoPlist.strings FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 58,60c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d106 < rmdir "Contents/Resources/searchplugins/" 121d110 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 34c34 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 38c38 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 42c42 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 46c46 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 50c50 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 54c54 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 58c58 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 62c62 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 66c66 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 70c70 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 74c74 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 78c78 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 82c82 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 86c86 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 90c90 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 94c94 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 98c98 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 102c102 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 106c106 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 110c110 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 114c114 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 118c118 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 122c122 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 126c126 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 130c130 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 134c134 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 138c138 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 142c142 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 146c146 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 150c150 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 154c154 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 158c158 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 162c162 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 166c166 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 170c170 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 174c174 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 178c178 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 182c182 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 186c186 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 190c190 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 194c194 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 198c198 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 202c202 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 206c206 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 210c210 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 218c218 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 222c222 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 226c226 < QKvFZ//vvTZPlVz4V6ytu2NKmiE= --- > iJzsD1c5icxmuALJJXurSEhK+sE= 230c230 < ZYFfyk8yEDrQlDD0e5Zx8hrlLQ0= --- > EnuGcMv540NsRKbJPzxE/7qsdi8= 234c234 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 238c238 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 242c242 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 246c246 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 250c250 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 254c254 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 258c258 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 262c262 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 266c266 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 270c270 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 274c274 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 278c278 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 282c282 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 286c286 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 290c290 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 302c302 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 306c306 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 314c314 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 318c318 < CAOMQEM5T3q8VJY5HFhQlHt0/ek= --- > Ker55wyAMSKYm0RQ5+JDSRbcgwg= 322c322 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 326c326 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 330c330 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 334c334 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 338c338 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 342c342 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 346c346 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 350c350 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 354c354 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 358c358 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 362c362 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 366c366 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 370c370 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 378c378 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 382c382 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 386c386 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 390c390 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 394c394 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 396c396 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 398c398 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 400c400 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 402c402 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 404c404 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 406c406 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 408c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 410c410 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < 7loEN37e0fATOq8JFGsER1OywwU= --- > YddGgPbMEnvSWOXzBry0xnF4hco= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < 1sik+R9BsL8PsvwSjh3rUo8CntQ= --- > VcPF0e96fhkBRtx7wV9DQ2/FAbU= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,627d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < GVz73G17AtUFowzjC9u+ZZ3EK3o= --- > jJ2TcQuDMv3WDCqjhZGhflzDPQk= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 823c795 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 827c799 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 831c803 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 835c807 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 839c811 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 843c815 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 847c819 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 851c823 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 855c827 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 859c831 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 863c835 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 867c839 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 871c843 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 875c847 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 879c851 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 883c855 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 887c859 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 891c863 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 895c867 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 899c871 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 903c875 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 907c879 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 911c883 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 915c887 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 919c891 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 923c895 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 927c899 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 931c903 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 935c907 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 939c911 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 943c915 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 947c919 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 951c923 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 955c927 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 959c931 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 963c935 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 967c939 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 971c943 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 975c947 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 979c951 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 983c955 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 987c959 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 991c963 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 995c967 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 999c971 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1007c979 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1011c983 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1015c987 < QKvFZ//vvTZPlVz4V6ytu2NKmiE= --- > iJzsD1c5icxmuALJJXurSEhK+sE= 1019c991 < ZYFfyk8yEDrQlDD0e5Zx8hrlLQ0= --- > EnuGcMv540NsRKbJPzxE/7qsdi8= 1023c995 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1027c999 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1031c1003 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1035c1007 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1039c1011 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1043c1015 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1047c1019 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1051c1023 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1055c1027 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1059c1031 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1063c1035 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1067c1039 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1071c1043 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1075c1047 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1079c1051 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1091c1063 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1095c1067 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1103c1075 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1107c1079 < CAOMQEM5T3q8VJY5HFhQlHt0/ek= --- > Ker55wyAMSKYm0RQ5+JDSRbcgwg= 1111c1083 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1115c1087 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1119c1091 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1123c1095 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1127c1099 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1131c1103 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1135c1107 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1139c1111 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1143c1115 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1147c1119 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1151c1123 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1155c1127 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1159c1131 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1167c1139 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1171c1143 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1175c1147 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1179c1151 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1183c1155 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1185c1157 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1187c1159 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1189c1161 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1191c1163 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1193c1165 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1195c1167 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1197c1169 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1199c1171 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1227c1199 < 7loEN37e0fATOq8JFGsER1OywwU= --- > YddGgPbMEnvSWOXzBry0xnF4hco= 1231c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1235c1207 < 1sik+R9BsL8PsvwSjh3rUo8CntQ= --- > VcPF0e96fhkBRtx7wV9DQ2/FAbU= 1239c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1389,1416d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48025477 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:46 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48025476 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:46 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48025475 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:46 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48025427 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:46 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48025426 8 -rw-r--r-- 1 cltbld staff 1670 May 9 17:46 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48025425 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:46 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48025424 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:46 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48025423 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:46 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48025422 8 -rw-r--r-- 1 cltbld staff 1338 May 9 17:46 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48025421 8 -rw-r--r-- 1 cltbld staff 1363 May 9 17:46 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:46:50-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:46:50 GMT Keep-Alive: timeout=5, max=986 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 17:46:50 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/br/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/br/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:46:51-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/br/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 69205292 Connection: keep-alive Date: Tue, 10 May 2016 00:34:10 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 0APKxhPz2MlHKvgqv6UguSkC751vdJl5 Last-Modified: Tue, 03 May 2016 16:34:04 GMT ETag: "0a5bad6cffe6eb14aeb395c1fad945c1" Accept-Ranges: bytes Server: AmazonS3 Age: 762 X-Cache: Hit from cloudfront Via: 1.1 978198446b6fdba8a499c04f84a3a7e6.cloudfront.net (CloudFront) X-Amz-Cf-Id: -hwpUGSQy1Zb9CIagK6xmy4yBXTYD0FjqEtofZrqZdCmq53MTwXEIg== Length: 69205292 (66M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 32.0M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 23.0M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 26.0M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 24.9M 2s 12288K ........ ........ ........ ........ ........ ........ 22% 32.7M 2s 15360K ........ ........ ........ ........ ........ ........ 27% 33.4M 2s 18432K ........ ........ ........ ........ ........ ........ 31% 41.1M 2s 21504K ........ ........ ........ ........ ........ ........ 36% 23.6M 1s 24576K ........ ........ ........ ........ ........ ........ 40% 29.6M 1s 27648K ........ ........ ........ ........ ........ ........ 45% 25.3M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 34.4M 1s 33792K ........ ........ ........ ........ ........ ........ 54% 35.7M 1s 36864K ........ ........ ........ ........ ........ ........ 59% 38.2M 1s 39936K ........ ........ ........ ........ ........ ........ 63% 30.2M 1s 43008K ........ ........ ........ ........ ........ ........ 68% 35.5M 1s 46080K ........ ........ ........ ........ ........ ........ 72% 39.1M 1s 49152K ........ ........ ........ ........ ........ ........ 77% 38.4M 0s 52224K ........ ........ ........ ........ ........ ........ 81% 36.5M 0s 55296K ........ ........ ........ ........ ........ ........ 86% 40.4M 0s 58368K ........ ........ ........ ........ ........ ........ 90% 39.1M 0s 61440K ........ ........ ........ ........ ........ ........ 95% 39.7M 0s 64512K ........ ........ ........ ........ ........ ....... 100% 39.4M=2.0s 2016-05-09 17:46:53 (32.4 MB/s) - 'update/complete.mar' saved [69205292/69205292] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/br/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/br/Thunderbird 38.6.0.dmg'] --2016-05-09 17:46:54-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/br/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 71148807 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:46:54 GMT ETag: "94e48e7bd07da2d06ac6ab9c14c712a2" Last-Modified: Fri, 12 Feb 2016 21:48:49 GMT x-amz-replication-status: COMPLETED x-amz-version-id: BdaYnEBc_U81NVlZEuQvSQCG884lw7df X-Cache: Miss from cloudfront Via: 1.1 296faebadd40feee8b2eb0e10d5786d2.cloudfront.net (CloudFront) X-Amz-Cf-Id: UJGiCNYx-fIjRzLgT_2xSxDbNWaD6pdIerIQC4ZXWheUsBXwxg5RzQ== Length: 71148807 (68M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.24M 52s 3072K ........ ........ ........ ........ ........ ........ 8% 4.75M 31s 6144K ........ ........ ........ ........ ........ ........ 13% 7.45M 23s 9216K ........ ........ ........ ........ ........ ........ 17% 10.8M 17s 12288K ........ ........ ........ ........ ........ ........ 22% 11.7M 14s 15360K ........ ........ ........ ........ ........ ........ 26% 10.8M 12s 18432K ........ ........ ........ ........ ........ ........ 30% 16.6M 10s 21504K ........ ........ ........ ........ ........ ........ 35% 18.1M 8s 24576K ........ ........ ........ ........ ........ ........ 39% 10.2M 7s 27648K ........ ........ ........ ........ ........ ........ 44% 6.91M 7s 30720K ........ ........ ........ ........ ........ ........ 48% 9.35M 6s 33792K ........ ........ ........ ........ ........ ........ 53% 12.5M 5s 36864K ........ ........ ........ ........ ........ ........ 57% 13.2M 5s 39936K ........ ........ ........ ........ ........ ........ 61% 16.5M 4s 43008K ........ ........ ........ ........ ........ ........ 66% 15.4M 3s 46080K ........ ........ ........ ........ ........ ........ 70% 17.3M 3s 49152K ........ ........ ........ ........ ........ ........ 75% 18.5M 2s 52224K ........ ........ ........ ........ ........ ........ 79% 17.9M 2s 55296K ........ ........ ........ ........ ........ ........ 84% 19.6M 1s 58368K ........ ........ ........ ........ ........ ........ 88% 16.8M 1s 61440K ........ ........ ........ ........ ........ ........ 92% 12.7M 1s 64512K ........ ........ ........ ........ ........ ........ 97% 39.0M 0s 67584K ........ ........ ........ ..... 100% 17.0M=7.8s 2016-05-09 17:47:02 (8.75 MB/s) - 'Thunderbird 38.6.0.dmg' saved [71148807/71148807] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/br/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/br/Thunderbird 45.1.0.dmg'] --2016-05-09 17:47:03-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/br/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 78485407 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:34:35 GMT ETag: "eff3ad54d486ab6ac637a94cc7301dc0" Last-Modified: Mon, 09 May 2016 22:28:56 GMT x-amz-replication-status: COMPLETED x-amz-version-id: BLt3wKDioO2v5eK5k697T3dbCCZw9nlf Age: 748 X-Cache: Hit from cloudfront Via: 1.1 96255a5b0caf50bcafcd101c1ff13691.cloudfront.net (CloudFront) X-Amz-Cf-Id: tmH_v0Xxrf8iong6ngXhb_sBR64CddGoUTfJCYqyCzCnvzb4JYtqkw== Length: 78485407 (75M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 39.1M 2s 3072K ........ ........ ........ ........ ........ ........ 8% 75.8M 1s 6144K ........ ........ ........ ........ ........ ........ 12% 54.8M 1s 9216K ........ ........ ........ ........ ........ ........ 16% 62.1M 1s 12288K ........ ........ ........ ........ ........ ........ 20% 51.7M 1s 15360K ........ ........ ........ ........ ........ ........ 24% 54.1M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 49.0M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 52.2M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 56.9M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 53.7M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 50.8M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 55.0M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 49.3M 1s 39936K ........ ........ ........ ........ ........ ........ 56% 45.5M 1s 43008K ........ ........ ........ ........ ........ ........ 60% 53.3M 1s 46080K ........ ........ ........ ........ ........ ........ 64% 48.2M 1s 49152K ........ ........ ........ ........ ........ ........ 68% 51.4M 0s 52224K ........ ........ ........ ........ ........ ........ 72% 54.7M 0s 55296K ........ ........ ........ ........ ........ ........ 76% 49.2M 0s 58368K ........ ........ ........ ........ ........ ........ 80% 36.6M 0s 61440K ........ ........ ........ ........ ........ ........ 84% 59.5M 0s 64512K ........ ........ ........ ........ ........ ........ 88% 52.6M 0s 67584K ........ ........ ........ ........ ........ ........ 92% 54.8M 0s 70656K ........ ........ ........ ........ ........ ........ 96% 53.2M 0s 73728K ........ ........ ........ ........ ........ ..... 100% 55.4M=1.4s 2016-05-09 17:47:04 (51.8 MB/s) - 'Thunderbird 45.1.0.dmg' saved [78485407/78485407] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/br.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/br.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/br.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/br.lproj/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/br.dic PREPARE ADD Contents/Resources/dictionaries/br.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/br.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/br.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/br.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/br.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/br.lproj/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/br.dic EXECUTE ADD Contents/Resources/dictionaries/br.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/br.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/br.dic FINISH REMOVEFILE Contents/Resources/dictionaries/br.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/br.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/br.lproj/ non-fatal error removing directory: Contents/Resources/br.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/br.dic FINISH ADD Contents/Resources/dictionaries/br.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/br.lproj/InfoPlist.strings FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/dictionaries/br.aff target/Thunderbird.app/Contents/Resources/dictionaries/br.aff 83a84,95 > SFX p7 Y 1 > SFX p7 où eier . > > # Lostgerioù all > SFX l4 Y 2 > SFX l4 0 ig . > SFX l4 0 ioùigoù . > > SFX l5 Y 2 > SFX l5 0 ig . > SFX l5 0 oùigoù . > diff -r source/Thunderbird.app/Contents/Resources/dictionaries/br.dic target/Thunderbird.app/Contents/Resources/dictionaries/br.dic 1c1 < 465037 --- > 464703 580a581 > adc'halv/p5a0 po:g 1470a1472,1473 > adpellgargañ/a0 po:v > adpellgarg/d1a0 po:v st:adpellgargañ 3605a3609 > alarm/p5a0 po:g 4508a4513 > amdroadur/p4a0 po:g 5399a5405,5407 > amspinañ/a0 po:v > amspin/d1a0 po:v st:amspinañ > amspinenn/p5a0 po:b 5883a5892 > anatoradus/n1a0 po:aa 8967a8977 > arfroù/p7a0 po:g 9220a9231 > argreskus/n1a0 po:aa 11247a11259 > astennadus/n1a0 po:aa 12356a12369 > azgweladur/p4a0 po:g 12552a12566 > azvuiadel/n1a0 po:aa 17710a17725 > batiri/p5m0 po:g 20413,20414d20427 < benelig < beneligoù 20417,20418d20429 < beneloù < beneloùigoù 28528a28540 > bit/p5m0 po:g 40888a40901,40903 > brientekaat/m0 po:v > brienteka/d2m0 po:v st:brientekaat > brientek/n1m0 po:aa 44152a44168 > bukenn/p5m0 po:b 66938,66939d66953 < c'hlik/a1 < c'hlikañ 66951,66954d66964 < c'hliketañ < c'hliketoc'h < c'hlikjon < c'hlikoc'h 77257d77266 < c'houzav 87404,87452d87412 < c'hweredeka < c'hweredekaan < c'hweredekaas < c'hweredekaat < c'hweredekae < c'hweredekaec'h < c'hweredekaed < c'hweredekaemp < c'hweredekaen < c'hweredekaent < c'hweredekaer < c'hweredekaes < c'hweredekaet < c'hweredekaetañ < c'hweredekaetoc'h < c'hweredekaez < c'hweredekafe < c'hweredekafec'h < c'hweredekafed < c'hweredekafemp < c'hweredekafen < c'hweredekafent < c'hweredekafes < c'hweredekai < c'hweredekaimp < c'hweredekain < c'hweredekaint < c'hweredekaio < c'hweredekaioc'h < c'hweredekaior < c'hweredekaiot < c'hweredekais < c'hweredekait < c'hweredekaje < c'hweredekajec'h < c'hweredekajed < c'hweredekajemp < c'hweredekajen < c'hweredekajent < c'hweredekajes < c'hweredekajoc'h < c'hweredekajod < c'hweredekajomp < c'hweredekajon < c'hweredekajont < c'hweredekajout < c'hweredekaomp < c'hweredekaont < c'hweredekay 95536a95497 > dastaladur/p4m0 po:g 100206d100166 < destrizh/a1 100209,100216c100169,100171 < destrizherez < destrizherezed < destrizherien < destrizherig < destrizhetañ < destrizhetoc'h < destrizhjon < destrizhoc'h --- > destrizherez/p1m0 po:b > destrizher/p6m0 po:g > destrizh/p5m0 po:g 102305a102261,102262 > diarveradus/n1m0 po:aa > diarver/n1m0 po:aa 102917a102875,102877 > dibersonelaat/m0 po:v > dibersonela/d2m0 po:v st:dibersonelaat > dibersoneladur/p4m0 po:g 107933a107894,107895 > digoazhañ/m0 po:v > digoazh/d1m0 po:v st:digoazhañ 108297a108260,108261 > digoublañ/m0 po:v > digoubl/d1m0 po:v st:digoublañ 110051a110016,110017 > dilugañ/m0 po:v > dilug/d1m0 po:v st:dilugañ 110640a110607 > dinoadur/p4m0 po:g 114621a114589 > dispartier/p4m0 po:g 116841a116810 > diuzadel/n1m0 po:aa 119880,119928c119849,119850 < diweredeka < diweredekaan < diweredekaas < diweredekaat < diweredekae < diweredekaec'h < diweredekaed < diweredekaemp < diweredekaen < diweredekaent < diweredekaer < diweredekaes < diweredekaet < diweredekaetañ < diweredekaetoc'h < diweredekaez < diweredekafe < diweredekafec'h < diweredekafed < diweredekafemp < diweredekafen < diweredekafent < diweredekafes < diweredekai < diweredekaimp < diweredekain < diweredekaint < diweredekaio < diweredekaioc'h < diweredekaior < diweredekaiot < diweredekais < diweredekait < diweredekaje < diweredekajec'h < diweredekajed < diweredekajemp < diweredekajen < diweredekajent < diweredekajes < diweredekajoc'h < diweredekajod < diweredekajomp < diweredekajon < diweredekajont < diweredekajout < diweredekaomp < diweredekaont < diweredekay --- > diweredekaat/m0 po:v > diweredeka/d2m0 po:v st:diweredekaat 124350a124273,124274 > douarlec'h/d4m0 po:v st:douarlec'hiañ > douarlec'hiañ/m0 po:v 134212a134137,134139 > ec'hankad/p5a0 po:g > ec'hankañ/a0 po:v > ec'hank/d1a0 po:v st:ec'hankañ 134667a134595 > egorel/n1a0 po:aa 137343a137272,137273 > emvataerez/p1a0 po:b > emvataer/p6a0 po:g 138010,138015c137940,137943 < enank/a0a1 < enankañ/a0 < enanketañ/a0 < enanketoc'h/a0 < enankjon/a0 < enankoc'h/a0 --- > enankad/p5a0 po:g > enankañ/a0 po:v > enank/d1a0 po:v st:enankañ > enank/p5a0 po:g 139375a139304 > enkefiad/p5a0 po:g 139988a139918 > enrolladur/p4a0 po:g 143423a143354 > ezkefiad/p5a0 po:g 185722,185723d185652 < glik/a1 < glikañ 185735,185738d185663 < gliketañ < gliketoc'h < glikjon < glikoc'h 195752c195677,195679 < gouzav --- > gouzav/d1m0 po:v st:gouzaviñ > gouzaviñ/m0 po:v > gouzav/p4m0 po:g 205685,205733c205612,205613 < gweredeka < gweredekaan < gweredekaas < gweredekaat < gweredekae < gweredekaec'h < gweredekaed < gweredekaemp < gweredekaen < gweredekaent < gweredekaer < gweredekaes < gweredekaet < gweredekaetañ < gweredekaetoc'h < gweredekaez < gweredekafe < gweredekafec'h < gweredekafed < gweredekafemp < gweredekafen < gweredekafent < gweredekafes < gweredekai < gweredekaimp < gweredekain < gweredekaint < gweredekaio < gweredekaioc'h < gweredekaior < gweredekaiot < gweredekais < gweredekait < gweredekaje < gweredekajec'h < gweredekajed < gweredekajemp < gweredekajen < gweredekajent < gweredekajes < gweredekajoc'h < gweredekajod < gweredekajomp < gweredekajon < gweredekajont < gweredekajout < gweredekaomp < gweredekaont < gweredekay --- > gweredekaat/m0 po:v > gweredeka/d2m0 po:v st:gweredekaat 205734a205615 > gwered/p5m0 po:g 210622a210504 > heñvelek/n1a0 po:aa 214711,214725c214593,214601 < ijinadenn/a0a1 < ijinadennañ/a0 < ijinadennetañ/a0 < ijinadennetoc'h/a0 < ijinadennig/a0 < ijinadennigoù/a0 < ijinadennjon/a0 < ijinadennoc'h/a0 < ijinadennoù/a0 < ijinadennoùigoù/a0 < ijinadennour/a0 < ijinadennourez/a0 < ijinadennourezed/a0 < ijinadennourien/a0 < ijinadennourig/a0 --- > ijinadennañ/a0 po:v > ijinadenn/d1a0 po:v st:ijinadennañ > ijinadennerez/p1a0 po:b > ijinadennerig/a0 po:g > ijinadenner/p6a0 po:g > ijinadennourez/p1a0 po:b > ijinadennourig/a0 po:g > ijinadennour/p6a0 po:g > ijinadenn/p5l5a0 po:b 216015a215892 > islinennad/p5a0 po:b 216655a216533 > izek/n1a0 po:aa 219599a219478 > kaketou/p1m0 po:g 222278a222158,222159 > kanturzh/d4m0 po:v st:kanturzhiañ > kanturzhiañ/m0 po:v 227506a227388 > kellidsteuñv/p5m0 po:g 227861a227744 > kemedel/n1m0 po:aa 237225a237109,237110 > klemantinenn/p5m0 po:b > klemantin/m0 po:b 237858,237859c237743,237744 < klik/a1 < klikañ --- > klikañ/m0 po:v > klik/d1m0 po:v st:klikañ 237871,237874d237755 < kliketañ < kliketoc'h < klikjon < klikoc'h 237875a237757 > klik/p5m0 po:g 247398d247279 < kouzav 256747,256795d256627 < kweredeka < kweredekaan < kweredekaas < kweredekaat < kweredekae < kweredekaec'h < kweredekaed < kweredekaemp < kweredekaen < kweredekaent < kweredekaer < kweredekaes < kweredekaet < kweredekaetañ < kweredekaetoc'h < kweredekaez < kweredekafe < kweredekafec'h < kweredekafed < kweredekafemp < kweredekafen < kweredekafent < kweredekafes < kweredekai < kweredekaimp < kweredekain < kweredekaint < kweredekaio < kweredekaioc'h < kweredekaior < kweredekaiot < kweredekais < kweredekait < kweredekaje < kweredekajec'h < kweredekajed < kweredekajemp < kweredekajen < kweredekajent < kweredekajes < kweredekajoc'h < kweredekajod < kweredekajomp < kweredekajon < kweredekajont < kweredekajout < kweredekaomp < kweredekaont < kweredekay 260161d259992 < lanv/a1 260175a260007 > lanv/d1 po:v st:lanviñ 260193,260194d260024 < lanvetañ < lanvetoc'h 260203,260204d260032 < lanvig < lanvigoù 260206,260208c260034 < lanviñ < lanvjon < lanvoc'h --- > lanviñ po:v 260211,260212c260037,260038 < lanvoù < lanvoùigoù --- > lanv/p4l4 po:g > lanv/p5l5 po:g 261898a261725 > lemell/p5 po:b 272107a271935 > ma'z 274749c274577 < meno --- > meno/p4m0 po:g 275155d274982 < merde/a1 275178a275006 > merde/d1m0 po:v st:merdeiñ 275184,275185c275012 < merdeetañ < merdeetoc'h --- > merdeer/p4m0 po:g 275187,275189c275014 < merdeiñ < merdejon < merdeoc'h --- > merdeiñ/m0 po:v 285069a284895,284896 > naoudiañ po:v > naoudi/d1 po:v st:naoudiañ 292514a292342,292344 > padventañ/m0 po:v > padvent/d1m0 po:v st:padventañ > padventer/p4m0 po:g 295308a295139,295141 > paranoiakel/n1m0 po:aa > paranoiakez/p1m0 po:b > paranoiak/p1m0 po:g 299698,299702c299531 < penel < penelig < peneligoù < peneloù < peneloùigoù --- > penel/p4l4m0 po:g 304964a304794 > pibell/p5m0 po:b 311018a310849 > poblegezh/m0 po:b 323874a323706,323707 > rakpaeañ po:v > rakpae/d1 po:v st:rakpaeañ 326584a326418 > rekipe/p5 po:g 328673a328508 > rikted po:b 340965a340801 > soniri/p5 po:b 349777d349612 < talvoudañ/m0 po:v 349848d349682 < talvouder/p4m0 po:g 350864d350697 < tanav/d1m0 po:v st:tanaviñ 357145,357153d356977 < testrizh/a1 < testrizherez < testrizherezed < testrizherien < testrizherig < testrizhetañ < testrizhetoc'h < testrizhjon < testrizhoc'h 372723,372771d372546 < tiweredeka < tiweredekaan < tiweredekaas < tiweredekaat < tiweredekae < tiweredekaec'h < tiweredekaed < tiweredekaemp < tiweredekaen < tiweredekaent < tiweredekaer < tiweredekaes < tiweredekaet < tiweredekaetañ < tiweredekaetoc'h < tiweredekaez < tiweredekafe < tiweredekafec'h < tiweredekafed < tiweredekafemp < tiweredekafen < tiweredekafent < tiweredekafes < tiweredekai < tiweredekaimp < tiweredekain < tiweredekaint < tiweredekaio < tiweredekaioc'h < tiweredekaior < tiweredekaiot < tiweredekais < tiweredekait < tiweredekaje < tiweredekajec'h < tiweredekajed < tiweredekajemp < tiweredekajen < tiweredekajent < tiweredekajes < tiweredekajoc'h < tiweredekajod < tiweredekajomp < tiweredekajon < tiweredekajont < tiweredekajout < tiweredekaomp < tiweredekaont < tiweredekay 381038a380814,380816 > treuzlizherennadur/p4m0 po:g > treuzlizherennañ/m0 po:v > treuzlizherenn/d1m0 po:v st:treuzlizherennañ 381820a381599 > trevreizhiad/p5m0 po:g 396484d396262 < verde/a1 396513,396514d396290 < verdeetañ < verdeetoc'h 396516,396518d396291 < verdeiñ < verdejon < verdeoc'h 400238c400011 < video --- > video/p4 po:g 420563,420611d420335 < weredeka < weredekaan < weredekaas < weredekaat < weredekae < weredekaec'h < weredekaed < weredekaemp < weredekaen < weredekaent < weredekaer < weredekaes < weredekaet < weredekaetañ < weredekaetoc'h < weredekaez < weredekafe < weredekafec'h < weredekafed < weredekafemp < weredekafen < weredekafent < weredekafes < weredekai < weredekaimp < weredekain < weredekaint < weredekaio < weredekaioc'h < weredekaior < weredekaiot < weredekais < weredekait < weredekaje < weredekajec'h < weredekajed < weredekajemp < weredekajen < weredekajent < weredekajes < weredekajoc'h < weredekajod < weredekajomp < weredekajon < weredekajont < weredekajout < weredekaomp < weredekaont < weredekay 432470,432478d432193 < zestrizh/a1 < zestrizherez < zestrizherezed < zestrizherien < zestrizherig < zestrizhetañ < zestrizhetoc'h < zestrizhjon < zestrizhoc'h 451847,451895d451561 < ziweredeka < ziweredekaan < ziweredekaas < ziweredekaat < ziweredekae < ziweredekaec'h < ziweredekaed < ziweredekaemp < ziweredekaen < ziweredekaent < ziweredekaer < ziweredekaes < ziweredekaet < ziweredekaetañ < ziweredekaetoc'h < ziweredekaez < ziweredekafe < ziweredekafec'h < ziweredekafed < ziweredekafemp < ziweredekafen < ziweredekafent < ziweredekafes < ziweredekai < ziweredekaimp < ziweredekain < ziweredekaint < ziweredekaio < ziweredekaioc'h < ziweredekaior < ziweredekaiot < ziweredekais < ziweredekait < ziweredekaje < ziweredekajec'h < ziweredekajed < ziweredekajemp < ziweredekajen < ziweredekajent < ziweredekajes < ziweredekajoc'h < ziweredekajod < ziweredekajomp < ziweredekajon < ziweredekajont < ziweredekajout < ziweredekaomp < ziweredekaont < ziweredekay diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_1-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_1-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,11d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 93c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 119d108 < rmdir "Contents/Resources/searchplugins/" 124d112 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 34c34 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 38c38 < foag5yUGkH9Xe2Qkr68nf1okMHw= --- > BSt6dpXqaj6poyJJR475TgquqD0= 42c42 < gBz+J3u2c32PpGosq/vcMXIUfM0= --- > jewGvVWJKRytRSOKxR57pYzQ7MA= 46c46 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 50c50 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 54c54 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 58c58 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 62c62 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 66c66 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 70c70 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 74c74 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 78c78 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 82c82 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 86c86 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 90c90 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 94c94 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 98c98 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 102c102 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 106c106 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 110c110 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 114c114 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 118c118 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 122c122 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 126c126 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 130c130 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 134c134 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 138c138 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 142c142 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 146c146 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 150c150 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 154c154 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 158c158 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 162c162 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 166c166 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 170c170 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 174c174 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 178c178 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 182c182 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 186c186 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 190c190 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 194c194 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 198c198 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 202c202 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 206c206 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 210c210 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 214c214 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 218c218 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 226c226 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 230c230 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 234c234 < f59KZ80lAtRGh7jyzc/SHBQyo+s= --- > YAciyUg0XAEIaUdAPzeA/laS92w= 238c238 < QFT6mscUoF8jd2nqyeBpYSUbJ1w= --- > Lszh6OCyCMNSNsEGCduAWfInpgQ= 242c242 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 246c246 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 250c250 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 254c254 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 258c258 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 262c262 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 266c266 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 270c270 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 274c274 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 278c278 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 282c282 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 286c286 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 290c290 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 294c294 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 298c298 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 310c310 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 314c314 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 322c322 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 326c326 < 9HKDt1DI0b3d0KPD8VTZtkX5wpY= --- > Fha8Dj3gFK1aWsTsAJ6jAkcHm+k= 330c330 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 334c334 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 338c338 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 342c342 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 346c346 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 350c350 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 354c354 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 358c358 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 362c362 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 366c366 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 370c370 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 374c374 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 378c378 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 386c386 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 390c390 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 394c394 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 398c398 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 402c402 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 404c404 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 406c406 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 408c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 410c410 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 412c412 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 414c414 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 416c416 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 418c418 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 446c446 < bkrx2CPw5Y1TI3gB2tJ9Qar5IT0= --- > mnQb7/C3NHlwp3vP2PX0/Jf9z9w= 450c450 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 454c454 < MECkQbqPRQNgVlXuDZa5p5w8mL8= --- > moTqW/iqY2eQO7trMuIyi/Y4NXo= 458c458 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,639d607 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 668c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 677c645 < dNedFfHj/RBqR9W1MpTYrmMgF8s= --- > eFJSWuKBnaL9JT0FSgj/xTZwE+I= 686c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 695c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 704c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 709c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 713c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 722c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 731c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 740c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 749c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 758c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 767c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 776c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 785c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 794c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 803c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 810c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 814c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 835c803 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 839c807 < foag5yUGkH9Xe2Qkr68nf1okMHw= --- > BSt6dpXqaj6poyJJR475TgquqD0= 843c811 < gBz+J3u2c32PpGosq/vcMXIUfM0= --- > jewGvVWJKRytRSOKxR57pYzQ7MA= 847c815 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 851c819 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 855c823 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 859c827 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 863c831 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 867c835 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 871c839 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 875c843 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 879c847 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 883c851 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 887c855 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 891c859 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 895c863 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 899c867 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 903c871 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 907c875 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 911c879 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 915c883 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 919c887 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 923c891 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 927c895 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 931c899 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 935c903 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 939c907 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 943c911 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 947c915 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 951c919 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 955c923 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 959c927 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 963c931 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 967c935 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 971c939 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 975c943 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 979c947 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 983c951 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 987c955 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 991c959 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 995c963 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 999c967 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 1003c971 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 1007c975 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 1011c979 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 1015c983 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1019c987 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1027c995 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1031c999 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1035c1003 < f59KZ80lAtRGh7jyzc/SHBQyo+s= --- > YAciyUg0XAEIaUdAPzeA/laS92w= 1039c1007 < QFT6mscUoF8jd2nqyeBpYSUbJ1w= --- > Lszh6OCyCMNSNsEGCduAWfInpgQ= 1043c1011 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1047c1015 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1051c1019 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1055c1023 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1059c1027 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1063c1031 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1067c1035 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1071c1039 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1075c1043 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1079c1047 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1083c1051 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1087c1055 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1091c1059 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1095c1063 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1099c1067 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1111c1079 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1115c1083 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1123c1091 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1127c1095 < 9HKDt1DI0b3d0KPD8VTZtkX5wpY= --- > Fha8Dj3gFK1aWsTsAJ6jAkcHm+k= 1131c1099 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1135c1103 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1139c1107 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1143c1111 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1147c1115 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1151c1119 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1155c1123 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1159c1127 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1163c1131 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1167c1135 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1171c1139 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1175c1143 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1179c1147 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1187c1155 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1191c1159 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1195c1163 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1199c1167 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1203c1171 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1205c1173 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1207c1175 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1209c1177 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1211c1179 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1213c1181 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1215c1183 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1217c1185 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1219c1187 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1247c1215 < bkrx2CPw5Y1TI3gB2tJ9Qar5IT0= --- > mnQb7/C3NHlwp3vP2PX0/Jf9z9w= 1251c1219 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1255c1223 < MECkQbqPRQNgVlXuDZa5p5w8mL8= --- > moTqW/iqY2eQO7trMuIyi/Y4NXo= 1259c1227 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1409,1440d1376 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48026235 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:47 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48026234 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:47 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48026233 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:47 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48026185 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:47 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48026184 8 -rw-r--r-- 1 cltbld staff 1670 May 9 17:47 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48026183 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:47 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48026182 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:47 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48026181 8 -rw-r--r-- 1 cltbld staff 2371 May 9 17:47 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48026180 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:47 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48026179 8 -rw-r--r-- 1 cltbld staff 1338 May 9 17:47 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48026178 8 -rw-r--r-- 1 cltbld staff 1363 May 9 17:47 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:48:00-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:48:00 GMT Keep-Alive: timeout=5, max=991 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 17:48:00 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ca/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ca/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:48:00-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ca/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68247249 Connection: keep-alive Date: Tue, 10 May 2016 00:36:41 GMT x-amz-replication-status: COMPLETED x-amz-version-id: yjDIWwKIZzw1yyyR7oUW5TVnK4iP5xhh Last-Modified: Tue, 03 May 2016 15:24:14 GMT ETag: "886cf885774ab2e6fc16e0d220a0b129" Accept-Ranges: bytes Server: AmazonS3 Age: 681 X-Cache: Hit from cloudfront Via: 1.1 02192a27c967e955f8c815efa939bfc8.cloudfront.net (CloudFront) X-Amz-Cf-Id: kS51ZREd1JMx6mhbcCQl3lNNLaw5AuHpHhNo_W0Y34HqW0hxFFsA0A== Length: 68247249 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 23.8M 3s 3072K ........ ........ ........ ........ ........ ........ 9% 67.0M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 48.0M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 56.7M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 51.6M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 58.7M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 49.1M 1s 21504K ........ ........ ........ ........ ........ ........ 36% 39.2M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 53.9M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 54.9M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 46.2M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 57.6M 1s 36864K ........ ........ ........ ........ ........ ........ 59% 53.2M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 49.8M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 31.3M 0s 46080K ........ ........ ........ ........ ........ ........ 73% 47.9M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 38.0M 0s 52224K ........ ........ ........ ........ ........ ........ 82% 43.1M 0s 55296K ........ ........ ........ ........ ........ ........ 87% 42.7M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 47.6M 0s 61440K ........ ........ ........ ........ ........ ........ 96% 45.4M 0s 64512K ........ ........ ........ ........ . 100% 55.1M=1.4s 2016-05-09 17:48:02 (45.8 MB/s) - 'update/complete.mar' saved [68247249/68247249] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ca/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ca/Thunderbird 38.6.0.dmg'] --2016-05-09 17:48:04-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ca/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70274211 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:48:04 GMT ETag: "e245570838bba827385746af1f469975" Last-Modified: Fri, 12 Feb 2016 21:48:51 GMT x-amz-replication-status: COMPLETED x-amz-version-id: f2gdG2FjUbDb.46WGitxulw0829EAkuz X-Cache: Miss from cloudfront Via: 1.1 4a7b695b8ae560fe9087da065a2b7812.cloudfront.net (CloudFront) X-Amz-Cf-Id: kH9Gy8_fndXyZW3U4eG0B59EimNs0bghiXEwgYxdEXds2TgImELO2g== Length: 70274211 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.19M 54s 3072K ........ ........ ........ ........ ........ ........ 8% 760K 67s 6144K ........ ........ ........ ........ ........ ........ 13% 1.20M 58s 9216K ........ ........ ........ ........ ........ ........ 17% 1.29M 52s 12288K ........ ........ ........ ........ ........ ........ 22% 1.46M 47s 15360K ........ ........ ........ ........ ........ ........ 26% 1.41M 42s 18432K ........ ........ ........ ........ ........ ........ 31% 1.08M 40s 21504K ........ ........ ........ ........ ........ ........ 35% 805K 40s 24576K ........ ........ ........ ........ ........ ........ 40% 818K 38s 27648K ........ ........ ........ ........ ........ ........ 44% 1.48M 34s 30720K ........ ........ ........ ........ ........ ........ 49% 3.75M 30s 33792K ........ ........ ........ ........ ........ ........ 53% 5.70M 25s 36864K ........ ........ ........ ........ ........ ........ 58% 6.89M 21s 39936K ........ ........ ........ ........ ........ ........ 62% 7.33M 18s 43008K ........ ........ ........ ........ ........ ........ 67% 9.14M 15s 46080K ........ ........ ........ ........ ........ ........ 71% 9.31M 12s 49152K ........ ........ ........ ........ ........ ........ 76% 10.1M 10s 52224K ........ ........ ........ ........ ........ ........ 80% 11.0M 8s 55296K ........ ........ ........ ........ ........ ........ 85% 11.7M 6s 58368K ........ ........ ........ ........ ........ ........ 89% 13.1M 4s 61440K ........ ........ ........ ........ ........ ........ 94% 12.7M 2s 64512K ........ ........ ........ ........ ........ ........ 98% 13.3M 0s 67584K ........ ........ 100% 13.8M=32s 2016-05-09 17:48:37 (2.07 MB/s) - 'Thunderbird 38.6.0.dmg' saved [70274211/70274211] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ca/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ca/Thunderbird 45.1.0.dmg'] --2016-05-09 17:48:37-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ca/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77608113 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:36:54 GMT ETag: "60d147d438551c808fac26af5dbc1376" Last-Modified: Mon, 09 May 2016 20:43:20 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 9l2PaTJo5o2E2AsVcEtlxVy.DKo8KLRK Age: 703 X-Cache: Hit from cloudfront Via: 1.1 4a7b695b8ae560fe9087da065a2b7812.cloudfront.net (CloudFront) X-Amz-Cf-Id: DZLl5zUXlZuOOF9vQQSuyXXfx3d_sprsTPjdmnfZWnUE1ON4cYXjnw== Length: 77608113 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 37.6M 2s 3072K ........ ........ ........ ........ ........ ........ 8% 31.4M 2s 6144K ........ ........ ........ ........ ........ ........ 12% 33.7M 2s 9216K ........ ........ ........ ........ ........ ........ 16% 36.5M 2s 12288K ........ ........ ........ ........ ........ ........ 20% 43.1M 2s 15360K ........ ........ ........ ........ ........ ........ 24% 56.4M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 54.9M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 36.9M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 52.9M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 52.6M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 44.1M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 54.7M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 46.6M 1s 39936K ........ ........ ........ ........ ........ ........ 56% 49.7M 1s 43008K ........ ........ ........ ........ ........ ........ 60% 53.7M 1s 46080K ........ ........ ........ ........ ........ ........ 64% 41.3M 1s 49152K ........ ........ ........ ........ ........ ........ 68% 39.5M 1s 52224K ........ ........ ........ ........ ........ ........ 72% 45.1M 0s 55296K ........ ........ ........ ........ ........ ........ 77% 23.0M 0s 58368K ........ ........ ........ ........ ........ ........ 81% 52.9M 0s 61440K ........ ........ ........ ........ ........ ........ 85% 48.7M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 50.2M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 45.5M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 23.4M 0s 73728K ........ ........ ........ ........ 100% 42.6M=1.8s 2016-05-09 17:48:39 (41.4 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77608113/77608113] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ca.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/llibres.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/huubs.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/diec2.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/ca.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/ca.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/ca.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ca.lproj/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/wikipedia-ca.xml PREPARE ADD Contents/Resources/searchplugins/llibres.xml PREPARE ADD Contents/Resources/searchplugins/huubs.xml PREPARE ADD Contents/Resources/searchplugins/diec2.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/ca.dic PREPARE ADD Contents/Resources/dictionaries/ca.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/ca.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ca.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/llibres.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/huubs.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/diec2.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/ca.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/ca.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/ca.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ca.lproj/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/wikipedia-ca.xml EXECUTE ADD Contents/Resources/searchplugins/llibres.xml EXECUTE ADD Contents/Resources/searchplugins/huubs.xml EXECUTE ADD Contents/Resources/searchplugins/diec2.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/ca.dic EXECUTE ADD Contents/Resources/dictionaries/ca.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/ca.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-ca.xml FINISH REMOVEFILE Contents/Resources/searchplugins/llibres.xml FINISH REMOVEFILE Contents/Resources/searchplugins/huubs.xml FINISH REMOVEFILE Contents/Resources/searchplugins/diec2.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/ca.dic FINISH REMOVEFILE Contents/Resources/dictionaries/ca.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/ca.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ca.lproj/ non-fatal error removing directory: Contents/Resources/ca.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/wikipedia-ca.xml FINISH ADD Contents/Resources/searchplugins/llibres.xml FINISH ADD Contents/Resources/searchplugins/huubs.xml FINISH ADD Contents/Resources/searchplugins/diec2.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/ca.dic FINISH ADD Contents/Resources/dictionaries/ca.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/ca.lproj/InfoPlist.strings FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/ca/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/ca/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/ca/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/ca/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/ca/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/ca/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/ca/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/ca/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/ca/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/ca/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,8d3 < remove "Contents/Resources/searchplugins/wikipedia-ca.xml" < remove "Contents/Resources/searchplugins/llibres.xml" < remove "Contents/Resources/searchplugins/huubs.xml" < remove "Contents/Resources/searchplugins/diec2.xml" < remove "Contents/Resources/searchplugins/bing.xml" 56,58c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d108 < rmdir "Contents/Resources/searchplugins/" 121d112 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 34c34 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 46c46 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 50c50 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 54c54 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 58c58 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 62c62 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 66c66 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 70c70 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 74c74 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 78c78 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 82c82 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 86c86 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 90c90 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 94c94 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 98c98 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 102c102 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 106c106 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 110c110 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 114c114 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 118c118 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 122c122 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 126c126 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 130c130 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 134c134 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 138c138 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 142c142 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 146c146 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 150c150 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 154c154 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 158c158 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 162c162 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 166c166 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 170c170 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 174c174 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 178c178 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 182c182 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 186c186 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 190c190 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 194c194 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 198c198 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 202c202 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 206c206 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 210c210 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 214c214 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 218c218 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 226c226 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 230c230 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 234c234 < KYCw2pFSo3pnc/uaQQUyPwA9WFA= --- > bSjO0ZE28u0wHhpKgYMKwstmwbs= 238c238 < kSqAS0FpJ2OqENQtt7OidCrb8/M= --- > XZRr8mBslPaAkeBjuZdqnupjJfg= 242c242 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 246c246 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 250c250 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 254c254 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 258c258 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 262c262 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 266c266 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 270c270 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 274c274 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 278c278 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 282c282 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 286c286 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 290c290 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 294c294 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 298c298 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 310c310 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 314c314 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 322c322 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 326c326 < +r18eoH2uCxRrFyV0AawuYLviso= --- > W1srZ6Oh1On5O16cWGRZl2oo+Nw= 330c330 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 334c334 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 338c338 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 342c342 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 346c346 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 350c350 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 354c354 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 358c358 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 362c362 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 366c366 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 370c370 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 374c374 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 378c378 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 386c386 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 390c390 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 394c394 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 398c398 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 402c402 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 404c404 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 406c406 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 408c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 410c410 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 412c412 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 414c414 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 416c416 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 418c418 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 446c446 < ZVvqvaNY+6g2ppgtQVzqwnNjwOQ= --- > 134V4KCy41Ewlu9i99qqWdOctek= 450c450 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 454c454 < 4xr6GicXe2R35M8od3iTNHC0SXY= --- > 0RsrUnZEWEsav3pXGOe8g+Esrs8= 458c458 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,627d607 < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/diec2.xml < < Ym49NSu3vwjqdaCMp4aesJbiZr8= < < Resources/searchplugins/huubs.xml < < Pns0XZVbAykTMMn94K09v0t7YnQ= < < Resources/searchplugins/llibres.xml < < x9D3XvbF6G2kfqVqDeDdB8e8ukU= < < Resources/searchplugins/wikipedia-ca.xml < < a0QM2Sco+8rXr5JkjgHuvKouP1Y= < 656c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c645 < QRTsUpsxTAIQ1qA7p7Mr8xoIOb8= --- > QtSkHnEO71wJh4ts8bYeIRRtmyo= 674c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 823c803 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 835c815 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 839c819 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 843c823 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 847c827 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 851c831 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 855c835 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 859c839 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 863c843 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 867c847 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 871c851 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 875c855 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 879c859 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 883c863 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 887c867 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 891c871 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 895c875 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 899c879 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 903c883 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 907c887 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 911c891 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 915c895 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 919c899 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 923c903 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 927c907 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 931c911 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 935c915 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 939c919 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 943c923 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 947c927 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 951c931 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 955c935 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 959c939 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 963c943 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 967c947 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 971c951 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 975c955 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 979c959 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 983c963 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 987c967 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 991c971 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 995c975 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 999c979 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 1003c983 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1007c987 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1015c995 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1019c999 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1023c1003 < KYCw2pFSo3pnc/uaQQUyPwA9WFA= --- > bSjO0ZE28u0wHhpKgYMKwstmwbs= 1027c1007 < kSqAS0FpJ2OqENQtt7OidCrb8/M= --- > XZRr8mBslPaAkeBjuZdqnupjJfg= 1031c1011 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1035c1015 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1039c1019 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1043c1023 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1047c1027 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1051c1031 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1055c1035 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1059c1039 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1063c1043 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1067c1047 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1071c1051 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1075c1055 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1079c1059 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1083c1063 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1087c1067 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1099c1079 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1103c1083 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1111c1091 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1115c1095 < +r18eoH2uCxRrFyV0AawuYLviso= --- > W1srZ6Oh1On5O16cWGRZl2oo+Nw= 1119c1099 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1123c1103 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1127c1107 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1131c1111 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1135c1115 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1139c1119 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1143c1123 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1147c1127 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1151c1131 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1155c1135 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1159c1139 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1163c1143 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1167c1147 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1175c1155 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1179c1159 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1183c1163 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1187c1167 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1191c1171 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1193c1173 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1195c1175 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1197c1177 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1199c1179 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1201c1181 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1203c1183 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1205c1185 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1207c1187 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1235c1215 < ZVvqvaNY+6g2ppgtQVzqwnNjwOQ= --- > 134V4KCy41Ewlu9i99qqWdOctek= 1239c1219 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1243c1223 < 4xr6GicXe2R35M8od3iTNHC0SXY= --- > 0RsrUnZEWEsav3pXGOe8g+Esrs8= 1247c1227 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1397,1416d1376 < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/diec2.xml < < Ym49NSu3vwjqdaCMp4aesJbiZr8= < < Resources/searchplugins/huubs.xml < < Pns0XZVbAykTMMn94K09v0t7YnQ= < < Resources/searchplugins/llibres.xml < < x9D3XvbF6G2kfqVqDeDdB8e8ukU= < < Resources/searchplugins/wikipedia-ca.xml < < a0QM2Sco+8rXr5JkjgHuvKouP1Y= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48026987 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:49 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48026986 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:49 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48026985 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:49 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48026937 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:49 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48026936 16 -rw-r--r-- 1 cltbld staff 7285 May 9 17:49 source/Thunderbird.app/Contents/Resources/searchplugins/diec2.xml 48026935 8 -rw-r--r-- 1 cltbld staff 1273 May 9 17:49 source/Thunderbird.app/Contents/Resources/searchplugins/huubs.xml 48026934 8 -rw-r--r-- 1 cltbld staff 1270 May 9 17:49 source/Thunderbird.app/Contents/Resources/searchplugins/llibres.xml 48026933 8 -rw-r--r-- 1 cltbld staff 1324 May 9 17:49 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-ca.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:49:34-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:49:34 GMT Keep-Alive: timeout=5, max=918 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 17:49:34 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/cs/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/cs/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:49:34-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/cs/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67842961 Connection: keep-alive Date: Tue, 10 May 2016 00:38:51 GMT x-amz-replication-status: COMPLETED x-amz-version-id: N91GQqDDupJrbm227zLFKkQTji1m8xUb Last-Modified: Tue, 03 May 2016 15:38:17 GMT ETag: "678d05b040be41ad18d93f906907a503" Accept-Ranges: bytes Server: AmazonS3 Age: 644 X-Cache: Hit from cloudfront Via: 1.1 5574699f9d8b8aad21acf2edbb25dc62.cloudfront.net (CloudFront) X-Amz-Cf-Id: BZkmmVSrVmt_era9E7wBdPYQFtOlaNJ_0_ukE-TswG2cDChega209Q== Length: 67842961 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 44.8M 1s 3072K ........ ........ ........ ........ ........ ........ 9% 52.8M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 48.4M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 30.1M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 22.1M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 30.8M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 38.4M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 40.3M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 40.7M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 40.1M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 39.4M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 39.0M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 31.9M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 35.8M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 31.8M 1s 46080K ........ ........ ........ ........ ........ ........ 74% 36.2M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 39.4M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 34.9M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 32.4M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 41.8M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 41.8M 0s 64512K ........ ........ ........ ... 100% 44.7M=1.8s 2016-05-09 17:49:36 (36.7 MB/s) - 'update/complete.mar' saved [67842961/67842961] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/cs/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/cs/Thunderbird 38.6.0.dmg'] --2016-05-09 17:49:37-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/cs/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69861879 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:49:38 GMT ETag: "89ed56477abf3d5043c1ce842e51c6bd" Last-Modified: Fri, 12 Feb 2016 21:48:54 GMT x-amz-replication-status: COMPLETED x-amz-version-id: edmNC_KmUWkSOTOnDz_u6TViecCW46WN X-Cache: Miss from cloudfront Via: 1.1 fc7da6323a08a2c16d48dd4939ce0898.cloudfront.net (CloudFront) X-Amz-Cf-Id: dfnhv90jljDuJjMDa0U4zbrUdm08BYY1JU8JVcxM1WkL_y3aRMzQJw== Length: 69861879 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 921K 71s 3072K ........ ........ ........ ........ ........ ........ 9% 4.01M 41s 6144K ........ ........ ........ ........ ........ ........ 13% 5.75M 29s 9216K ........ ........ ........ ........ ........ ........ 18% 7.27M 23s 12288K ........ ........ ........ ........ ........ ........ 22% 8.86M 18s 15360K ........ ........ ........ ........ ........ ........ 27% 11.0M 15s 18432K ........ ........ ........ ........ ........ ........ 31% 11.1M 13s 21504K ........ ........ ........ ........ ........ ........ 36% 13.7M 11s 24576K ........ ........ ........ ........ ........ ........ 40% 15.8M 9s 27648K ........ ........ ........ ........ ........ ........ 45% 14.5M 8s 30720K ........ ........ ........ ........ ........ ........ 49% 19.7M 7s 33792K ........ ........ ........ ........ ........ ........ 54% 17.7M 6s 36864K ........ ........ ........ ........ ........ ........ 58% 21.7M 5s 39936K ........ ........ ........ ........ ........ ........ 63% 23.7M 4s 43008K ........ ........ ........ ........ ........ ........ 67% 15.5M 4s 46080K ........ ........ ........ ........ ........ ........ 72% 18.7M 3s 49152K ........ ........ ........ ........ ........ ........ 76% 15.4M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 13.5M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 17.0M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 18.3M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 20.9M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 20.5M 0s 67584K ........ .. 100% 30.8M=8.5s 2016-05-09 17:49:46 (7.82 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69861879/69861879] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/cs/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/cs/Thunderbird 45.1.0.dmg'] --2016-05-09 17:49:47-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/cs/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77227133 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:39:05 GMT ETag: "3f86fb6b93c74e06d6eee20e8e81bf8a" Last-Modified: Mon, 09 May 2016 21:06:24 GMT x-amz-replication-status: COMPLETED x-amz-version-id: gLWSL_5nBwNkxq1ccMRwKAPoSgB5RnJ5 Age: 642 X-Cache: Hit from cloudfront Via: 1.1 30bb04916f91d64c600e15c15000042d.cloudfront.net (CloudFront) X-Amz-Cf-Id: OrcWZ-udkKgFTQIKSJjsXlqfyUzsqxhKlWcsS3bHEJ4XcZp2ZSaKMw== Length: 77227133 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 22.8M 3s 3072K ........ ........ ........ ........ ........ ........ 8% 64.8M 2s 6144K ........ ........ ........ ........ ........ ........ 12% 66.8M 2s 9216K ........ ........ ........ ........ ........ ........ 16% 52.9M 1s 12288K ........ ........ ........ ........ ........ ........ 20% 51.4M 1s 15360K ........ ........ ........ ........ ........ ........ 24% 53.5M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 60.0M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 33.0M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 36.0M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 61.2M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 51.5M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 50.6M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 41.9M 1s 39936K ........ ........ ........ ........ ........ ........ 57% 45.4M 1s 43008K ........ ........ ........ ........ ........ ........ 61% 32.6M 1s 46080K ........ ........ ........ ........ ........ ........ 65% 28.5M 1s 49152K ........ ........ ........ ........ ........ ........ 69% 35.1M 1s 52224K ........ ........ ........ ........ ........ ........ 73% 32.7M 0s 55296K ........ ........ ........ ........ ........ ........ 77% 34.4M 0s 58368K ........ ........ ........ ........ ........ ........ 81% 35.0M 0s 61440K ........ ........ ........ ........ ........ ........ 85% 34.3M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 40.4M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 38.5M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 32.1M 0s 73728K ........ ........ ........ .. 100% 37.6M=1.8s 2016-05-09 17:49:49 (39.9 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77227133/77227133] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-cz.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/slunecnice-cz.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/seznam-cz.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/mapy-cz.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/heureka-cz.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/cs.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/cs.lproj/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/wikipedia-cz.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/slunecnice-cz.xml PREPARE ADD Contents/Resources/searchplugins/seznam-cz.xml PREPARE ADD Contents/Resources/searchplugins/mapy-cz.xml PREPARE ADD Contents/Resources/searchplugins/heureka-cz.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/cs.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-cz.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/slunecnice-cz.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/seznam-cz.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/mapy-cz.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/heureka-cz.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/cs.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/cs.lproj/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/wikipedia-cz.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/slunecnice-cz.xml EXECUTE ADD Contents/Resources/searchplugins/seznam-cz.xml EXECUTE ADD Contents/Resources/searchplugins/mapy-cz.xml EXECUTE ADD Contents/Resources/searchplugins/heureka-cz.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/cs.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-cz.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/slunecnice-cz.xml FINISH REMOVEFILE Contents/Resources/searchplugins/seznam-cz.xml FINISH REMOVEFILE Contents/Resources/searchplugins/mapy-cz.xml FINISH REMOVEFILE Contents/Resources/searchplugins/heureka-cz.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/cs.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/cs.lproj/ non-fatal error removing directory: Contents/Resources/cs.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/wikipedia-cz.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/slunecnice-cz.xml FINISH ADD Contents/Resources/searchplugins/seznam-cz.xml FINISH ADD Contents/Resources/searchplugins/mapy-cz.xml FINISH ADD Contents/Resources/searchplugins/heureka-cz.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/cs.lproj/InfoPlist.strings FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini 25c25 < CommentGrayText=Přidat komentář. Upozornění: Komentáře jsou veřejně dostupné. --- > CommentGrayText=Přidat komentář (komentáře jsou veřejně dostupné) diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources 76c76 < /GXefXh2ozKpTqUDWtuzbq+euCU= --- > 1hKcG6o+ilHldS087uGCvM/+ZEA= 150c150 < /GXefXh2ozKpTqUDWtuzbq+euCU= --- > 1hKcG6o+ilHldS087uGCvM/+ZEA= Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/cs/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/cs/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/cs/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/cs/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/cs/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/cs/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/cs/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/cs/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/cs/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/cs/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,11d3 < remove "Contents/Resources/searchplugins/wikipedia-cz.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/slunecnice-cz.xml" < remove "Contents/Resources/searchplugins/seznam-cz.xml" < remove "Contents/Resources/searchplugins/mapy-cz.xml" < remove "Contents/Resources/searchplugins/heureka-cz.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/bing.xml" 59,61c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 91c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 117d106 < rmdir "Contents/Resources/searchplugins/" 122d110 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 34c34 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 38c38 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 42c42 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 46c46 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 50c50 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 54c54 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 58c58 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 62c62 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 66c66 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 70c70 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 74c74 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 78c78 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 82c82 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 86c86 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 90c90 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 94c94 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 98c98 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 102c102 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 106c106 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 110c110 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 114c114 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 118c118 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 122c122 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 126c126 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 130c130 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 134c134 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 138c138 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 142c142 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 146c146 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 150c150 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 154c154 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 158c158 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 162c162 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 166c166 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 170c170 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 174c174 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 178c178 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 182c182 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 186c186 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 190c190 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 194c194 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 198c198 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 202c202 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 206c206 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 210c210 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 218c218 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 222c222 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 226c226 < gtx0k6bOCsJjkgey7dPmV551JVc= --- > abzNhFyFG57ZVEkuIz6bs5gcCsI= 230c230 < fbL91adE1VNCgKqSgqngoXeVlhY= --- > sCHA1Zne7ksOEgNu3HQZcPZ5oL8= 234c234 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 238c238 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 242c242 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 246c246 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 250c250 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 254c254 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 258c258 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 262c262 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 266c266 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 270c270 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 274c274 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 278c278 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 282c282 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 286c286 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 290c290 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 302c302 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 306c306 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 314c314 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 318c318 < rjGY6jId9A2lBuQm7hOASWMH6Aw= --- > FFzuttiVKsY6+BwVkxnB0neTSs0= 322c322 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 326c326 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 330c330 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 334c334 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 338c338 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 342c342 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 346c346 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 350c350 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 354c354 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 358c358 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 362c362 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 366c366 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 370c370 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 378c378 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 382c382 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 386c386 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 390c390 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 394c394 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 396c396 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 398c398 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 400c400 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 402c402 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 404c404 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 406c406 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 408c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 410c410 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < FfszADfbQIQ45C9Nz6OGYnVfP1c= --- > vr+S/jnI0P9nMF1xQ8TgPTshkPQ= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < ksGeNMZZpH8A94uKEGA9vv0v2No= --- > P0iBnz/WrBFjhPpyVtlM+0CaGX0= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,631d599 < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/heureka-cz.xml < < 1pCcWIkGR8dVYmkPaUUl/KLZ3VM= < < Resources/searchplugins/mapy-cz.xml < < lq+3IMJwgWxpxAYgFDwgZTSHih8= < < Resources/searchplugins/seznam-cz.xml < < Z+FP2DQC+hE7WRjER8IYWmrnh4k= < < Resources/searchplugins/slunecnice-cz.xml < < jqvMp5PUUabQWw/Qvm6kYR+zeo8= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-cz.xml < < 5Cpo/LF+Xj+hGj/WIqX/kEDyT+8= < 660c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 669c637 < lmKshXeRCStcyd8RM7OvtkQRkgk= --- > TpZRAdFSefAfIDB6tFO2euB1NMY= 678c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 687c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 696c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 701c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 705c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 714c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 723c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 732c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 741c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 750c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 759c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 768c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 777c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 786c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 795c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 802c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 806c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 827c795 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 831c799 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 835c803 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 839c807 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 843c811 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 847c815 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 851c819 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 855c823 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 859c827 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 863c831 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 867c835 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 871c839 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 875c843 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 879c847 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 883c851 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 887c855 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 891c859 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 895c863 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 899c867 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 903c871 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 907c875 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 911c879 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 915c883 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 919c887 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 923c891 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 927c895 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 931c899 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 935c903 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 939c907 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 943c911 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 947c915 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 951c919 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 955c923 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 959c927 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 963c931 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 967c935 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 971c939 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 975c943 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 979c947 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 983c951 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 987c955 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 991c959 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 995c963 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 999c967 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1003c971 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1011c979 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1015c983 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1019c987 < gtx0k6bOCsJjkgey7dPmV551JVc= --- > abzNhFyFG57ZVEkuIz6bs5gcCsI= 1023c991 < fbL91adE1VNCgKqSgqngoXeVlhY= --- > sCHA1Zne7ksOEgNu3HQZcPZ5oL8= 1027c995 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1031c999 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1035c1003 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1039c1007 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1043c1011 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1047c1015 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1051c1019 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1055c1023 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1059c1027 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1063c1031 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1067c1035 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1071c1039 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1075c1043 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1079c1047 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1083c1051 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1095c1063 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1099c1067 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1107c1075 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1111c1079 < rjGY6jId9A2lBuQm7hOASWMH6Aw= --- > FFzuttiVKsY6+BwVkxnB0neTSs0= 1115c1083 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1119c1087 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1123c1091 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1127c1095 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1131c1099 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1135c1103 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1139c1107 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1143c1111 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1147c1115 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1151c1119 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1155c1123 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1159c1127 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1163c1131 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1171c1139 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1175c1143 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1179c1147 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1183c1151 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1187c1155 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1189c1157 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1191c1159 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1193c1161 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1195c1163 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1197c1165 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1199c1167 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1201c1169 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1203c1171 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1231c1199 < FfszADfbQIQ45C9Nz6OGYnVfP1c= --- > vr+S/jnI0P9nMF1xQ8TgPTshkPQ= 1235c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1239c1207 < ksGeNMZZpH8A94uKEGA9vv0v2No= --- > P0iBnz/WrBFjhPpyVtlM+0CaGX0= 1243c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1393,1424d1360 < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/heureka-cz.xml < < 1pCcWIkGR8dVYmkPaUUl/KLZ3VM= < < Resources/searchplugins/mapy-cz.xml < < lq+3IMJwgWxpxAYgFDwgZTSHih8= < < Resources/searchplugins/seznam-cz.xml < < Z+FP2DQC+hE7WRjER8IYWmrnh4k= < < Resources/searchplugins/slunecnice-cz.xml < < jqvMp5PUUabQWw/Qvm6kYR+zeo8= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-cz.xml < < 5Cpo/LF+Xj+hGj/WIqX/kEDyT+8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48027739 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:50 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48027738 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:50 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48027737 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:50 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48027689 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:50 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48027688 8 -rw-r--r-- 1 cltbld staff 2371 May 9 17:50 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48027687 8 -rw-r--r-- 1 cltbld staff 2370 May 9 17:50 source/Thunderbird.app/Contents/Resources/searchplugins/heureka-cz.xml 48027686 8 -rw-r--r-- 1 cltbld staff 1322 May 9 17:50 source/Thunderbird.app/Contents/Resources/searchplugins/mapy-cz.xml 48027685 8 -rw-r--r-- 1 cltbld staff 1538 May 9 17:50 source/Thunderbird.app/Contents/Resources/searchplugins/seznam-cz.xml 48027684 8 -rw-r--r-- 1 cltbld staff 825 May 9 17:50 source/Thunderbird.app/Contents/Resources/searchplugins/slunecnice-cz.xml 48027683 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:50 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48027682 8 -rw-r--r-- 1 cltbld staff 2222 May 9 17:50 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-cz.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cy/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cy/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cy/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:50:43-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cy/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:50:43 GMT Keep-Alive: timeout=5, max=926 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 17:50:43 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/cy/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/cy/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:50:43-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/cy/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67826317 Connection: keep-alive Date: Tue, 10 May 2016 00:41:04 GMT x-amz-replication-status: COMPLETED x-amz-version-id: Q2e0k7jCT9FBWleC_.EVjyizQMaPNNvz Last-Modified: Tue, 03 May 2016 15:51:11 GMT ETag: "0f31d030a5ab8b389fc7f715285b1a6f" Accept-Ranges: bytes Server: AmazonS3 Age: 580 X-Cache: Hit from cloudfront Via: 1.1 6be093c16fa776bbd432bbe9bd03f6af.cloudfront.net (CloudFront) X-Amz-Cf-Id: nU3IU4jBZox1yyD0lZywCeKm_jcdGjgbG4xYqIgzPYnWHhV6lKC99g== Length: 67826317 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 37.7M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 79.2M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 46.7M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 40.8M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 57.5M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 51.5M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 53.1M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 58.7M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 55.4M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 37.6M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 34.0M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 42.5M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 42.9M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 40.2M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 46.2M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 49.6M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 42.7M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 38.2M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 39.4M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 48.9M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 53.6M 0s 64512K ........ ........ ........ .. 100% 53.9M=1.4s 2016-05-09 17:50:44 (45.9 MB/s) - 'update/complete.mar' saved [67826317/67826317] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/cy/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/cy/Thunderbird 38.6.0.dmg'] --2016-05-09 17:50:45-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/cy/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69844292 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:50:46 GMT ETag: "55c1a256ee6068c491303587767982e7" Last-Modified: Fri, 12 Feb 2016 21:48:57 GMT x-amz-replication-status: COMPLETED x-amz-version-id: CbgvIJfl5xSvlvlz0oxxTtTGloJJpjs7 X-Cache: Miss from cloudfront Via: 1.1 aa96a51fedae85199c643eb5c8eca4e4.cloudfront.net (CloudFront) X-Amz-Cf-Id: hdahyz2FxYCZ6lj0GujHlNXWVpfXK2GjbxAxSmKFnn212Ok6opn5cw== Length: 69844292 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 679K 96s 3072K ........ ........ ........ ........ ........ ........ 9% 4.01M 53s 6144K ........ ........ ........ ........ ........ ........ 13% 5.40M 37s 9216K ........ ........ ........ ........ ........ ........ 18% 6.82M 29s 12288K ........ ........ ........ ........ ........ ........ 22% 9.21M 23s 15360K ........ ........ ........ ........ ........ ........ 27% 9.13M 19s 18432K ........ ........ ........ ........ ........ ........ 31% 8.35M 16s 21504K ........ ........ ........ ........ ........ ........ 36% 329K 29s 24576K ........ ........ ........ ........ ........ ........ 40% 3.12M 26s 27648K ........ ........ ........ ........ ........ ........ 45% 3.61M 22s 30720K ........ ........ ........ ........ ........ ........ 49% 4.41M 19s 33792K ........ ........ ........ ........ ........ ........ 54% 4.06M 17s 36864K ........ ........ ........ ........ ........ ........ 58% 3.99M 15s 39936K ........ ........ ........ ........ ........ ........ 63% 4.49M 12s 43008K ........ ........ ........ ........ ........ ........ 67% 4.01M 11s 46080K ........ ........ ........ ........ ........ ........ 72% 4.45M 9s 49152K ........ ........ ........ ........ ........ ........ 76% 4.06M 7s 52224K ........ ........ ........ ........ ........ ........ 81% 4.51M 6s 55296K ........ ........ ........ ........ ........ ........ 85% 4.59M 4s 58368K ........ ........ ........ ........ ........ ........ 90% 5.23M 3s 61440K ........ ........ ........ ........ ........ ........ 94% 5.19M 1s 64512K ........ ........ ........ ........ ........ ........ 99% 5.27M 0s 67584K ........ . 100% 3.63M=27s 2016-05-09 17:51:13 (2.50 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69844292/69844292] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/cy/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/cy/Thunderbird 45.1.0.dmg'] --2016-05-09 17:51:13-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/cy/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77204312 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:41:29 GMT ETag: "64ea9090248933c033703a6fd4c7270d" Last-Modified: Mon, 09 May 2016 21:29:12 GMT x-amz-replication-status: COMPLETED x-amz-version-id: p8ZSZM5K3K.Bn6I.WJgizjb6wfkhOhSr Age: 584 X-Cache: Hit from cloudfront Via: 1.1 3d3d633d266d05d90a4eea7a6a59b514.cloudfront.net (CloudFront) X-Amz-Cf-Id: ROBPW87VrEq29MWk7Be7qkbEomzvj98FVtKvar2sECEnwXdl625GQw== Length: 77204312 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 28.0M 3s 3072K ........ ........ ........ ........ ........ ........ 8% 45.0M 2s 6144K ........ ........ ........ ........ ........ ........ 12% 36.8M 2s 9216K ........ ........ ........ ........ ........ ........ 16% 39.5M 2s 12288K ........ ........ ........ ........ ........ ........ 20% 57.0M 2s 15360K ........ ........ ........ ........ ........ ........ 24% 31.9M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 26.0M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 48.1M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 41.6M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 47.0M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 27.8M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 27.1M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 33.2M 1s 39936K ........ ........ ........ ........ ........ ........ 57% 45.1M 1s 43008K ........ ........ ........ ........ ........ ........ 61% 45.7M 1s 46080K ........ ........ ........ ........ ........ ........ 65% 42.8M 1s 49152K ........ ........ ........ ........ ........ ........ 69% 39.2M 1s 52224K ........ ........ ........ ........ ........ ........ 73% 41.0M 1s 55296K ........ ........ ........ ........ ........ ........ 77% 47.9M 0s 58368K ........ ........ ........ ........ ........ ........ 81% 48.0M 0s 61440K ........ ........ ........ ........ ........ ........ 85% 55.5M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 41.3M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 51.6M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 46.5M 0s 73728K ........ ........ ........ .. 100% 48.6M=1.9s 2016-05-09 17:51:15 (39.6 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77204312/77204312] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/cy.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/cy.lproj/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/cy.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/cy.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/cy.lproj/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/cy.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/cy.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/cy.lproj/ non-fatal error removing directory: Contents/Resources/cy.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/cy.lproj/InfoPlist.strings FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/cy/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/cy/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/cy/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/cy/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/cy/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/cy/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/cy/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/cy/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/cy/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/cy/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 58,60c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d106 < rmdir "Contents/Resources/searchplugins/" 121d110 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 34c34 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 38c38 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 42c42 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 46c46 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 50c50 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 54c54 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 58c58 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 62c62 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 66c66 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 70c70 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 74c74 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 78c78 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 82c82 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 86c86 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 90c90 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 94c94 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 98c98 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 102c102 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 106c106 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 110c110 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 114c114 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 118c118 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 122c122 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 126c126 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 130c130 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 134c134 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 138c138 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 142c142 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 146c146 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 150c150 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 154c154 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 158c158 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 162c162 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 166c166 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 170c170 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 174c174 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 178c178 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 182c182 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 186c186 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 190c190 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 194c194 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 198c198 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 202c202 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 206c206 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 210c210 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 218c218 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 222c222 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 226c226 < AMSAG5zoH8c18E6FvMvBfO/f8CE= --- > UT3pOaJQFCxa+Z3NkCOPfXbJx8c= 230c230 < Qz/tEk7mv9yYyfeNqUe8NKmtk2U= --- > DMDyJD/BBDPNFYC8XqrtnkWzpcw= 234c234 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 238c238 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 242c242 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 246c246 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 250c250 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 254c254 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 258c258 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 262c262 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 266c266 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 270c270 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 274c274 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 278c278 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 282c282 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 286c286 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 290c290 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 302c302 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 306c306 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 314c314 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 318c318 < 6diqeLSWZ4BCXZeDiTN160YeHmQ= --- > 6Xpu1jKAmM4ourKTFzyqgb3kw04= 322c322 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 326c326 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 330c330 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 334c334 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 338c338 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 342c342 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 346c346 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 350c350 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 354c354 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 358c358 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 362c362 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 366c366 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 370c370 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 378c378 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 382c382 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 386c386 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 390c390 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 394c394 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 396c396 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 398c398 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 400c400 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 402c402 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 404c404 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 406c406 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 408c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 410c410 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < Xu+X8pyrCSad+MevVM6KiFhyb0g= --- > zHOXSZmk8a7hzgXwRA5WCWg7MVU= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < r52XXTIQSGE8lD0l6dYK2K0+lEY= --- > RvJvxb/8fVUmXw+xxgTownVyuyc= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,627d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < rbOA3/ecQPq+x3g7JUdTk7VX/Ew= --- > 9Qvsi/tjLxDwnpPpZo7+qniMjpM= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 823c795 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 827c799 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 831c803 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 835c807 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 839c811 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 843c815 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 847c819 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 851c823 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 855c827 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 859c831 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 863c835 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 867c839 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 871c843 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 875c847 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 879c851 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 883c855 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 887c859 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 891c863 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 895c867 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 899c871 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 903c875 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 907c879 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 911c883 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 915c887 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 919c891 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 923c895 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 927c899 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 931c903 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 935c907 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 939c911 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 943c915 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 947c919 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 951c923 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 955c927 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 959c931 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 963c935 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 967c939 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 971c943 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 975c947 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 979c951 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 983c955 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 987c959 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 991c963 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 995c967 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 999c971 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1007c979 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1011c983 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1015c987 < AMSAG5zoH8c18E6FvMvBfO/f8CE= --- > UT3pOaJQFCxa+Z3NkCOPfXbJx8c= 1019c991 < Qz/tEk7mv9yYyfeNqUe8NKmtk2U= --- > DMDyJD/BBDPNFYC8XqrtnkWzpcw= 1023c995 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1027c999 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1031c1003 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1035c1007 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1039c1011 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1043c1015 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1047c1019 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1051c1023 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1055c1027 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1059c1031 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1063c1035 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1067c1039 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1071c1043 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1075c1047 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1079c1051 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1091c1063 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1095c1067 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1103c1075 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1107c1079 < 6diqeLSWZ4BCXZeDiTN160YeHmQ= --- > 6Xpu1jKAmM4ourKTFzyqgb3kw04= 1111c1083 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1115c1087 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1119c1091 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1123c1095 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1127c1099 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1131c1103 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1135c1107 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1139c1111 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1143c1115 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1147c1119 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1151c1123 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1155c1127 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1159c1131 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1167c1139 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1171c1143 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1175c1147 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1179c1151 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1183c1155 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1185c1157 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1187c1159 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1189c1161 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1191c1163 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1193c1165 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1195c1167 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1197c1169 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1199c1171 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1227c1199 < Xu+X8pyrCSad+MevVM6KiFhyb0g= --- > zHOXSZmk8a7hzgXwRA5WCWg7MVU= 1231c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1235c1207 < r52XXTIQSGE8lD0l6dYK2K0+lEY= --- > RvJvxb/8fVUmXw+xxgTownVyuyc= 1239c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1389,1416d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48028489 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:52 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48028488 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:52 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48028487 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:52 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48028439 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:52 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48028438 8 -rw-r--r-- 1 cltbld staff 1670 May 9 17:52 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48028437 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:52 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48028436 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:52 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48028435 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:52 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48028434 8 -rw-r--r-- 1 cltbld staff 1338 May 9 17:52 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48028433 8 -rw-r--r-- 1 cltbld staff 1363 May 9 17:52 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cy/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cy/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cy/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:52:10-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:52:10 GMT Keep-Alive: timeout=5, max=958 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 17:52:10 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/da/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/da/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:52:10-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/da/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68438656 Connection: keep-alive Date: Tue, 10 May 2016 00:43:25 GMT x-amz-replication-status: COMPLETED x-amz-version-id: bas1rRUN7B1.aNUWNaUxk8JtmS_BmO0d Last-Modified: Tue, 03 May 2016 16:04:49 GMT ETag: "55248ca6912dd6b8e0b3fba62f895d2f" Accept-Ranges: bytes Server: AmazonS3 Age: 526 X-Cache: Hit from cloudfront Via: 1.1 0ffb9964022445351e635c66ad0176ff.cloudfront.net (CloudFront) X-Amz-Cf-Id: oBGPWNkvd-OiB87smrDG3i_m1VtCW1ivsw6eiZij7YZ12IlajHYBEQ== Length: 68438656 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 19.4M 3s 3072K ........ ........ ........ ........ ........ ........ 9% 63.7M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 65.0M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 45.3M 1s 12288K ........ ........ ........ ........ ........ ........ 22% 52.2M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 46.6M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 53.7M 1s 21504K ........ ........ ........ ........ ........ ........ 36% 49.3M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 50.6M 1s 27648K ........ ........ ........ ........ ........ ........ 45% 48.0M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 51.1M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 29.5M 1s 36864K ........ ........ ........ ........ ........ ........ 59% 49.5M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 62.0M 1s 43008K ........ ........ ........ ........ ........ ........ 68% 39.0M 0s 46080K ........ ........ ........ ........ ........ ........ 73% 28.8M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 42.6M 0s 52224K ........ ........ ........ ........ ........ ........ 82% 56.4M 0s 55296K ........ ........ ........ ........ ........ ........ 87% 48.5M 0s 58368K ........ ........ ........ ........ ........ ........ 91% 21.7M 0s 61440K ........ ........ ........ ........ ........ ........ 96% 49.2M 0s 64512K ........ ........ ........ ........ .... 100% 61.5M=1.5s 2016-05-09 17:52:12 (42.2 MB/s) - 'update/complete.mar' saved [68438656/68438656] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/da/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/da/Thunderbird 38.6.0.dmg'] --2016-05-09 17:52:13-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/da/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70466283 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:52:13 GMT ETag: "00e976fbb4986023b6cb1e6f102f55e5" Last-Modified: Fri, 12 Feb 2016 21:49:00 GMT x-amz-replication-status: COMPLETED x-amz-version-id: QVNq5NKt8aL7Pk5ePnrA1A29aW8j2jV_ X-Cache: Miss from cloudfront Via: 1.1 bfdd5909914586f5bc4851846228c27f.cloudfront.net (CloudFront) X-Amz-Cf-Id: tV2SiOHd0pt17Xp1sVTQX0CwelvsCTV2jmjHA64gXm0ueiUNSrfdSg== Length: 70466283 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 777K 85s 3072K ........ ........ ........ ........ ........ ........ 8% 3.69M 49s 6144K ........ ........ ........ ........ ........ ........ 13% 5.44M 34s 9216K ........ ........ ........ ........ ........ ........ 17% 7.64M 26s 12288K ........ ........ ........ ........ ........ ........ 22% 8.13M 21s 15360K ........ ........ ........ ........ ........ ........ 26% 8.73M 18s 18432K ........ ........ ........ ........ ........ ........ 31% 11.5M 15s 21504K ........ ........ ........ ........ ........ ........ 35% 13.4M 12s 24576K ........ ........ ........ ........ ........ ........ 40% 13.2M 11s 27648K ........ ........ ........ ........ ........ ........ 44% 14.3M 9s 30720K ........ ........ ........ ........ ........ ........ 49% 16.3M 8s 33792K ........ ........ ........ ........ ........ ........ 53% 22.5M 7s 36864K ........ ........ ........ ........ ........ ........ 58% 17.7M 6s 39936K ........ ........ ........ ........ ........ ........ 62% 17.2M 5s 43008K ........ ........ ........ ........ ........ ........ 66% 26.4M 4s 46080K ........ ........ ........ ........ ........ ........ 71% 17.9M 3s 49152K ........ ........ ........ ........ ........ ........ 75% 11.5M 3s 52224K ........ ........ ........ ........ ........ ........ 80% 10.8M 2s 55296K ........ ........ ........ ........ ........ ........ 84% 13.6M 2s 58368K ........ ........ ........ ........ ........ ........ 89% 18.5M 1s 61440K ........ ........ ........ ........ ........ ........ 93% 14.4M 1s 64512K ........ ........ ........ ........ ........ ........ 98% 11.0M 0s 67584K ........ ........ ... 100% 13.0M=9.8s 2016-05-09 17:52:23 (6.87 MB/s) - 'Thunderbird 38.6.0.dmg' saved [70466283/70466283] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/da/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/da/Thunderbird 45.1.0.dmg'] --2016-05-09 17:52:24-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/da/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77794267 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:43:44 GMT ETag: "b295c8f1feed1cf1c4054f525b1a3192" Last-Modified: Mon, 09 May 2016 21:51:33 GMT x-amz-replication-status: COMPLETED x-amz-version-id: B_j350UHgRCGPcxvnKH0A2GDZzbOYjO9 Age: 519 X-Cache: Hit from cloudfront Via: 1.1 990c804118e679d7ea0f4d3ca3cc4534.cloudfront.net (CloudFront) X-Amz-Cf-Id: CStYgyxG3UqQ7NQNRF3--TtQpW74o6gXhLYt-dwHllS60Jr5O9TFpQ== Length: 77794267 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 42.5M 2s 3072K ........ ........ ........ ........ ........ ........ 8% 53.9M 1s 6144K ........ ........ ........ ........ ........ ........ 12% 33.0M 2s 9216K ........ ........ ........ ........ ........ ........ 16% 57.1M 1s 12288K ........ ........ ........ ........ ........ ........ 20% 42.5M 1s 15360K ........ ........ ........ ........ ........ ........ 24% 34.1M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 47.5M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 47.2M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 53.8M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 51.8M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 40.9M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 57.4M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 26.1M 1s 39936K ........ ........ ........ ........ ........ ........ 56% 52.0M 1s 43008K ........ ........ ........ ........ ........ ........ 60% 44.1M 1s 46080K ........ ........ ........ ........ ........ ........ 64% 42.6M 1s 49152K ........ ........ ........ ........ ........ ........ 68% 47.6M 1s 52224K ........ ........ ........ ........ ........ ........ 72% 40.0M 0s 55296K ........ ........ ........ ........ ........ ........ 76% 48.0M 0s 58368K ........ ........ ........ ........ ........ ........ 80% 45.1M 0s 61440K ........ ........ ........ ........ ........ ........ 84% 50.2M 0s 64512K ........ ........ ........ ........ ........ ........ 88% 41.2M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 58.8M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 29.7M 0s 73728K ........ ........ ........ ........ ... 100% 37.9M=1.7s 2016-05-09 17:52:25 (43.3 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77794267/77794267] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-da.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazon-co-uk.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/da.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/da.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/da.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/da.lproj/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/wikipedia-da.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/amazon-co-uk.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/da.dic PREPARE ADD Contents/Resources/dictionaries/da.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/da.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-da.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazon-co-uk.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/da.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/da.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/da.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/da.lproj/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/wikipedia-da.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/amazon-co-uk.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/da.dic EXECUTE ADD Contents/Resources/dictionaries/da.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/da.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-da.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazon-co-uk.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/da.dic FINISH REMOVEFILE Contents/Resources/dictionaries/da.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/da.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/da.lproj/ non-fatal error removing directory: Contents/Resources/da.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/wikipedia-da.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/amazon-co-uk.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/da.dic FINISH ADD Contents/Resources/dictionaries/da.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/da.lproj/InfoPlist.strings FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/dictionaries/da.aff target/Thunderbird.app/Contents/Resources/dictionaries/da.aff 1c1 < #Stavekontrolden version 2.2 --- > #Stavekontrolden version 2.3 4c4 < #Copyright (C) 2014 Foreningen for frit tilgængelige sprogværktøjer --- > #Copyright (C) 2015 Foreningen for frit tilgængelige sprogværktøjer 44c44 < REP 112 --- > REP 115 153a154,156 > REP ss$ s' #Genetiv > REP xs$ x' #faxs -> fax' > REP zs$ z' #jazzs -> jazz' 437,441c440,443 < SFX 55 Y 4 < SFX 55 0 s [^s] +GENITIV < SFX 55 0 s +GENITIV < SFX 55 0 ' s +GENITIV < SFX 55 0 es s +GENITIV --- > SFX 55 Y 3 > SFX 55 0 s [^sxz] +GENITIV > SFX 55 0 's [QWERTYUIOPÅASDFGHJKLÆØZXCVBNM] +GENITIV > SFX 55 0 ' [sxz] +GENITIV 443,448c445,447 < SFX 70 Y 5 < SFX 70 0 s/944 [^s] +GENITIV < SFX 70 0 es/944 s +GENITIV < SFX 70 0 ’s/944 s +GENITIV < SFX 70 0 '/944 s +GENITIV < SFX 70 0 es/944 s +GENITIV --- > SFX 70 Y 2 > SFX 70 0 s/944 [^sxz] +GENITIV > SFX 70 0 '/944 [sxz] +GENITIV 463c462 < SFX 84 0 nes/944,944 . +GENITIV --- > SFX 84 0 nes/944 . +GENITIV 855c854 < SFX 914 t de/70,70,944 . +PLUR_BEK --- > SFX 914 t de/70,944 . +PLUR_BEK 862c861 < SFX 915 0 s/944,944 [^s] +GENITIV --- > SFX 915 0 s/944 [^s] +GENITIV 867c866 < SFX 916 0 s/944,944 [^s] +GENITIV --- > SFX 916 0 s/944 [^s] +GENITIV 878c877 < SFX 939 0 s/942,945,946,945 . --- > SFX 939 0 s/942,945,946 . 965,968c964,966 < SFX 190 Y 3 < SFX 190 0 s [^s] +GENITIV < SFX 190 0 ' s +GENITIV < SFX 190 0 es s +GENITIV --- > SFX 190 Y 2 > SFX 190 0 s [^szx] +GENITIV > SFX 190 0 ' [szx] +GENITIV 1167c1165 < SFX 466 0 -/943,945,943 . --- > SFX 466 0 -/943,945 . 1530c1528,1626 < SFX 449 0 re/946,943,945 r \ No newline at end of file --- > SFX 449 0 re/946,943,945 r > #Sammensætning, fugeelement Ø el. s > > #Sammensætning, fugeelement Ø el. e > > #Substantiv, ender på el, -ler i flertal > SFX 815 Y 52 > SFX 815 el ler/944 [^dfkmps]el +PLUR_UBEK > SFX 815 el lers/944 [^dfkmps]el +GENITIV > SFX 815 el lerne/944 [^dfkmps]el +PLUR_UBEK > SFX 815 el lernes/944 [^dfkmps]el +GENITIV > SFX 815 el ler/944 [^d]del +PLUR_BEK > SFX 815 el ler/944 [^f]fel +PLUR_BEK > SFX 815 el ler/944 [^k]kel +PLUR_BEK > SFX 815 el ler/944 [^m]mel +PLUR_BEK > SFX 815 el ler/944 [^p]pel +PLUR_BEK > SFX 815 el ler/944 [^s]sel +PLUR_BEK > SFX 815 del ler/944 ddel +PLUR_BEK > SFX 815 fel ler/944 ffel +PLUR_BEK > SFX 815 kel ler/944 kkel +PLUR_BEK > SFX 815 mel ler/944 mmel +PLUR_BEK > SFX 815 pel ler/944 ppel +PLUR_BEK > SFX 815 sel ler/944 ssel +PLUR_BEK > SFX 815 el lers/944 [^d]del +GENITIV > SFX 815 el lers/944 [^f]fel +GENITIV > SFX 815 el lers/944 [^k]kel +GENITIV > SFX 815 el lers/944 [^m]mel +GENITIV > SFX 815 el lers/944 [^p]pel +GENITIV > SFX 815 el lers/944 [^s]sel +GENITIV > SFX 815 del lers/944 ddel +GENITIV > SFX 815 fel lers/944 ffel +GENITIV > SFX 815 kel lers/944 kkel +GENITIV > SFX 815 mel lers/944 mmel +GENITIV > SFX 815 pel lers/944 ppel +GENITIV > SFX 815 sel lers/944 ssel +GENITIV > SFX 815 el lerne/944 [^d]del +PLUR_UBEK > SFX 815 el lerne/944 [^f]del +PLUR_UBEK > SFX 815 el lerne/944 [^k]kel +PLUR_UBEK > SFX 815 el lerne/944 [^m]mel +PLUR_UBEK > SFX 815 el lerne/944 [^p]pel +PLUR_UBEK > SFX 815 el lerne/944 [^s]sel +PLUR_UBEK > SFX 815 del lerne/944 ddel +PLUR_UBEK > SFX 815 fel lerne/944 ffel +PLUR_UBEK > SFX 815 kel lerne/944 kkel +PLUR_UBEK > SFX 815 mel lerne/944 mmel +PLUR_UBEK > SFX 815 pel lerne/944 ppel +PLUR_UBEK > SFX 815 sel lerne/944 ssel +PLUR_UBEK > SFX 815 el lernes/944 [^d]del +GENITIV > SFX 815 el lernes/944 [^f]fel +GENITIV > SFX 815 el lernes/944 [^k]kel +GENITIV > SFX 815 el lernes/944 [^m]mel +GENITIV > SFX 815 el lernes/944 [^p]pel +GENITIV > SFX 815 el lernes/944 [^s]sel +GENITIV > SFX 815 del lernes/944 ddel +GENITIV > SFX 815 fel lernes/944 ffel +GENITIV > SFX 815 kel lernes/944 kkel +GENITIV > SFX 815 mel lernes/944 mmel +GENITIV > SFX 815 pel lernes/944 ppel +GENITIV > SFX 815 sel lernes/944 ssel +GENITIV > #Substantiv, fælleskøn, ender på el, bekendt form ental, -el erstattes med -len > SFX 822 Y 26 > SFX 822 el len/944 [^dfkmps]el +BESTEMT_ENTAL > SFX 822 el lens/944 [^dfkmps]el +GENITIV > SFX 822 el len/944 [^d]del +BESTEMT_ENTAL > SFX 822 el len/944 [^f]fel +BESTEMT_ENTAL > SFX 822 el len/944 [^k]kel +BESTEMT_ENTAL > SFX 822 el len/944 [^m]mel +BESTEMT_ENTAL > SFX 822 el len/944 [^p]pel +BESTEMT_ENTAL > SFX 822 el len/944 [^s]sel +BESTEMT_ENTAL > SFX 822 del len/944 ddel +BESTEMT_ENTAL > SFX 822 fel len/944 ffel +BESTEMT_ENTAL > SFX 822 kel len/944 kkel +BESTEMT_ENTAL > SFX 822 mel len/944 mmel +BESTEMT_ENTAL > SFX 822 pel len/944 ppel +BESTEMT_ENTAL > SFX 822 sel len/944 ssel +BESTEMT_ENTAL > SFX 822 el lens/944 [^d]del +GENITIV > SFX 822 el lens/944 [^f]fel +GENITIV > SFX 822 el lens/944 [^k]kel +GENITIV > SFX 822 el lens/944 [^m]mel +GENITIV > SFX 822 el lens/944 [^p]pel +GENITIV > SFX 822 el lens/944 [^s]sel +GENITIV > SFX 822 del lens/944 ddel +GENITIV > SFX 822 fel lens/944 ffel +GENITIV > SFX 822 kel lens/944 kkel +GENITIV > SFX 822 mel lens/944 mmel +GENITIV > SFX 822 pel lens/944 ppel +GENITIV > SFX 822 sel lens/944 ssel +GENITIV > #Substantiv, intetkøn, ender på el, bestemt form ental, -el erstattes med -let > SFX 828 Y 10 > SFX 828 el let/944 [^dm]el +BESTEMT_ENTAL > SFX 828 el lets/944 [^dm]el +GENITIV > SFX 828 el let/944 [^d]del +BESTEMT_ENTAL > SFX 828 el let/944 [^m]mel +BESTEMT_ENTAL > SFX 828 del let/944 ddel +BESTEMT_ENTAL > SFX 828 mel let/944 mmel +BESTEMT_ENTAL > SFX 828 el lets/944 [^d]del +GENITIV > SFX 828 el lets/944 [^m]mel +GENITIV > SFX 828 del lets/944 ddel +GENITIV > SFX 828 mel lets/944 mmel +GENITIV diff -r source/Thunderbird.app/Contents/Resources/dictionaries/da.dic target/Thunderbird.app/Contents/Resources/dictionaries/da.dic 1c1 < 161584 # (c) Stavekontrolden.dk --- > 154711 # (c) Stavekontrolden.dk 273d272 < acryl/193,70,976 632,635c631 < advarsel/70,976,939,947 < advarselen/976 < advarselens/976 < advarsels/976 --- > advarsel/815,822,70,944,939,947 643,648d638 < advarslen/976 < advarslens/976 < advarsler/976 < advarslerne/976 < advarslernes < advarslers/976 672a663 > advokatbistand/193,70,976 969a961 > affekthandling/70,73,7,976 1024,1033c1016 < afføringsmiddel/70,976 < afføringsmiddelet/976 < afføringsmiddelets/976 < afføringsmiddels/976 < afføringsmidler/976 < afføringsmidlerne/976 < afføringsmidlernes < afføringsmidlers/976 < afføringsmidlet/976 < afføringsmidlets/976 --- > afføringsmiddel/815,70,944,828 1060a1044 > afghanerpels/20,7,70,976 1181c1165,1166 < afhjælpning/70,73,7,976 --- > afhjælpning/70,73,7,976,939,947 > afhjælpningsproces/46,70,976 1311,1320c1296 < afkørsel/70,976,939,947 < afkørselen/976 < afkørselens/976 < afkørsels/976 < afkørslen/976 < afkørslens/976 < afkørsler/976 < afkørslerne/976 < afkørslernes < afkørslers/976 --- > afkørsel/815,822,70,944,939,947 1419c1395 < aflønning/70,73,7,976 --- > aflønning/70,73,7,976,939,947 1427,1436c1403 < afløvningsmiddel/70,976 < afløvningsmiddelet/976 < afløvningsmiddelets/976 < afløvningsmiddels/976 < afløvningsmidler/976 < afløvningsmidlerne/976 < afløvningsmidlernes < afløvningsmidlers/976 < afløvningsmidlet/976 < afløvningsmidlets/976 --- > afløvningsmiddel/815,70,944,828 1773,1782c1740 < afskrivningsregel/70,976 < afskrivningsregelen/976 < afskrivningsregelens/976 < afskrivningsregels/976 < afskrivningsreglen/976 < afskrivningsreglens/976 < afskrivningsregler/976 < afskrivningsreglerne/976 < afskrivningsreglernes < afskrivningsreglers/976 --- > afskrivningsregel/815,822,70,944 1788,1797c1746 < afskrækkelsesmiddel/70,976 < afskrækkelsesmiddelet/976 < afskrækkelsesmiddelets/976 < afskrækkelsesmiddels/976 < afskrækkelsesmidler/976 < afskrækkelsesmidlerne/976 < afskrækkelsesmidlernes < afskrækkelsesmidlers/976 < afskrækkelsesmidlet/976 < afskrækkelsesmidlets/976 --- > afskrækkelsesmiddel/815,70,944,828 1957,1966c1906 < afspændingsmiddel/70,976 < afspændingsmiddelet/976 < afspændingsmiddelets/976 < afspændingsmiddels/976 < afspændingsmidler/976 < afspændingsmidlerne/976 < afspændingsmidlernes < afspændingsmidlers/976 < afspændingsmidlet/976 < afspændingsmidlets/976 --- > afspændingsmiddel/815,70,944,828 2509,2518c2449 < agertidsel/70,976 < agertidselen/976 < agertidselens/976 < agertidsels/976 < agertidslen/976 < agertidslens/976 < agertidsler/976 < agertidslerne/976 < agertidslernes < agertidslers/976 --- > agertidsel/815,822,70,944 2532c2463 < agglutinerende --- > agglutinere/6,143,148 2883a2815 > akryl/194,70,976,941,947 2889c2821 < aksel/70,976,941,947 --- > aksel/815,822,70,944,941,947 2891,2892d2822 < akselen/976 < akselens/976 2897d2826 < aksels/976 2907,2912d2835 < akslen/976 < akslens/976 < aksler/976 < akslerne/976 < akslernes < akslers/976 3077c3000 < alarm/70,73,7,976 --- > alarm/70,73,7,976,941,947 3161a3085 > aldersrelateret/70,915,976 3395a3320 > alkoholafhængig/913,70,366,976 3405c3330 < alkoholbehandling/70,73,7,976 --- > alkoholbehandling/70,73,7,976,939,947 3426a3352 > alkoholvane/70,73,7,976 4006a3933 > amalgamplombe/70,73,7,976 4750,4753c4677 < anførsel/70,976 < anførselen/976 < anførselens/976 < anførsels/976 --- > anførsel/815,822,70,944 4755,4760d4678 < anførslen/976 < anførslens/976 < anførsler/976 < anførslerne/976 < anførslernes < anførslers/976 4890,4899c4808 < angrebsvinkel/70,976 < angrebsvinkelen/976 < angrebsvinkelens/976 < angrebsvinkels/976 < angrebsvinklen/976 < angrebsvinklens/976 < angrebsvinkler/976 < angrebsvinklerne/976 < angrebsvinklernes < angrebsvinklers/976 --- > angrebsvinkel/815,822,70,944 5047c4956 < ankel/70,976 --- > ankel/815,822,70,944,941,947 5049,5050d4957 < ankelen/976 < ankelens/976 5053d4959 < ankels/976 5055a4962 > ankelstøvle/70,73,7,976 5088,5093d4994 < anklen/976 < anklens/976 < ankler/976 < anklerne/976 < anklernes < anklers/976 5529,5538c5430,5431 < ansigtsmuskel/70,976 < ansigtsmuskelen/976 < ansigtsmuskelens/976 < ansigtsmuskels/976 < ansigtsmusklen/976 < ansigtsmusklens/976 < ansigtsmuskler/976 < ansigtsmusklerne/976 < ansigtsmusklernes < ansigtsmusklers/976 --- > ansigtsmuskel/815,822,70,944 > ansigtspleje/193,70,976 5712a5606 > ansættelsessituation/70,73,7,976 5835,5844c5729 < antikonceptionsmiddel/70,976 < antikonceptionsmiddelet/976 < antikonceptionsmiddelets/976 < antikonceptionsmiddels/976 < antikonceptionsmidler/976 < antikonceptionsmidlerne/976 < antikonceptionsmidlernes < antikonceptionsmidlers/976 < antikonceptionsmidlet/976 < antikonceptionsmidlets/976 --- > antikonceptionsmiddel/815,70,944,828 6022c5907 < anæstesi/70,73,7,976 --- > anæstesi/70,73,7,976,941,947 6072,6075c5957 < apostel/70,976 < apostelen/976 < apostelens/976 < apostels/976 --- > apostel/822,70 6077,6079c5959,5960 < apostle/976 < apostlen/976 < apostlene/976 --- > apostle > apostlene 6081,6082c5962 < apostlens/976 < apostles/976 --- > apostles 6105c5985,5986 < apparatjik/193,70,976 --- > apparatjik/46,70,976 > apparatsvømning/193,70,976 6154d6034 < applicere 6243a6124 > arabisksproget/70,915,976 6375c6256 < arbejdskraft/193,70,976 --- > arbejdskraft/193,70,976,941,947 6377,6386c6258 < arbejdskraftmangel/70,976 < arbejdskraftmangelen/976 < arbejdskraftmangelens/976 < arbejdskraftmangels/976 < arbejdskraftmanglen/976 < arbejdskraftmanglens/976 < arbejdskraftmangler/976 < arbejdskraftmanglerne/976 < arbejdskraftmanglernes < arbejdskraftmanglers/976 --- > arbejdskraftmangel/815,822,70,944 6402a6275,6278 > arbejdsløshedsdagpenge/70,976 > arbejdsløshedsdagpengene/976 > arbejdsløshedsdagpengenes > arbejdsløshedsdagpenges/976 6405a6282,6286 > arbejdsløshedskurve/70,73,7,976 > arbejdsløshedsområde/70,10,73,976 > arbejdsløshedsperiode/70,73,7,976 > arbejdsløshedsproblem/70,10,73,976 > arbejdsløshedsprocent/70,73,7,976 6406a6288,6289 > arbejdsløshedsstatistik/46,70,976 > arbejdsløshedstal/70,254,976 6413,6422c6296 < arbejdsmangel/70,976 < arbejdsmangelen/976 < arbejdsmangelens/976 < arbejdsmangels/976 < arbejdsmanglen/976 < arbejdsmanglens/976 < arbejdsmangler/976 < arbejdsmanglerne/976 < arbejdsmanglernes < arbejdsmanglers/976 --- > arbejdsmangel/822,70 6441c6315 < arbejdsmiljø/70,10,73,976 --- > arbejdsmiljø/70,10,73,976,941,947 6446a6321 > arbejdsmiljørepræsentant/70,73,7,976 6496c6371 < arbejdsskade/70,73,7,976 --- > arbejdsskade/70,73,7,976,941,947 6531,6540c6406 < arbejdstidsregel/70,976 < arbejdstidsregelen/976 < arbejdstidsregelens/976 < arbejdstidsregels/976 < arbejdstidsreglen/976 < arbejdstidsreglens/976 < arbejdstidsregler/976 < arbejdstidsreglerne/976 < arbejdstidsreglernes < arbejdstidsreglers/976 --- > arbejdstidsregel/815,822,70,944 6686c6552 < arkitektur/70,73,7,976 --- > arkitektur/70,73,7,976,941,947 6788,6797c6654 < armmuskel/70,976 < armmuskelen/976 < armmuskelens/976 < armmuskels/976 < armmusklen/976 < armmusklens/976 < armmuskler/976 < armmusklerne/976 < armmusklernes < armmusklers/976 --- > armmuskel/815,822,70,944 6935a6793 > artistnummer/70,85,10,976 6981,6990c6839 < arveonkel/70,976 < arveonkelen/976 < arveonkelens/976 < arveonkels/976 < arveonklen/976 < arveonklens/976 < arveonkler/976 < arveonklerne/976 < arveonklernes < arveonklers/976 --- > arveonkel/815,822,70,944 7051a6901 > ascendant/70,73,7,976 7072c6922 < asfalt/193,70,976 --- > asfalt/193,70,976,941,947 7200,7209c7050 < aspargeskartoffel/70,976 < aspargeskartoffelen/976 < aspargeskartoffelens/976 < aspargeskartoffels/976 < aspargeskartoflen/976 < aspargeskartoflens/976 < aspargeskartofler/976 < aspargeskartoflerne/976 < aspargeskartoflernes < aspargeskartoflers/976 --- > aspargeskartoffel/815,822,70,944 7617d7457 < attenårs 7813a7654 > autogenerere/6,143,148 8260,8269c8101 < bagageregel/70,976 < bagageregelen/976 < bagageregelens/976 < bagageregels/976 < bagagereglen/976 < bagagereglens/976 < bagageregler/976 < bagagereglerne/976 < bagagereglernes < bagagereglers/976 --- > bagageregel/815,822,70,944 8272,8281c8104 < bagaksel/70,976 < bagakselen/976 < bagakselens/976 < bagaksels/976 < bagakslen/976 < bagakslens/976 < bagaksler/976 < bagakslerne/976 < bagakslernes < bagakslers/976 --- > bagaksel/815,822,70,944 8331,8340c8154 < bagekartoffel/70,976 < bagekartoffelen/976 < bagekartoffelens/976 < bagekartoffels/976 < bagekartoflen/976 < bagekartoflens/976 < bagekartofler/976 < bagekartoflerne/976 < bagekartoflernes < bagekartoflers/976 --- > bagekartoffel/815,822,70,944 8520a8335 > bagsædepassager/70,73,7,976 8649,8658c8464 < balanceaksel/70,976 < balanceakselen/976 < balanceakselens/976 < balanceaksels/976 < balanceakslen/976 < balanceakslens/976 < balanceaksler/976 < balanceakslerne/976 < balanceakslernes < balanceakslers/976 --- > balanceaksel/815,822,70,944 8768a8575 > ballonudvidelse/70,73,7,976 8806,8815c8613 < bambusmøbel/70,976 < bambusmøbelet/976 < bambusmøbelets/976 < bambusmøbels/976 < bambusmøbler/976 < bambusmøblerne/976 < bambusmøblernes < bambusmøblers/976 < bambusmøblet/976 < bambusmøblets/976 --- > bambusmøbel/815,70,944,828 8846a8645 > bandekultur/70,73,7,976 9067c8866 < barbering/70,73,7,976 --- > barbering/70,73,7,976,939,947 9163,9172c8962 < barnecykel/70,976 < barnecykelen/976 < barnecykelens/976 < barnecykels/976 < barnecykl < barnecyklen/976 < barnecyklens/976 < barnecykler/976 < barnecyklerne/976 < barnecyklers/976 --- > barnecykel/815,822,70,944 9186,9195c8976 < barnefødsel/70,976 < barnefødselen/976 < barnefødselens/976 < barnefødsels/976 < barnefødslen/976 < barnefødslens/976 < barnefødsler/976 < barnefødslerne/976 < barnefødslernes/976 < barnefødslers/976 --- > barnefødsel/815,822,70,944 9336,9338c9117 < barsel/70,976,939,947 < barselen/976 < barselens/976 --- > barsel/815,822,70,944,939,947 9340d9118 < barsels/976 9371,9376d9148 < barslen/976 < barslens/976 < barsler/976 < barslerne/976 < barslernes < barslers/976 9409c9181 < baseball/190,976 --- > baseball/190,976,941,947 9527,9533c9299,9301 < basunengel/70,976 < basunengelen/976 < basunengelens/976 < basunengels/976 < basunengle/976 < basunenglen/976 < basunenglene/976 --- > basunengel/822,70 > basunengle > basunenglene 9535,9536c9303 < basunenglens/976 < basunengles/976 --- > basunengles 9550a9318 > batchkørsel/815,822,70,944 9636a9405 > beachvolleyball/190,976 9645c9414 < bearbejdning/70,73,7,976 --- > bearbejdning/70,73,7,976,939,947 9732,9741c9501 < bedeskamlen/976 < bedeskamlens/976 < bedeskamler/976 < bedeskamlerne/976 < bedeskamlernes < bedeskamlers/976 < bedeskammel/70,976 < bedeskammelen/976 < bedeskammelens/976 < bedeskammels/976 --- > bedeskammel/815,822,70,944 9879,9888c9639 < bedøvelsesmiddel/70,976 < bedøvelsesmiddelet/976 < bedøvelsesmiddelets/976 < bedøvelsesmiddels/976 < bedøvelsesmidler/976 < bedøvelsesmidlerne/976 < bedøvelsesmidlernes < bedøvelsesmidlers/976 < bedøvelsesmidlet/976 < bedøvelsesmidlets/976 --- > bedøvelsesmiddel/815,70,944,828 9983,9992c9734 < befordringsmiddel/70,976 < befordringsmiddelet/976 < befordringsmiddelets/976 < befordringsmiddels/976 < befordringsmidler/976 < befordringsmidlerne/976 < befordringsmidlernes < befordringsmidlers/976 < befordringsmidlet/976 < befordringsmidlets/976 --- > befordringsmiddel/815,70,944,828 10027a9770 > befængt/913,70,366,976 10109a9853 > begravelseshjælp/193,70,976 10241a9986 > behagesyg/913,70,366,976 10257a10003 > behandlingsgaranti/70,73,7,976 10379,10382c10125 < beklik < beklikke < beklikkede < beklikkedes --- > beklikke/6,143,148 10384,10389d10126 < beklikkende < beklikkendes < beklikker < beklikkes < beklikket < beklikkets 10435,10444c10172 < bekæmpelsesmiddel/70,976 < bekæmpelsesmiddelet/976 < bekæmpelsesmiddelets/976 < bekæmpelsesmiddels/976 < bekæmpelsesmidler/976 < bekæmpelsesmidlerne/976 < bekæmpelsesmidlernes < bekæmpelsesmidlers/976 < bekæmpelsesmidlet/976 < bekæmpelsesmidlets/976 --- > bekæmpelsesmiddel/815,70,944,828 10668,10671c10396 < bengel/70,976 < bengelen/976 < bengelens/976 < bengels/976 --- > bengel/815,822,70,944 10673,10678d10397 < benglen/976 < benglens/976 < bengler/976 < benglerne/976 < benglernes < benglers/976 10707,10716c10426 < benmuskel/70,976 < benmuskelen/976 < benmuskelens/976 < benmuskels/976 < benmusklen/976 < benmusklens/976 < benmuskler/976 < benmusklerne/976 < benmusklernes < benmusklers/976 --- > benmuskel/815,822,70,944 10774,10783c10484 < benzindæksel/70,976 < benzindækselet/976 < benzindækselets/976 < benzindæksels/976 < benzindæksler/976 < benzindækslerne/976 < benzindækslernes < benzindækslers/976 < benzindækslet/976 < benzindækslets/976 --- > benzindæksel/815,70,944,828 10795,10804c10496 < benzintilførsel/70,976 < benzintilførselen/976 < benzintilførselens/976 < benzintilførsels/976 < benzintilførslen/976 < benzintilførslens/976 < benzintilførsler/976 < benzintilførslerne/976 < benzintilførslernes < benzintilførslers/976 --- > benzintilførsel/815,822,70,944 11208,11217c10900 < beskyttelsesmiddel/70,976 < beskyttelsesmiddelet/976 < beskyttelsesmiddelets/976 < beskyttelsesmiddels/976 < beskyttelsesmidler/976 < beskyttelsesmidlerne/976 < beskyttelsesmidlernes < beskyttelsesmidlers/976 < beskyttelsesmidlet/976 < beskyttelsesmidlets/976 --- > beskyttelsesmiddel/815,70,944,828 11218a10902,10905 > beskyttelsespenge/70,976 > beskyttelsespengene/976 > beskyttelsespengenes > beskyttelsespenges/976 11240a10928 > beskæftigelsessystem/70,10,73,976 11423,11432c11111 < bestillingsseddel/70,976 < bestillingsseddelen/976 < bestillingsseddelens/976 < bestillingsseddels/976 < bestillingssedlen/976 < bestillingssedlens/976 < bestillingssedler/976 < bestillingssedlerne/976 < bestillingssedlernes < bestillingssedlers/976 --- > bestillingsseddel/815,822,70,944 11658a11338 > betalingsgebyr/70,10,73,976 11661,11670c11341 < betalingsmiddel/70,976 < betalingsmiddelet/976 < betalingsmiddelets/976 < betalingsmiddels/976 < betalingsmidler/976 < betalingsmidlerne/976 < betalingsmidlernes < betalingsmidlers/976 < betalingsmidlet/976 < betalingsmidlets/976 --- > betalingsmiddel/815,70,944,828 11872,11881c11543 < bevidsthedstærskel/70,976 < bevidsthedstærskelen/976 < bevidsthedstærskelens/976 < bevidsthedstærskels/976 < bevidsthedstærsklen/976 < bevidsthedstærsklens/976 < bevidsthedstærskler/976 < bevidsthedstærsklerne/976 < bevidsthedstærsklernes < bevidsthedstærsklers/976 --- > bevidsthedstærskel/815,822,70,944 11948,11957c11610 < bevismiddel/70,976 < bevismiddelet/976 < bevismiddelets/976 < bevismiddels/976 < bevismidler/976 < bevismidlerne/976 < bevismidlernes < bevismidlers/976 < bevismidlet/976 < bevismidlets/976 --- > bevismiddel/815,70,944,828 12174d11826 < bidragydende 12180,12183c11832 < bidsel/70,976,941,947 < bidselet/976 < bidselets/976 < bidsels/976 --- > bidsel/815,70,944,828,941,947 12185,12190d11833 < bidsler/976 < bidslerne/976 < bidslernes < bidslers/976 < bidslet/976 < bidslets/976 12336,12345c11979 < bilkørsel/70,976 < bilkørselen/976 < bilkørselens/976 < bilkørsels/976 < bilkørslen/976 < bilkørslens/976 < bilkørsler/976 < bilkørslerne/976 < bilkørslernes < bilkørslers/976 --- > bilkørsel/815,822,70,944 12628,12637c12262 < bindemiddel/70,976 < bindemiddelet/976 < bindemiddelets/976 < bindemiddels/976 < bindemidler/976 < bindemidlerne/976 < bindemidlernes < bindemidlers/976 < bindemidlet/976 < bindemidlets/976 --- > bindemiddel/815,70,944,828 12654,12663c12279 < bindsel/70,976 < bindselet/976 < bindselets/976 < bindsels/976 < bindsler/976 < bindslerne/976 < bindslernes < bindslers/976 < bindslet/976 < bindslets/976 --- > bindsel/815,70,944,828 12705a12322 > bintjekartoffel/815,822,70,944 12714,12723c12331 < biobrændsel/70,976 < biobrændselet/976 < biobrændselets/976 < biobrændsels/976 < biobrændsler/976 < biobrændslerne/976 < biobrændslernes < biobrændslers/976 < biobrændslet/976 < biobrændslets/976 --- > biobrændsel/815,70,944,828 13014,13023c12622 < bittermandel/70,976 < bittermandelen/976 < bittermandelens/976 < bittermandels/976 < bittermandlen/976 < bittermandlens/976 < bittermandler/976 < bittermandlerne/976 < bittermandlernes < bittermandlers/976 --- > bittermandel/815,822,70,944 13217d12815 < bjæf 13219,13227c12817 < bjæffe < bjæffede < bjæffedes < bjæffende < bjæffendes < bjæffer < bjæffes < bjæffet < bjæffets --- > bjæffe/6,143,148 13361d12950 < blaf 13363,13368c12952 < blaffe < blaffede < blaffedes < blaffende < blaffendes < blaffer --- > blaffe/6,143,148 13370,13372d12953 < blaffes < blaffet < blaffets 13487,13496c13068 < blegemiddel/70,976 < blegemiddelet/976 < blegemiddelets/976 < blegemiddels/976 < blegemidler/976 < blegemidlerne/976 < blegemidlernes < blegemidlers/976 < blegemidlet/976 < blegemidlets/976 --- > blegemiddel/815,70,944,828 13653a13226,13227 > blindstikprop/46,70,976 > blindsting/70,252,10,976 13657a13232,13234 > blindtest/70,7,252,976 > blindtests' > blindtests/976 13761,13770c13338 < blodmangel/70,976 < blodmangelen/976 < blodmangelens/976 < blodmangels/976 < blodmanglen/976 < blodmanglens/976 < blodmangler/976 < blodmanglerne/976 < blodmanglernes < blodmanglers/976 --- > blodmangel/822,70 13836,13845c13404 < blodtilførsel/70,976 < blodtilførselen/976 < blodtilførselens/976 < blodtilførsels/976 < blodtilførslen/976 < blodtilførslens/976 < blodtilførsler/976 < blodtilførslerne/976 < blodtilførslernes < blodtilførslers/976 --- > blodtilførsel/815,822,70,944 14008,14017c13567 < blomsterstængel/70,976 < blomsterstængelen/976 < blomsterstængelens/976 < blomsterstængels/976 < blomsterstænglen/976 < blomsterstænglens/976 < blomsterstængler/976 < blomsterstænglerne/976 < blomsterstænglernes < blomsterstænglers/976 --- > blomsterstængel/815,822,70,944 14072d13621 < bluf 14074,14079c13623 < bluffe < bluffede < bluffedes < bluffende < bluffendes < bluffer --- > bluffe/6,143,148 14081,14083d13624 < bluffes < bluffet < bluffets 14150,14159c13691 < blykapsel/70,976 < blykapselen/976 < blykapselens/976 < blykapsels/976 < blykapslen/976 < blykapslens/976 < blykapsler/976 < blykapslerne/976 < blykapslernes < blykapslers/976 --- > blykapsel/815,822,70,944 14203,14212c13735 < blærehalskirtel/70,976 < blærehalskirtelen/976 < blærehalskirtelens/976 < blærehalskirtels/976 < blærehalskirtlen/976 < blærehalskirtlens/976 < blærehalskirtler/976 < blærehalskirtlerne/976 < blærehalskirtlernes < blærehalskirtlers/976 --- > blærehalskirtel/815,822,70,944 14262,14271c13785 < blødgøringsmiddel/70,976 < blødgøringsmiddelet/976 < blødgøringsmiddelets/976 < blødgøringsmiddels/976 < blødgøringsmidler/976 < blødgøringsmidlerne/976 < blødgøringsmidlernes < blødgøringsmidlers/976 < blødgøringsmidlet/976 < blødgøringsmidlets/976 --- > blødgøringsmiddel/815,70,944,828 14435,14444c13949 < bodegamuskel/70,976 < bodegamuskelen/976 < bodegamuskelens/976 < bodegamuskels/976 < bodegamusklen/976 < bodegamusklens/976 < bodegamuskler/976 < bodegamusklerne/976 < bodegamusklernes < bodegamusklers/976 --- > bodegamuskel/815,822,70,944 14522a14028 > bogdepot/70,10,73,976 14537a14044 > bogføringsmæssig/913,70,366,976 14701a14209 > boligareal/70,10,73,976 14728,14737c14236 < boligmangel/70,976 < boligmangelen/976 < boligmangelens/976 < boligmangels/976 < boligmanglen/976 < boligmanglens/976 < boligmangler/976 < boligmanglerne/976 < boligmanglernes < boligmanglers/976 --- > boligmangel/822,70 14764a14264 > boligtilskud/70,254,976 14848,14857c14348 < bombetruslen/976 < bombetruslens/976 < bombetrusler/976 < bombetruslerne/976 < bombetruslernes < bombetruslers/976 < bombetrussel/70,976 < bombetrusselen/976 < bombetrusselens/976 < bombetrussels/976 --- > bombetrussel/815,822,70,944 15021d14511 < booke 15108c14598,14599 < borg/20,7,70,976 --- > borg/20,7,70,976,941,947 > borganlæg/70,254,976,939,947 15182a14674 > borgport/20,7,70,976 15227a14720 > bortadoption/70,73,7,976 15272,15281c14765 < bortførsel/70,976 < bortførselen/976 < bortførselens/976 < bortførsels/976 < bortførslen/976 < bortførslens/976 < bortførsler/976 < bortførslerne/976 < bortførslernes < bortførslers/976 --- > bortførsel/815,822,70,944 15306,15315c14790 < bortkørsel/70,976 < bortkørselen/976 < bortkørselens/976 < bortkørsels/976 < bortkørslen/976 < bortkørslens/976 < bortkørsler/976 < bortkørslerne/976 < bortkørslernes < bortkørslers/976 --- > bortkørsel/815,822,70,944 15610a15086 > brancheanalyse/70,73,7,976 15748c15224,15225 < brandsår/70,252,10,976 --- > brandsår/70,252,10,976,939,947 > brandsårsafdeling/70,73,7,976 15755a15233 > brandvarm/913,70,366,976 15784,15793c15262 < brasekartoffel/70,976 < brasekartoffelen/976 < brasekartoffelens/976 < brasekartoffels/976 < brasekartoflen/976 < brasekartoflens/976 < brasekartofler/976 < brasekartoflerne/976 < brasekartoflernes < brasekartoflers/976 --- > brasekartoffel/815,822,70,944 15880a15350 > bredrygget/70,915,976 16005,16014c15475 < brevstemmeseddel/70,976 < brevstemmeseddelen/976 < brevstemmeseddelens/976 < brevstemmeseddels/976 < brevstemmesedlen/976 < brevstemmesedlens/976 < brevstemmesedler/976 < brevstemmesedlerne/976 < brevstemmesedlernes < brevstemmesedlers/976 --- > brevstemmeseddel/815,822,70,944 16133,16138d15593 < brislen/976 < brislens/976 < brisler/976 < brislerne/976 < brislernes < brislers/976 16141,16144c15596 < brissel/70,976 < brisselen/976 < brisselens/976 < brissels/976 --- > brissel/815,822,70,944,941,947 16186d15637 < brod 16189c15640 < brodde --- > brodde/6,143,148 16191,16192d15641 < broddede < broddedes 16194,16195d15642 < broddende < broddendes 16199,16202d15645 < brodder < broddes < broddet < broddets 16438,16447c15881 < brudeskamlen/976 < brudeskamlens/976 < brudeskamler/976 < brudeskamlerne/976 < brudeskamlernes < brudeskamlers/976 < brudeskammel/70,976 < brudeskammelen/976 < brudeskammelens/976 < brudeskammels/976 --- > brudeskammel/815,822,70,944 16505a15940 > brugermanual/70,73,7,976 16507a15943 > brugeroplevelse/70,73,7,976 16645a16082,16083 > bruschetta/70,7,252,976 > bruschetta/70,73,7,976 16756a16195 > bryggekedel/815,822,70,944 16766a16206 > bryggerkedel/815,822,70,944 16846,16855c16286 < brystmuskel/70,976 < brystmuskelen/976 < brystmuskelens/976 < brystmuskels/976 < brystmusklen/976 < brystmusklens/976 < brystmuskler/976 < brystmusklerne/976 < brystmusklernes < brystmusklers/976 --- > brystmuskel/815,822,70,944 16874,16883c16305 < bræddestabel/70,976 < bræddestabelen/976 < bræddestabelens/976 < bræddestabels/976 < bræddestablen/976 < bræddestablens/976 < bræddestabler/976 < bræddestablerne/976 < bræddestablernes < bræddestablers/976 --- > bræddestabel/815,822,70,944 16891,16900c16313 < brækmiddel/70,976 < brækmiddelet/976 < brækmiddelets/976 < brækmiddels/976 < brækmidler/976 < brækmidlerne/976 < brækmidlernes < brækmidlers/976 < brækmidlet/976 < brækmidlets/976 --- > brækmiddel/815,70,944,828 16903a16317 > brændbar/913,70,366,976 16931,16940c16345 < brændestabel/70,976 < brændestabelen/976 < brændestabelens/976 < brændestabels/976 < brændestablen/976 < brændestablens/976 < brændestabler/976 < brændestablerne/976 < brændestablernes < brændestablers/976 --- > brændestabel/815,822,70,944 16967,16970c16372 < brændsel/70,976,939,947 < brændselet/976 < brændselets/976 < brændsels/976 --- > brændsel/815,70,944,828,939,947 16976,16981d16377 < brændsler/976 < brændslerne/976 < brændslernes < brændslers/976 < brændslet/976 < brændslets/976 17071,17080c16467 < brønddæksel/70,976 < brønddækselet/976 < brønddækselets/976 < brønddæksels/976 < brønddæksler/976 < brønddækslerne/976 < brønddækslernes < brønddækslers/976 < brønddækslet/976 < brønddækslets/976 --- > brønddæksel/815,70,944,828 17146,17155c16533 < budcykel/70,976 < budcykelen/976 < budcykelens/976 < budcykels/976 < budcyklen/976 < budcyklens/976 < budcykler/976 < budcyklerne/976 < budcyklernes < budcyklers/976 --- > budcykel/815,822,70,944 17159a16538 > buddhisttempel/815,70,944,828 17240,17249c16619 < bugmuskel/70,976 < bugmuskelen/976 < bugmuskelens/976 < bugmuskels/976 < bugmusklen/976 < bugmusklens/976 < bugmuskler/976 < bugmusklerne/976 < bugmusklernes < bugmusklers/976 --- > bugmuskel/815,822,70,944 17255,17264c16625 < bugspytkirtel/70,976 < bugspytkirtelen/976 < bugspytkirtelens/976 < bugspytkirtels/976 < bugspytkirtlen/976 < bugspytkirtlens/976 < bugspytkirtler/976 < bugspytkirtlerne/976 < bugspytkirtlernes < bugspytkirtlers/976 --- > bugspytkirtel/815,822,70,944 17436a16798 > bundesligahår/194,70,976 17461c16823 < bundfældning/70,73,7,976 --- > bundfældning/70,73,7,976,939,947 17643,17652c17005 < buskørsel/70,976 < buskørselen/976 < buskørselens/976 < buskørsels/976 < buskørslen/976 < buskørslens/976 < buskørsler/976 < buskørslerne/976 < buskørslernes < buskørslers/976 --- > buskørsel/815,822,70,944 17812,17821c17165 < bycykel/70,976 < bycykelen/976 < bycykelens/976 < bycykels/976 < bycyklen/976 < bycyklens/976 < bycykler/976 < bycyklerne/976 < bycyklernes < bycyklers/976 --- > bycykel/815,822,70,944 17937c17281 < byggesag/70,73,7,976 --- > byggesag/70,73,7,976,939,947 18010,18019c17354 < bykørsel/70,976 < bykørselen/976 < bykørselens/976 < bykørsels/976 < bykørslen/976 < bykørslens/976 < bykørsler/976 < bykørslerne/976 < bykørslernes < bykørslers/976 --- > bykørsel/815,822,70,944 18316,18318c17651 < bændel/70,976 < bændelet/976 < bændelets/976 --- > bændel/815,70,944,828 18320c17653 < bændels/976 --- > bændelorm/70,7,252,976 18322,18327d17654 < bændler/976 < bændlerne/976 < bændlernes < bændlers/976 < bændlet/976 < bændlets/976 18434d17760 < bøf 18436,18441c17762,17763 < bøffe < bøffede < bøffedes < bøffel/70,976 < bøffelen/976 < bøffelens/976 --- > bøffe/6,143,148 > bøffel/815,822,70,944,941,947 18444,18456d17765 < bøffels/976 < bøffende < bøffendes < bøffer < bøffes < bøffet < bøffets < bøflen/976 < bøflens/976 < bøfler/976 < bøflerne/976 < bøflernes < bøflers/976 18507,18516c17816 < bøjemuskel/70,976 < bøjemuskelen/976 < bøjemuskelens/976 < bøjemuskels/976 < bøjemusklen/976 < bøjemusklens/976 < bøjemuskler/976 < bøjemusklerne/976 < bøjemusklernes < bøjemusklers/976 --- > bøjemuskel/815,822,70,944 18694,18702c17994 < børnecykel/976 < børnecykelen/976 < børnecykelens/976 < børnecykels/976 < børnecyklen/976 < børnecyklens/976 < børnecykler/976 < børnecyklerne/976 < børnecyklers/976 --- > børnecykel/815,822,70,944 18716,18717c18008,18009 < børnefødsler/976 < børnefødslerne/976 --- > børnefødsler > børnefødslerne 18719c18011 < børnefødslers/976 --- > børnefødslers 18726a18019,18023 > børnehavebarn/194,70,976 > børnehavebørn/976 > børnehavebørnene/976 > børnehavebørnenes > børnehavebørns/976 18778,18787c18075 < børnemøbel/70,976 < børnemøbelet/976 < børnemøbelets/976 < børnemøbels/976 < børnemøbler/976 < børnemøblerne/976 < børnemøblernes < børnemøblers/976 < børnemøblet/976 < børnemøblets/976 --- > børnemøbel/815,70,944,828 18917a18206 > børsdag/20,7,70,976 18945,18954c18234 < børstepensel/70,976 < børstepenselen/976 < børstepenselens/976 < børstepensels/976 < børstepenslen/976 < børstepenslens/976 < børstepensler/976 < børstepenslerne/976 < børstepenslernes < børstepenslers/976 --- > børstepensel/815,822,70,944 19283c18563 < campus/46,70,976 --- > campus/46,70,976,941,947 19335a18616 > captcha/70,73,7,976 19701,19710c18982 < centervinkel/70,976 < centervinkelen/976 < centervinkelens/976 < centervinkels/976 < centervinklen/976 < centervinklens/976 < centervinkler/976 < centervinklerne/976 < centervinklernes < centervinklers/976 --- > centervinkel/815,822,70,944 19713c18985 < centiliter/115,70,85,976 --- > centiliter/70,7,252,976 19716c18988 < centimeter/115,70,85,976 --- > centimeter/70,7,252,976 19947d19218 < changeant 20032a19304 > charterdestination/70,73,7,976 20041a19314,19316 > chartreuse/193,70,976 > chartreusefarvet/70,915,976 > chartreusekniv/20,7,70,976 20502c19777 < cirkel/70,976,941,947 --- > cirkel/815,822,70,944,941,947 20505,20506d19779 < cirkelen/976 < cirkelens/976 20511d19783 < cirkels/976 20513a19786 > cirkelspark/70,252,10,976 20516,20521d19788 < cirklen/976 < cirklens/976 < cirkler/976 < cirklerne/976 < cirklernes < cirklers/976 20648c19915 < civilforsvar/70,252,10,976 --- > civilforsvar/70,252,10,976,939,947 20841c20108 < cocktailene.cocktails'/976 --- > cocktailene/976 20858a20126 > cocktails'/976 20942c20210 < computergrafik/193,70,976 --- > computergrafik/737,70,976 20951c20219 < computerspil/70,254,976 --- > computerspil/70,254,976,939,947 20989a20258 > cookiepolitik/46,70,976 21139,21148c20408 < cremefarv < cremefarvede/976 < cremefarvedere/976 < cremefarvederes/976 < cremefarvedes/976 < cremefarvedest/976 < cremefarvedeste/976 < cremefarvedestes/976 < cremefarvet/976 < cremefarvets/976 --- > cremefarvet/70,915,976 21186c20446 < cross/190,976 --- > cross/70,254,976,941,947 21188,21197c20448 < crosscykel/70,976 < crosscykelen/976 < crosscykelens/976 < crosscykels/976 < crosscyklen/976 < crosscyklens/976 < crosscykler/976 < crosscyklerne/976 < crosscyklernes < crosscyklers/976 --- > crosscykel/815,822,70,944 21202a20454,20457 > cruise/194,70,976,941,947 > cruise/6,143,148 > cruisene/976 > cruisenes 21203a20459,20460 > cruises/976 > cruises'/976 21216a20474 > culparegel/822,70 21273c20531 < cykel/70,976,941,947 --- > cykel/815,822,70,944,941,947 21290,21291d20547 < cykelen/976 < cykelens/976 21295a20552 > cykelhold/70,252,10,976 21311d20567 < cykels/976 21317a20574 > cykelsko/70,7,252,976 21327c20584 < cykelsti/70,73,7,976 --- > cykelsti/70,73,7,976,941,947 21346d20602 < cyklernes 21615,21624c20871 < dagpengeregel/70,976 < dagpengeregelen/976 < dagpengeregelens/976 < dagpengeregels/976 < dagpengereglen/976 < dagpengereglens/976 < dagpengeregler/976 < dagpengereglerne/976 < dagpengereglernes < dagpengereglers/976 --- > dagpengeregel/815,822,70,944 21716c20963 < dagtilbud/70,254,976 --- > dagtilbud/70,254,976,939,947 21811,21820c21058 < damecykel/70,976 < damecykelen/976 < damecykelens/976 < damecykels/976 < damecyklen/976 < damecyklens/976 < damecykler/976 < damecyklerne/976 < damecyklernes < damecyklers/976 --- > damecykel/815,822,70,944 21896,21905c21134 < dampkedel/70,976 < dampkedelen/976 < dampkedelens/976 < dampkedels/976 < dampkedlen/976 < dampkedlens/976 < dampkedler/976 < dampkedlerne/976 < dampkedlernes < dampkedlers/976 --- > dampkedel/815,822,70,944 21922d21150 < dampspærre/193,70,976 21923a21152 > dampspærre/70,73,7,976 22012a21242 > danmarksmesterskab/70,10,73,976 22138d21367 < dansk/193,70,976,941,947 22145a21375,21376 > dansken/193,70,976 > danskens 22286,22295c21517 < dataoverførsel/70,976 < dataoverførselen/976 < dataoverførselens/976 < dataoverførsels/976 < dataoverførslen/976 < dataoverførslens/976 < dataoverførsler/976 < dataoverførslerne/976 < dataoverførslernes < dataoverførslers/976 --- > dataoverførsel/815,822,70,944,939,947 22334,22343c21556,21557 < datostempel/70,976 < datostempelet/976 < datostempelets/976 < datostempels/976 < datostempler/976 < datostemplerne/976 < datostemplernes < datostemplers/976 < datostemplet/976 < datostemplets/976 --- > datostempel/815,70,944,828 > datoveksel/815,822,70,944 22429a21644 > debatmøde/70,10,73,976 22502c21717 < deciliter/115,70,85,976 --- > deciliter/70,7,252,976 22509c21724 < decimeter/115,70,85,976 --- > decimeter/70,7,252,976 22631a21847 > dekaliter/70,7,252,976 22633c21849 < dekameter/115,70,85,976 --- > dekameter/70,7,252,976 22874c22090 < demens/193,70,976 --- > demens/193,70,976,941,947 22946,22955c22162 < denatureringsmiddel/70,976 < denatureringsmiddelet/976 < denatureringsmiddelets/976 < denatureringsmiddels/976 < denatureringsmidler/976 < denatureringsmidlerne/976 < denatureringsmidlernes < denatureringsmidlers/976 < denatureringsmidlet/976 < denatureringsmidlets/976 --- > denatureringsmiddel/815,70,944,828 23085c22292,22296 < derby/70,10,73,976 --- > derby/70,10,73,976,941,947 > derbyhat/70,133,976 > derbyløb/70,252,10,976 > derbysejr/20,7,70,976 > derbyvinder/20,7,70,976 23185a22397 > descendant/70,73,7,976 23216,23225c22428 < desinfektionsmiddel/70,976 < desinfektionsmiddelet/976 < desinfektionsmiddelets/976 < desinfektionsmiddels/976 < desinfektionsmidler/976 < desinfektionsmidlerne/976 < desinfektionsmidlernes < desinfektionsmidlers/976 < desinfektionsmidlet/976 < desinfektionsmidlets/976 --- > desinfektionsmiddel/815,70,944,828 23229,23238c22432 < desinficeringsmiddel/70,976 < desinficeringsmiddelet/976 < desinficeringsmiddelets/976 < desinficeringsmiddels/976 < desinficeringsmidler/976 < desinficeringsmidlerne/976 < desinficeringsmidlernes < desinficeringsmidlers/976 < desinficeringsmidlet/976 < desinficeringsmidlets/976 --- > desinficeringsmiddel/815,70,944,828 23277,23286c22471 < dessertgaffel/70,976 < dessertgaffelen/976 < dessertgaffelens/976 < dessertgaffels/976 < dessertgaflen/976 < dessertgaflens/976 < dessertgafler/976 < dessertgaflerne/976 < dessertgaflernes < dessertgaflers/976 --- > dessertgaffel/815,822,70,944 23508c22693 < dialekt/70,73,7,976 --- > dialekt/70,73,7,976,941,947 23548c22733 < dianetik/193,70,976 --- > dianetik/737,70,976 23680,23683c22865,22866 < digel/70,976 < digelen/976 < digelens/976 < digels/976 --- > digel/815,822,70,944 > digelag/70,252,10,976 23698,23703d22880 < diglen/976 < diglens/976 < digler/976 < diglerne/976 < diglernes < diglers/976 23766a22944,22946 > dildoparties' > dildoparties/976 > dildoparty/70,10,73,976 23792c22972,22974 < dimission/70,73,7,976 --- > dimission/70,73,7,976,939,947 > dimissionsfest/70,73,7,976 > dimissionstale/70,73,7,976 23860a23043 > diplomeret/70,915,976 23928,23935c23111 < disciplinarmiddel/70,976 < disciplinarmiddels/976 < disciplinarmidler/976 < disciplinarmidlerne/976 < disciplinarmidlernes < disciplinarmidlers/976 < disciplinarmidlet/976 < disciplinarmidlets/976 --- > disciplinarmiddel/815,70,944,828 23940,23946c23116 < disciplinærmiddel/70,976 < disciplinærmiddels/976 < disciplinærmidler/976 < disciplinærmidlerne/976 < disciplinærmidlernes < disciplinærmidlers/976 < disciplinærmidlet/976 --- > disciplinærmiddel/815,70,944,828 23993c23163 < diskonto/70,73,7,976 --- > diskonto/70,73,7,976,941,947 24203a23374,23375 > div. > div/1111 24276a23449 > Djursland/699,55,939,947 24472d23644 < dog/46,70,976 24576,24585c23748 < dollarseddel/70,976 < dollarseddelen/976 < dollarseddelens/976 < dollarseddels/976 < dollarsedlen/976 < dollarsedlens/976 < dollarsedler/976 < dollarsedlerne/976 < dollarsedlernes < dollarsedlers/976 --- > dollarseddel/815,822,70,944 24648,24655c23811 < domkapitel/70,976 < domkapitels/976 < domkapitler/976 < domkapitlerne/976 < domkapitlernes < domkapitlers/976 < domkapitlet/976 < domkapitlets/976 --- > domkapitel/815,70,944,828 24734a23891 > donkeykedel/815,822,70,944 24767a23925,23926 > dopamin/193,70,976,941,947 > dopamin/194,70,976,941,947 24841,24850c24000 < dosmerseddel/70,976 < dosmerseddelen/976 < dosmerseddelens/976 < dosmerseddels/976 < dosmersedlen/976 < dosmersedlens/976 < dosmersedler/976 < dosmersedlerne/976 < dosmersedlernes < dosmersedlers/976 --- > dosmerseddel/815,822,70,944 24890,24891c24040 < download/70,976,941,947 < downloade --- > download/194,70,976,941,947 24892a24042,24043 > downloadene/976 > downloadenes 24894c24045,24046 < downloads --- > downloads/976 > downloads'/976 25183,25192c24335 < driftsmiddel/70,976 < driftsmiddelet/976 < driftsmiddelets/976 < driftsmiddels/976 < driftsmidler/976 < driftsmidlerne/976 < driftsmidlernes < driftsmidlers/976 < driftsmidlet/976 < driftsmidlets/976 --- > driftsmiddel/815,70,944,828 25290d24432 < dril 25293,25297c24435 < drille/941,947 < drillede < drilledes < drillende < drillendes --- > drille/6,143,148,941,947 25300d24437 < driller 25302d24438 < drilles 25304,25305d24439 < drillet < drillets 25331,25340c24465 < drivaksel/70,976 < drivakselen/976 < drivakselens/976 < drivaksels/976 < drivakslen/976 < drivakslens/976 < drivaksler/976 < drivakslerne/976 < drivakslernes < drivakslers/976 --- > drivaksel/815,822,70,944 25364c24489 < drivhus/10,70,20,976 --- > drivhus/10,70,20,976,941,947 25377,25386c24502 < drivmiddel/70,976 < drivmiddelet/976 < drivmiddelets/976 < drivmiddels/976 < drivmidler/976 < drivmidlerne/976 < drivmidlernes < drivmidlers/976 < drivmidlet/976 < drivmidlets/976 --- > drivmiddel/815,70,944,828 25627a24744 > drømmemål/70,252,10,976 25706d24822 < dub 25708,25716c24824 < dubbe < dubbede < dubbedes < dubbende < dubbendes < dubber < dubbes < dubbet < dubbets --- > dubbe/6,143,148 25815d24922 < duk 25817,25818c24924,24925 < dukke/70,73,7,976 < dukke/941,947 --- > dukke/6,143,148 > dukke/70,73,7,976,941,947 25828,25829d24934 < dukkede < dukkedes 25833,25835d24937 < dukkende < dukkendes < dukker 25838d24939 < dukkes 25840d24940 < dukket 25842d24941 < dukkets 26082d25180 < dyberegående 26172a25271 > dykkerur/10,70,20,976 26289c25388 < dyreornamentik/193,70,976 --- > dyreornamentik/737,70,976 26394a25494 > dyvel/815,822,70,944 26460,26463c25560 < dæksel/70,976 < dækselet/976 < dækselets/976 < dæksels/976 --- > dæksel/815,70,944,828 26465,26470d25561 < dæksler/976 < dækslerne/976 < dækslernes < dækslers/976 < dækslet/976 < dækslets/976 26587,26596c25678 < dødfødsel/70,976 < dødfødselen/976 < dødfødselens/976 < dødfødsels/976 < dødfødslen/976 < dødfødslens/976 < dødfødsler/976 < dødfødslerne/976 < dødfødslernes < dødfødslers/976 --- > dødfødsel/815,822,70,944 26664,26670c25746,25748 < dødsengel/70,976 < dødsengelen/976 < dødsengelens/976 < dødsengels/976 < dødsengle/976 < dødsenglen/976 < dødsenglene/976 --- > dødsengel/822,70 > dødsengle > dødsenglene 26672,26673c25750 < dødsenglens/976 < dødsengles/976 --- > dødsengles 26696a25774 > dødshjælper/20,7,70,976 26721,26730c25799 < dødskørsel/70,976 < dødskørselen/976 < dødskørselens/976 < dødskørsels/976 < dødskørslen/976 < dødskørslens/976 < dødskørsler/976 < dødskørslerne/976 < dødskørslernes < dødskørslers/976 --- > dødskørsel/815,822,70,944 26776,26785c25845 < dødstruslen/976 < dødstruslens/976 < dødstrusler/976 < dødstruslerne/976 < dødstruslernes < dødstruslers/976 < dødstrussel/70,976 < dødstrusselen/976 < dødstrusselens/976 < dødstrussels/976 --- > dødstrussel/815,822,70,944 26806a25867 > døgnbehandling/70,73,7,976 26911,26920c25972 < dørhængsel/70,976 < dørhængselet/976 < dørhængselets/976 < dørhængsels/976 < dørhængsler/976 < dørhængslerne/976 < dørhængslernes < dørhængslers/976 < dørhængslet/976 < dørhængslets/976 --- > dørhængsel/815,70,944,828 26945,26954c25997 < dørtærskel/70,976 < dørtærskelen/976 < dørtærskelens/976 < dørtærskels/976 < dørtærsklen/976 < dørtærsklens/976 < dørtærskler/976 < dørtærsklerne/976 < dørtærsklernes < dørtærsklers/976 --- > dørtærskel/815,822,70,944 27051,27052c26094 < ebola/193,70,976 < ebolaen --- > ebola/193,70,976,941,947 27066c26108 < ecru --- > ecru/941,947 27167d26208 < editere 27246c26287 < effektivisering/70,73,7,976 --- > effektivisering/70,73,7,976,939,947 27580,27583c26621 < efterspørgsel/70,976 < efterspørgselen/976 < efterspørgselens/976 < efterspørgsels/976 --- > efterspørgsel/815,822,70,944,939,947 27585,27590d26622 < efterspørgslen/976 < efterspørgslens/976 < efterspørgsler/976 < efterspørgslerne/976 < efterspørgslernes < efterspørgslers/976 27625a26658 > eftertræder/20,7,70,976 27740,27749c26773 < egetræsmøbel/70,976 < egetræsmøbelet/976 < egetræsmøbelets/976 < egetræsmøbels/976 < egetræsmøbler/976 < egetræsmøblerne/976 < egetræsmøblernes < egetræsmøblers/976 < egetræsmøblet/976 < egetræsmøblets/976 --- > egetræsmøbel/815,70,944,828 27955c26979 < ejerlejlighed/70,73,7,976 --- > ejerlejlighed/70,73,7,976,939,947 28105,28107c27129 < eksempel/70,976 < eksempelet/976 < eksempelets/976 --- > eksempel/815,70,944,828 28109d27130 < eksempels/976 28113,28118d27133 < eksempler/976 < eksemplerne/976 < eksemplernes < eksemplers/976 < eksemplet/976 < eksemplets/976 28247a27263 > eksplementvinkel/815,822,70,944 28289d27304 < eksportere 28345a27361 > ekstension/70,73,7,976 28381a27398 > ekstraregning/70,73,7,976 28525,28534c27542 < elefantsnabel/70,976 < elefantsnabelen/976 < elefantsnabelens/976 < elefantsnabels/976 < elefantsnablen/976 < elefantsnablens/976 < elefantsnabler/976 < elefantsnablerne/976 < elefantsnablernes < elefantsnablers/976 --- > elefantsnabel/815,822,70,944 28640c27648 < elevation/70,73,7,976 --- > elevation/70,73,7,976,939,947 28641a27650 > elevatorblik/70,132,976 28649a27659 > elevmedbestemmelse/193,70,976 28650a27661 > elevrepræsentant/70,73,7,976 28651a27663 > elevrådsarbejde/194,70,976 28660a27673 > elevrådsrepræsentant/70,73,7,976 28669c27682 < elfenbensfarvet/70,976 --- > elfenbensfarvet/70,915,976 28715c27728 < eliksir/70,73,7,976 --- > eliksir/70,73,7,976,941,947 28750a27764 > elitesport/193,70,976 28765,28774c27779 < elkabel/70,976 < elkabelet/976 < elkabelets/976 < elkabels/976 < elkabler/976 < elkablerne/976 < elkablernes < elkablers/976 < elkablet/976 < elkablets/976 --- > elkabel/815,70,944,828,941,947 28777,28787c27782 < el-kedel/70,976 < elkedel/976 < elkedelen/976 < elkedelens/976 < elkedels/976 < elkedlen/976 < elkedlens/976 < elkedler/976 < elkedlerne/976 < elkedlernes < elkedlers/976 --- > elkedel/815,822,70,944 28961,28970c27956 < elskovsmiddel/70,976 < elskovsmiddelet/976 < elskovsmiddelets/976 < elskovsmiddels/976 < elskovsmidler/976 < elskovsmidlerne/976 < elskovsmidlernes < elskovsmidlers/976 < elskovsmidlet/976 < elskovsmidlets/976 --- > elskovsmiddel/815,70,944,828 28998a27985 > elvarme/193,70,976 29039d28025 < em 29206,29208c28192 < emme < emmede < emmedes --- > emme/6,143,148 29215,29216d28198 < emmende < emmendes 29219d28200 < emmer 29230,29232d28210 < emmes < emmet < emmets 29250a28229 > emneord/70,252,10,976 29312a28292 > encifret/70,915,976 29472,29481c28452 < energioverførsel/70,976 < energioverførselen/976 < energioverførselens/976 < energioverførsels/976 < energioverførslen/976 < energioverførslens/976 < energioverførsler/976 < energioverførslerne/976 < energioverførslernes < energioverførslers/976 --- > energioverførsel/815,822,70,944 29496,29505c28467 < energitilførsel/70,976 < energitilførselen/976 < energitilførselens/976 < energitilførsels/976 < energitilførslen/976 < energitilførslens/976 < energitilførsler/976 < energitilførslerne/976 < energitilførslernes < energitilførslers/976 --- > energitilførsel/815,822,70,944 29571c28533 < engel/70,976 --- > engel/822,70 29576,29577d28537 < engelen/976 < engelens/976 29582d28541 < engels/976 29604a28564 > engelsksproget/70,915,976 29626a28587 > engle 29628d28588 < engle/976 29642,29643c28602 < englen/976 < englene/976 --- > englene 29645d28603 < englens/976 29647c28605 < engles/976 --- > engles 29887c28845 < ensilage/193,70,976 --- > ensilage/193,70,976,941,947 29898a28857 > ensproget/70,915,976 29977c28936 < entreprise/70,73,7,976 --- > entreprise/70,73,7,976,941,947 30004c28963 < enzym/70,10,73,976 --- > enzym/70,10,73,976,941,947 30052c29011 < epilepsi/193,70,976 --- > epilepsi/193,70,976,941,947 30147,30156c29106 < ergometercykel/70,976 < ergometercykelen/976 < ergometercykelens/976 < ergometercykels/976 < ergometercyklen/976 < ergometercyklens/976 < ergometercykler/976 < ergometercyklerne/976 < ergometercyklernes < ergometercyklers/976 --- > ergometercykel/815,822,70,944 30204a29155 > erhvervsgrund/20,7,70,976 30214a29166 > erhvervskunde/70,73,7,976 30215a29168 > erhvervslejemål/70,252,10,976 30216a29170 > erhvervslokale/70,10,73,976 30261c29215 < erhvervsskole/70,73,7,976 --- > erhvervsskole/70,73,7,976,941,947 30271a29226 > erhvervsøkonom/70,73,7,976 30418d29372 < erstat 30427,30436c29381 < erstatningsregel/70,976 < erstatningsregelen/976 < erstatningsregelens/976 < erstatningsregels/976 < erstatningsreglen/976 < erstatningsreglens/976 < erstatningsregler/976 < erstatningsreglerne/976 < erstatningsreglernes < erstatningsreglers/976 --- > erstatningsregel/815,822,70,944 30439,30447c29384 < erstatte < erstattede < erstattedes < erstattende < erstattendes < erstatter < erstattes < erstattet < erstattets --- > erstatte/6,143,148 30486a29424,29425 > escort/193,70,976,941,947 > escortbureau/70,10,73,976 30487a29427 > escortservice/70,73,7,976 30696a29637,29642 > etbindsleksika/976 > etbindsleksikaene/976 > etbindsleksikaenes > etbindsleksikas/976 > etbindsleksikon/70,10,73,976 > etbindsudgave/70,73,7,976 30701a29648 > etcifret/70,915,976 30763a29711 > etsproget/70,915,976 30764a29713,29717 > etsprogsordbog/193,70,976 > etsprogsordbøger/976 > etsprogsordbøgerne/976 > etsprogsordbøgernes > etsprogsordbøgers/976 30789a29743 > etårsperiode/70,73,7,976 31005,31014c29959 < evighedslængsel/70,976 < evighedslængselen/976 < evighedslængselens/976 < evighedslængsels/976 < evighedslængslen/976 < evighedslængslens/976 < evighedslængsler/976 < evighedslængslerne/976 < evighedslængslernes < evighedslængslers/976 --- > evighedslængsel/822,70 31084a30030 > excenteraksel/815,822,70,944 31317c30263 < fagforening/70,73,7,976 --- > fagforening/70,73,7,976,939,947 31377a30324 > faglighed/70,73,7,976,939,947 31411a30359 > fagperson/70,73,7,976 31482c30430 < fakkel/70,976 --- > fakkel/815,822,70,944,941,947 31484,31486d30431 < fakkelen/976 < fakkelens/976 < fakkels/976 31489,31494d30433 < faklen/976 < faklens/976 < fakler/976 < faklerne/976 < faklernes < faklers/976 31529c30468 < falafel/190,976 --- > falafel/815,822,70,944 31659d30597 < familie/46,70,976,941,947 31691a30630 > familieferie/70,73,7,976 31692a30632 > familiefilm/70,7,252,976 31748a30689 > familierådgivning/70,73,7,976 31895c30836 < fantasy/190,976 --- > fantasy/190,976,941,947 32173a31115 > fasanjagt/70,73,7,976 32249a31192,31194 > fastelavnstøj/194,70,976 > fastelavnsuge/70,73,7,976 > fasteperiode/70,73,7,976 32290c31235 < fastholdelse/70,73,7,976 --- > fastholdelse/70,73,7,976,939,947 32692,32701c31637 < fedtkirtel/70,976 < fedtkirtelen/976 < fedtkirtelens/976 < fedtkirtels/976 < fedtkirtlen/976 < fedtkirtlens/976 < fedtkirtler/976 < fedtkirtlerne/976 < fedtkirtlernes < fedtkirtlers/976 --- > fedtkirtel/815,822,70,944 32794c31730 < fejlfinding/70,73,7,976 --- > fejlfinding/70,73,7,976,939,947 32936a31873 > femcifret/70,915,976 32960,32975c31897,31898 < femhundredekroneseddel/70,976 < femhundredekroneseddels/976 < femhundredekronesedlen/976 < femhundredekronesedlens/976 < femhundredekronesedler/976 < femhundredekronesedlerne/976 < femhundredekronesedlernes < femhundredekronesedlers/976 < femhundredkroneseddel/70,976 < femhundredkroneseddels/976 < femhundredkronesedlen/976 < femhundredkronesedlens/976 < femhundredkronesedler/976 < femhundredkronesedlerne/976 < femhundredkronesedlernes < femhundredkronesedlers/976 --- > femhundredekroneseddel/815,822,70,944 > femhundredkroneseddel/815,822,70,944 33042d31964 < femtenårs 33287a32210 > festryger/20,7,70,976 33565a32489 > filmproducer/20,7,70,976 33577,33586c32501 < filmstrimlen/976 < filmstrimlens/976 < filmstrimler/976 < filmstrimlerne/976 < filmstrimlernes < filmstrimlers/976 < filmstrimmel/70,976 < filmstrimmelen/976 < filmstrimmelens/976 < filmstrimmels/976 --- > filmstrimmel/815,822,70,944 33602c32517 < filosofi/70,73,7,976 --- > filosofi/70,73,7,976,941,947 33617a32533 > filterkaffe/70,73,7,976 33807c32723 < fingeraftryk/70,254,976 --- > fingeraftryk/70,254,976,939,947 33872c32788,32789 < finlandssvensk/193,70,976 --- > finlandsk/917,976 > finlandssvensk/190,976 34005,34013c32922 < fintsnit < fintsnitte < fintsnittede < fintsnittedes < fintsnittende < fintsnittendes < fintsnitter < fintsnittes < fintsnittet --- > fintsnitte/6,143,148 34015d32923 < fintsnittets 34042a32951 > fircifret/70,915,976 34083a32993 > firecifret/70,915,976 34168,34171c33078 < firepersoners/976 < firepersoners'/976 < firepersonerses/976 < firepersoners's/976 --- > firepersoners 34293a33201 > firmalogo/70,10,73,976 34302a33211,33212 > firmware/193,70,976 > firmware/194,70,976 34306,34308d33215 < firpersoners'/976 < firpersonerses/976 < firpersoners's/976 34360d33266 < firsårs 34477,34486c33383 < fiskekedel/70,976 < fiskekedelen/976 < fiskekedelens/976 < fiskekedels/976 < fiskekedlen/976 < fiskekedlens/976 < fiskekedler/976 < fiskekedlerne/976 < fiskekedlernes < fiskekedlers/976 --- > fiskekedel/815,822,70,944 34516a33414 > fiskepålæg/70,736,976 34608,34613c33506 < fiskeyngel/70,976 < fiskeyngelen/976 < fiskeyngelens/976 < fiskeyngels/976 < fiskeynglen/976 < fiskeynglens --- > fiskeyngel/822,70 34648a33542 > fitnessinstruktør/70,73,7,976 34770d33663 < fjermer 34917d33809 < fjortenårs 34924a33817 > fjumreår/70,252,10,976 34987,34996c33880,33881 < fladmejsel/70,976 < fladmejselen/976 < fladmejselens/976 < fladmejsels/976 < fladmejslen/976 < fladmejslens/976 < fladmejsler/976 < fladmejslerne/976 < fladmejslernes < fladmejslers/976 --- > fladmast/913,70,366,976 > fladmejsel/815,822,70,944 35278,35287c34163 < fletmøbel/70,976 < fletmøbelet/976 < fletmøbelets/976 < fletmøbels/976 < fletmøbler/976 < fletmøblerne/976 < fletmøblernes < fletmøblers/976 < fletmøblet/976 < fletmøblets/976 --- > fletmøbel/815,70,944,828 35482,35484c34358 < floskel/70,976 < floskelen/976 < floskelens/976 --- > floskel/815,822,70,944 35486,35492d34359 < floskels/976 < flosklen/976 < flosklens/976 < floskler/976 < flosklerne/976 < flosklernes < flosklers/976 35586,35595c34453 < flusmiddel/70,976 < flusmiddelet/976 < flusmiddelets/976 < flusmiddels/976 < flusmidler/976 < flusmidlerne/976 < flusmidlernes < flusmidlers/976 < flusmidlet/976 < flusmidlets/976 --- > flusmiddel/815,70,944,828 35677a34536 > flysæde/70,10,73,976 35682a34542 > flyttebajer/20,7,70,976 35684a34545 > flyttefirma/70,10,73,976 35704a34566 > flyulykke/70,73,7,976 35737a34600 > flyverkonstabel/815,822,70,944 35794a34658 > flæskefars/193,70,976 35844a34709 > fløjlsjakke/70,73,7,976 35860,35869c34725 < fløjtekedel/70,976 < fløjtekedelen/976 < fløjtekedelens/976 < fløjtekedels/976 < fløjtekedlen/976 < fløjtekedlens/976 < fløjtekedler/976 < fløjtekedlerne/976 < fløjtekedlernes < fløjtekedlers/976 --- > fløjtekedel/815,822,70,944 35991a34848,34849 > fodbolddommer/20,7,70,976 > fodbolddragt/70,73,7,976 36013a34872 > fodboldtrup/46,70,976 36036,36045c34895 < fodermiddel/70,976 < fodermiddelet/976 < fodermiddelets/976 < fodermiddels/976 < fodermidler/976 < fodermidlerne/976 < fodermidlernes < fodermidlers/976 < fodermidlet/976 < fodermidlets/976 --- > fodermiddel/815,70,944,828 36058a34909 > fodgængersti/70,73,7,976 36091,36100c34942 < fodskamlen/976 < fodskamlens/976 < fodskamler/976 < fodskamlerne/976 < fodskamlernes < fodskamlers/976 < fodskammel/70,976 < fodskammelen/976 < fodskammelens/976 < fodskammels/976 --- > fodskammel/815,822,70,944 36112a34955 > fodtrin/70,252,10,976 36150a34994 > fokusområde/70,10,73,976 36159a35004 > foldecykel/815,822,70,944 36212a35058 > folkefjende/70,73,7,976 36298a35145 > folkeskoleklasse/70,73,7,976 36301a35149 > folkeskolereform/70,73,7,976 36402,36411c35250 < fonduegaffel/70,976 < fonduegaffelen/976 < fonduegaffelens/976 < fonduegaffels/976 < fonduegaflen/976 < fonduegaflens/976 < fonduegafler/976 < fonduegaflerne/976 < fonduegaflernes < fonduegaflers/976 --- > fonduegaffel/815,822,70,944 36436c35275 < foraenes/976 --- > foraenes 36442,36451c35281 < foraksel/70,976 < forakselen/976 < forakselens/976 < foraksels/976 < forakslen/976 < forakslens/976 < foraksler/976 < forakslerne/976 < forakslernes < forakslers/976 --- > foraksel/815,822,70,944 36724a35555 > forbrugsbeskatning/193,70,976 36742a35574 > forbrydersyndikat/70,10,73,976 37209,37212c36041 < forespørgsel/70,976,939,947 < forespørgselen/976 < forespørgselens/976 < forespørgsels/976 --- > forespørgsel/815,822,70,944,939,947 37214,37219d36042 < forespørgslen/976 < forespørgslens/976 < forespørgsler/976 < forespørgslerne/976 < forespørgslernes < forespørgslers/976 37464,37473c36287 < forgaffel/70,976 < forgaffelen/976 < forgaffelens/976 < forgaffels/976 < forgaflen/976 < forgaflens/976 < forgafler/976 < forgaflerne/976 < forgaflernes < forgaflers/976 --- > forgaffel/815,822,70,944 37633,37642c36447 < forhandlingsregel/70,976 < forhandlingsregelen/976 < forhandlingsregelens/976 < forhandlingsregels/976 < forhandlingsreglen/976 < forhandlingsreglens/976 < forhandlingsregler/976 < forhandlingsreglerne/976 < forhandlingsreglernes < forhandlingsreglers/976 --- > forhandlingsregel/815,822,70,944 37685,37694c36490 < forholdsregel/70,976 < forholdsregelen/976 < forholdsregelens/976 < forholdsregels/976 < forholdsreglen/976 < forholdsreglens/976 < forholdsregler/976 < forholdsreglerne/976 < forholdsreglernes < forholdsreglers/976 --- > forholdsregel/815,822,70,944 37777a36574,36575 > fork. > fork/1111 38407c37205 < fornuft/193,70,976 --- > fornuft/193,70,976,939,947 38562a37361 > forretningsbetingelse/70,73,7,976 38614c37413 < forretningsrejse/70,73,7,976 --- > forretningsrejse/70,73,7,976,941,947 38722,38731c37521 < forsigtighedsregel/70,976 < forsigtighedsregelen/976 < forsigtighedsregelens/976 < forsigtighedsregels/976 < forsigtighedsreglen/976 < forsigtighedsreglens/976 < forsigtighedsregler/976 < forsigtighedsreglerne/976 < forsigtighedsreglernes < forsigtighedsreglers/976 --- > forsigtighedsregel/815,822,70,944 38760a37551 > forsikringsordning/70,73,7,976 38903a37695 > forskudsopgørelse/70,73,7,976 38933a37726 > forskærerkniv/20,7,70,976 39246c38039 < forsvar/70,252,10,976 --- > forsvar/70,252,10,976,939,947 39267,39276c38060 < forsvarsmiddel/70,976 < forsvarsmiddelet/976 < forsvarsmiddelets/976 < forsvarsmiddels/976 < forsvarsmidler/976 < forsvarsmidlerne/976 < forsvarsmidlernes < forsvarsmidlers/976 < forsvarsmidlet/976 < forsvarsmidlets/976 --- > forsvarsmiddel/815,70,944,828 39629a38414,38415 > fortsætter/20,7,70,976,941,947 > fortsættersprog/70,252,10,976 39650,39659c38436 < fortyndingsmiddel/70,976 < fortyndingsmiddelet/976 < fortyndingsmiddelets/976 < fortyndingsmiddels/976 < fortyndingsmidler/976 < fortyndingsmidlerne/976 < fortyndingsmidlernes < fortyndingsmidlers/976 < fortyndingsmidlet/976 < fortyndingsmidlets/976 --- > fortyndingsmiddel/815,70,944,828 39736c38513 < foruddefinere --- > foruddefinere/6,143,148 39827,39833c38604 < forum/70,976 < forumer/976 < forumerne/976 < forumernes/976 < forumers/976 < forumet/976 < forumets/976 --- > forum/70,9,976,941,947 39835,39841d38605 < forummer/976 < forummerne/976 < forummernes < forummers/976 < forummet/976 < forummets/976 < forums/976 39903,39906c38667 < forvarsel/70,976 < forvarselet/976 < forvarselets/976 < forvarsels/976 --- > forvarsel/815,822,70,944 39908,39913d38668 < forvarsler/976 < forvarslerne/976 < forvarslernes < forvarslers/976 < forvarslet/976 < forvarslets/976 40053d38807 < forældre/70,976 40054a38809 > forældre/942,946 40276,40285c39031 < fradragsregel/70,976 < fradragsregelen/976 < fradragsregelens/976 < fradragsregels/976 < fradragsreglen/976 < fradragsreglens/976 < fradragsregler/976 < fradragsreglerne/976 < fradragsreglernes < fradragsreglers/976 --- > fradragsregel/815,822,70,944 40370a39117 > fragtpris/70,73,7,976 40385a39133 > fraisefarvet/70,915,976 40409,40412c39157 < frakørsel/70,976 < frakørselen/976 < frakørselens/976 < frakørsels/976 --- > frakørsel/815,822,70,944,939,947 40414,40419d39158 < frakørslen/976 < frakørslens/976 < frakørsler/976 < frakørslerne/976 < frakørslernes < frakørslers/976 40492,40501c39231 < frankostempel/70,976 < frankostempelet/976 < frankostempelets/976 < frankostempels/976 < frankostempler/976 < frankostemplerne/976 < frankostemplernes < frankostemplers/976 < frankostemplet/976 < frankostemplets/976 --- > frankostempel/815,70,944,828 40532a39263 > fransksproget/70,915,976 41068,41087c39799,39800 < fremføringsmiddel/70,976 < fremføringsmiddelet/976 < fremføringsmiddelets/976 < fremføringsmiddels/976 < fremføringsmidler/976 < fremføringsmidlerne/976 < fremføringsmidlernes < fremføringsmidlers/976 < fremføringsmidlet/976 < fremføringsmidlets/976 < fremførsel/70,976 < fremførselen/976 < fremførselens/976 < fremførsels/976 < fremførslen/976 < fremførslens/976 < fremførsler/976 < fremførslerne/976 < fremførslernes < fremførslers/976 --- > fremføringsmiddel/815,70,944,828 > fremførsel/815,822,70,944 41269,41272c39982 < fremskaf < fremskaffe < fremskaffede < fremskaffedes --- > fremskaffe/6,143,148 41274,41279d39983 < fremskaffende < fremskaffendes < fremskaffer < fremskaffes < fremskaffet < fremskaffets 41925,41934c40629 < frispil < frispille < frispillede < frispilledes < frispillende < frispillendes < frispiller < frispilles < frispillet < frispillets --- > frispille/6,143,148 41969a40665 > frisørsaks/20,7,70,976 42361,42370c41057 < frøkapsel/70,976 < frøkapselen/976 < frøkapselens/976 < frøkapsels/976 < frøkapslen/976 < frøkapslens/976 < frøkapsler/976 < frøkapslerne/976 < frøkapslernes < frøkapslers/976 --- > frøkapsel/815,822,70,944 42507,42516c41194 < fugleskræmsel/70,976 < fugleskræmselet/976 < fugleskræmselets/976 < fugleskræmsels/976 < fugleskræmsler/976 < fugleskræmslerne/976 < fugleskræmslernes < fugleskræmslers/976 < fugleskræmslet/976 < fugleskræmslets/976 --- > fugleskræmsel/815,70,944,828 42798a41477 > funktionsnedsættelse/70,73,7,976 43010,43019c41689 < fyreseddel/70,976 < fyreseddelen/976 < fyreseddelens/976 < fyreseddels/976 < fyresedlen/976 < fyresedlens/976 < fyresedler/976 < fyresedlerne/976 < fyresedlernes < fyresedlers/976 --- > fyreseddel/815,822,70,944 43027,43036c41697 < fyringsseddel/70,976 < fyringsseddelen/976 < fyringsseddelens/976 < fyringsseddels/976 < fyringssedlen/976 < fyringssedlens/976 < fyringssedler/976 < fyringssedlerne/976 < fyringssedlernes < fyringssedlers/976 --- > fyringsseddel/815,822,70,944 43096c41757 < fyrværkeri/70,10,73,976 --- > fyrværkeri/70,10,73,976,941,947 43187a41849 > fælles 43189,43190d41850 < fælles/976 < fælles'/976 43210d41869 < fælleses 43218a41878 > fælleskontor/70,10,73,976 43234d41893 < fælles's/976 43266,43269c41925 < fængsel/70,976,939,947 < fængselet/976 < fængselets/976 < fængsels/976 --- > fængsel/815,70,944,828,939,947 43296,43301d41951 < fængsler/976 < fængslerne/976 < fængslernes < fængslers/976 < fængslet/976 < fængslets/976 43318c41968 < færdig/207,70,366,976 --- > færdig/913,70,366,976,941,947 43323,43331c41973 < færdigbyg < færdigbygge < færdigbyggede < færdigbyggedes < færdigbyggende < færdigbyggendes < færdigbygger < færdigbygges < færdigbygget --- > færdigbygge/6,143,148 43333d41974 < færdigbyggets 43348a41990 > færdighedsniveau/70,10,73,976 43372,43381c42014 < færdigspil < færdigspille < færdigspillede < færdigspilledes < færdigspillende < færdigspillendes < færdigspiller < færdigspilles < færdigspillet < færdigspillets --- > færdigspille/6,143,148 43398,43401c42031 < færdsel/70,976,939,947 < færdselen/976 < færdselens/976 < færdsels/976 --- > færdsel/822,70,939,947 43410,43419c42040 < færdselsregel/70,976 < færdselsregelen/976 < færdselsregelens/976 < færdselsregels/976 < færdselsreglen/976 < færdselsreglens/976 < færdselsregler/976 < færdselsreglerne/976 < færdselsreglernes < færdselsreglers/976 --- > færdselsregel/815,822,70,944 43428,43429d42048 < færdslen/976 < færdslens 43514c42133 < fødemiddel/70,976 --- > fødemiddel/815,70,944,828,941,947 43516,43524d42134 < fødemiddelet/976 < fødemiddelets/976 < fødemiddels/976 < fødemidler/976 < fødemidlerne/976 < fødemidlernes < fødemidlers/976 < fødemidlet/976 < fødemidlets/976 43580c42190 < fødsel/70,976,939,947 --- > fødsel/815,822,70,944,939,947 43582,43583d42191 < fødselen/976 < fødselens/976 43585d42192 < fødsels/976 43591a42199 > fødselsdagsbrev/10,70,20,976 43624,43629d42231 < fødslen/976 < fødslens/976 < fødsler/976 < fødslerne/976 < fødslernes < fødslers/976 43648a42251 > føleforstyrrelse/70,73,7,976 43710,43719c42313 < følgeseddel/70,976 < følgeseddelen/976 < følgeseddelens/976 < følgeseddels/976 < følgesedlen/976 < følgesedlens/976 < følgesedler/976 < følgesedlerne/976 < følgesedlernes < følgesedlers/976 --- > følgeseddel/815,822,70,944 43943c42537 < førtidspension/70,73,7,976,940,947 --- > førtidspension/70,73,7,976,939,947 44055a42650 > gadelys/70,252,10,976 44083c42678 < gaffel/70,976 --- > gaffel/815,822,70,944,941,947 44093,44094d42687 < gaffelen/976 < gaffelens/976 44096d42688 < gaffels/976 44111,44116d42702 < gaflen/976 < gaflens/976 < gafler/976 < gaflerne/976 < gaflernes < gaflers/976 44151c42737 < galakse/70,73,7,976 --- > galakse/70,73,7,976,941,947 44339c42925 < game/70,976 --- > game/70,252,10,976 44340a42927 > gamer/20,7,70,976 44347a42935 > gaming/193,70,976 44352a42941 > gamling/70,73,7,976 44629c43218 < gartneri/70,10,73,976 --- > gartneri/70,10,73,976,941,947 44641a43231 > gasbelysning/193,70,976 44672,44681c43262 < gaskedel/70,976 < gaskedelen/976 < gaskedelens/976 < gaskedels/976 < gaskedlen/976 < gaskedlens/976 < gaskedler/976 < gaskedlerne/976 < gaskedlernes < gaskedlers/976 --- > gaskedel/815,822,70,944 44762a43344 > gaveønske/70,10,73,976 44968,44977c43550 < geleringsmiddel/70,976 < geleringsmiddelet/976 < geleringsmiddelets/976 < geleringsmiddels/976 < geleringsmidler/976 < geleringsmidlerne/976 < geleringsmidlernes < geleringsmidlers/976 < geleringsmidlet/976 < geleringsmidlets/976 --- > geleringsmiddel/815,70,944,828 45098c43671 < gendannelse/70,73,7,976 --- > gendannelse/70,73,7,976,939,947 45181c43754 < generobring/70,73,7,976 --- > generobring/70,73,7,976,939,947 45225c43798 < genforening/70,73,7,976 --- > genforening/70,73,7,976,939,947 45275,45284c43848 < genfødsel/70,976 < genfødselen/976 < genfødselens/976 < genfødsels/976 < genfødslen/976 < genfødslens/976 < genfødsler/976 < genfødslerne/976 < genfødslernes < genfødslers/976 --- > genfødsel/815,822,70,944 45327a43892 > genindførsel/815,822,70,944 45337a43903 > genindlæggelse/70,73,7,976 45498,45507c44064 < gennemførsel/70,976 < gennemførselen/976 < gennemførselens/976 < gennemførsels/976 < gennemførslen/976 < gennemførslens/976 < gennemførsler/976 < gennemførslerne/976 < gennemførslernes < gennemførslers/976 --- > gennemførsel/815,822,70,944,939,947 45555,45564c44112 < gennemkørsel/70,976 < gennemkørselen/976 < gennemkørselens/976 < gennemkørsels/976 < gennemkørslen/976 < gennemkørslens/976 < gennemkørsler/976 < gennemkørslerne/976 < gennemkørslernes < gennemkørslers/976 --- > gennemkørsel/815,822,70,944,939,947 45969,45978c44517 < genoverførsel/70,976 < genoverførselen/976 < genoverførselens/976 < genoverførsels/976 < genoverførslen/976 < genoverførslens/976 < genoverførsler/976 < genoverførslerne/976 < genoverførslernes < genoverførslers/976 --- > genoverførsel/815,822,70,944 46222c44761 < geodata/70,254,976 --- > geodata/70,252,10,976 46522c45061 < gidsel/70,976 --- > gidsel/815,70,944,828,941,947 46524,46525d45062 < gidselet/976 < gidselets/976 46527d45063 < gidsels/976 46531,46536d45066 < gidsler/976 < gidslerne/976 < gidslernes < gidslers/976 < gidslet/976 < gidslets/976 46542,46551c45072 < giffel/70,976 < giffelen/976 < giffelens/976 < giffels/976 < giflen/976 < giflens/976 < gifler/976 < giflerne/976 < giflernes < giflers/976 --- > giffel/815,822,70,944 46673,46682c45194 < gigtmiddel/70,976 < gigtmiddelet/976 < gigtmiddelets/976 < gigtmiddels/976 < gigtmidler/976 < gigtmidlerne/976 < gigtmidlernes < gigtmidlers/976 < gigtmidlet/976 < gigtmidlets/976 --- > gigtmiddel/815,70,944,828 47018,47027c45530 < glaskuplen/976 < glaskuplens/976 < glaskupler/976 < glaskuplerne/976 < glaskuplernes < glaskuplers/976 < glaskuppel/70,976 < glaskuppelen/976 < glaskuppelens/976 < glaskuppels/976 --- > glaskuppel/815,822,70,944 47103,47112c45606 < glatførekørsel/70,976 < glatførekørselen/976 < glatførekørselens/976 < glatførekørsels/976 < glatførekørslen/976 < glatførekørslens/976 < glatførekørsler/976 < glatførekørslerne/976 < glatførekørslernes < glatførekørslers/976 --- > glatførekørsel/815,822,70,944 47115a45610 > glatkørsel/815,822,70,944 47174a45670 > glemmekasse/70,73,7,976 47179,47184c45675 < glemsel/70,976,939,947 < glemselen/976 < glemselens < glemsels/976 < glemslen/976 < glemslens/976 --- > glemsel/822,70,939,947 47216a45708 > glidecreme/70,73,7,976 47258a45751 > glissando/70,10,73,976 47269c45762 < globalisering/193,70,976 --- > globalisering/193,70,976,939,947 47371c45864,45865 < gluten/190,976 --- > gluten/190,976,941,947 > glutenallergi/70,73,7,976 47647a46142 > godtkøbsvare/70,73,7,976 47751c46246 < gourmet/70,73,7,976 --- > gourmet/70,73,7,976,941,947 47882,47891c46377 < grandonkel/70,976 < grandonkelen/976 < grandonkelens/976 < grandonkels/976 < grandonklen/976 < grandonklens/976 < grandonkler/976 < grandonklerne/976 < grandonklernes < grandonklers/976 --- > grandonkel/815,822,70,944 47971c46457 < gravemaskine/70,73,7,976 --- > gravemaskine/70,73,7,976,941,947 47991a46478,46480 > graviditetstest/70,7,252,976 > graviditetstests' > graviditetstests/976 48176,48179c46665 < griffel/70,976 < griffelen/976 < griffelens/976 < griffels/976 --- > griffel/815,822,70,944 48181,48186d46666 < griflen/976 < griflens/976 < grifler/976 < griflerne/976 < griflernes < griflers/976 48359c46839 < grovmotorik/193,70,976 --- > grovmotorik/737,70,976 48395,48404c46875 < gruekedel/70,976 < gruekedelen/976 < gruekedelens/976 < gruekedels/976 < gruekedlen/976 < gruekedlens/976 < gruekedler/976 < gruekedlerne/976 < gruekedlernes < gruekedlers/976 --- > gruekedel/815,822,70,944 48444c46915 < grundforløb/70,252,10,976 --- > grundforløb/70,252,10,976,939,947 48482c46953 < grundlovsstridig/207,70,366,976 --- > grundlovsstridig/913,70,366,976 48483a46955 > grundlovsændring/70,73,7,976 48498,48507c46970 < grundregel/70,976 < grundregelen/976 < grundregelens/976 < grundregels/976 < grundreglen/976 < grundreglens/976 < grundregler/976 < grundreglerne/976 < grundreglernes < grundreglers/976 --- > grundregel/815,822,70,944 48523c46986 < grundstof/70,9,976 --- > grundstof/70,9,976,941,947 48587,48596c47050 < gruppekørsel/70,976 < gruppekørselen/976 < gruppekørselens/976 < gruppekørsels/976 < gruppekørslen/976 < gruppekørslens/976 < gruppekørsler/976 < gruppekørslerne/976 < gruppekørslernes < gruppekørslers/976 --- > gruppekørsel/815,822,70,944 48609a47064 > gruppesekretær/70,73,7,976 48767c47222 < græsk/193,70,976,941,947 --- > græsk/190,976,941,947 49108,49117c47563 < gråpoplen/976 < gråpoplens/976 < gråpopler/976 < gråpoplerne/976 < gråpoplernes < gråpoplers/976 < gråpoppel/70,976 < gråpoppelen/976 < gråpoppelens/976 < gråpoppels/976 --- > gråpoppel/815,822,70,944 49531c47977 < gulerod/70,976 --- > gulerod/70,976,939,947 49598a48045 > gulvlampe/70,73,7,976 49695,49704c48142 < gummistempel/70,976 < gummistempelet/976 < gummistempelets/976 < gummistempels/976 < gummistempler/976 < gummistemplerne/976 < gummistemplernes < gummistemplers/976 < gummistemplet/976 < gummistemplets/976 --- > gummistempel/815,70,944,828 49776,49785c48214 < gurglemiddel/70,976 < gurglemiddelet/976 < gurglemiddelets/976 < gurglemiddels/976 < gurglemidler/976 < gurglemidlerne/976 < gurglemidlernes < gurglemidlers/976 < gurglemidlet/976 < gurglemidlets/976 --- > gurglemiddel/815,70,944,828 49841c48270 < guvernør/70,73,7,976 --- > guvernør/70,73,7,976,941,947 50077,50086c48506 < gældsfængsel/70,976 < gældsfængselet/976 < gældsfængselets/976 < gældsfængsels/976 < gældsfængsler/976 < gældsfængslerne/976 < gældsfængslernes < gældsfængslers/976 < gældsfængslet/976 < gældsfængslets/976 --- > gældsfængsel/815,70,944,828 50208,50217c48628 < gødningsmiddel/70,976 < gødningsmiddelet/976 < gødningsmiddelets/976 < gødningsmiddels/976 < gødningsmidler/976 < gødningsmidlerne/976 < gødningsmidlernes < gødningsmidlers/976 < gødningsmidlet/976 < gødningsmidlets/976 --- > gødningsmiddel/815,70,944,828 50723,50732c49134 < halshvirvel/70,976 < halshvirvelen/976 < halshvirvelens/976 < halshvirvels/976 < halshvirvlen/976 < halshvirvlens/976 < halshvirvler/976 < halshvirvlerne/976 < halshvirvlernes < halshvirvlers/976 --- > halshvirvel/815,822,70,944 50738,50747c49140 < halsmuskel/70,976 < halsmuskelen/976 < halsmuskelens/976 < halsmuskels/976 < halsmusklen/976 < halsmusklens/976 < halsmuskler/976 < halsmusklerne/976 < halsmusklernes < halsmusklers/976 --- > halsmuskel/815,822,70,944 50803,50812c49196,49197 < halvcirkel/70,976 < halvcirkelen/976 < halvcirkelens/976 < halvcirkels/976 < halvcirklen/976 < halvcirklens/976 < halvcirkler/976 < halvcirklerne/976 < halvcirklernes < halvcirklers/976 --- > halvcirkel/815,822,70,944 > halvcykel/815,822,70,944 50849d49233 < halvfemsårs 50858d49241 < halvfjerdsårs 50975,50984c49358 < halvonkel/70,976 < halvonkelen/976 < halvonkelens/976 < halvonkels/976 < halvonklen/976 < halvonklens/976 < halvonkler/976 < halvonklerne/976 < halvonklernes < halvonklers/976 --- > halvonkel/815,822,70,944 50987a49362 > halvpebret/70,915,976 51010a49386 > halvskaldet/70,915,976 51078,51087c49454 < halvtredskroneseddel/70,976 < halvtredskroneseddelen/976 < halvtredskroneseddelens/976 < halvtredskroneseddels/976 < halvtredskronesedlen/976 < halvtredskronesedlens/976 < halvtredskronesedler/976 < halvtredskronesedlerne/976 < halvtredskronesedlernes < halvtredskronesedlers/976 --- > halvtredskroneseddel/815,822,70,944 51299a49667 > handelsbetingelse/70,73,7,976 51445,51446c49813,49815 < handicap/70,976 < handicapidræt/46,70,976 --- > handicap/70,254,976,941,947 > handicapbolig/70,73,7,976 > handicapidræt/46,70,976,939,947 51448,51457c49817 < handicapkørsel/70,976 < handicapkørselen/976 < handicapkørselens/976 < handicapkørsels/976 < handicapkørslen/976 < handicapkørslens/976 < handicapkørsler/976 < handicapkørslerne/976 < handicapkørslernes < handicapkørslers/976 --- > handicapkørsel/815,822,70,944 51460,51461d49819 < handicappene/976 < handicappenes/976 51463,51464d49820 < handicappet/976 < handicappets/976 51465a49822 > handicaps' 51467a49825 > handikap/70,254,976,941,947 51469c49827,49829 < handikap/976 --- > handikapbolig/70,73,7,976 > handikapidræt/46,70,976,939,947 > handikapkørsel/815,822,70,944 51471,51472d49830 < handikappene/976 < handikappenes 51474,51476d49831 < handikappet/976 < handikappets/976 < handikaps/976 51891,51900c50246 < hasselbackkartoffel/70,976 < hasselbackkartoffelen/976 < hasselbackkartoffelens/976 < hasselbackkartoffels/976 < hasselbackkartoflen/976 < hasselbackkartoflens/976 < hasselbackkartofler/976 < hasselbackkartoflerne/976 < hasselbackkartoflernes < hasselbackkartoflers/976 --- > hasselbackkartoffel/815,822,70,944 52056a50403,50405 > havemenneske/70,10,73,976 > havemenneskene/976 > havemenneskenes 52061,52070c50410 < havemøbel/70,976 < havemøbelet/976 < havemøbelets/976 < havemøbels/976 < havemøbler/976 < havemøblerne/976 < havemøblernes < havemøblers/976 < havemøblet/976 < havemøblets/976 --- > havemøbel/815,70,944,828 52267a50608 > hawaiiansk/917,976 52414a50756,50757 > hedgefond/10,70,20,976 > hedgefond/20,7,70,976 52546,52555c50889 < heksekedel/70,976 < heksekedelen/976 < heksekedelens/976 < heksekedels/976 < heksekedlen/976 < heksekedlens/976 < heksekedler/976 < heksekedlerne/976 < heksekedlernes < heksekedlers/976 --- > heksekedel/815,822,70,944 52560a50895 > hektar/70,7,252,976 52567c50902 < hektoliter/115,70,85,976 --- > hektoliter/70,7,252,976 52608a50944 > helbredsvurdering/70,73,7,976 52936a51273 > helårsdæk/70,254,976 52944a51282 > hemicykel/815,822,70,944 53121,53130c51459 < henkogningskedel/70,976 < henkogningskedelen/976 < henkogningskedelens/976 < henkogningskedels/976 < henkogningskedlen/976 < henkogningskedlens/976 < henkogningskedler/976 < henkogningskedlerne/976 < henkogningskedlernes < henkogningskedlers/976 --- > henkogningskedel/815,822,70,944 53176a51506 > henover 53562,53571c51892 < herrecykel/70,976 < herrecykelen/976 < herrecykelens/976 < herrecykels/976 < herrecyklen/976 < herrecyklens/976 < herrecykler/976 < herrecyklerne/976 < herrecyklernes < herrecyklers/976 --- > herrecykel/815,822,70,944 53627a51949 > herrestrømpe/70,73,7,976 53740a52063 > hesteejer/20,7,70,976 54120,54126c52443,52445 < hingst/20,7,70,976 < hingsteføl/70,976 < hingsteføllene/976 < hingsteføllenes/976 < hingsteføllet/976 < hingsteføllets/976 < hingsteføls/976 --- > hingst/20,7,70,976,940,947 > hingsteføl/70,254,976 > hingsteplag/20,7,70,976 54128,54133c52447,52448 < hingstføl/976 < hingstføllene/976 < hingstføllenes < hingstføllet/976 < hingstføllets/976 < hingstføls/976 --- > hingstføl/70,254,976 > hingstplag/20,7,70,976 54266c52581 < hittegods/194,70,976 --- > hittegods/194,70,976,941,947 54281a52597 > hiv-positiv/913,70,366,976 54358d52673 < hjem/976 54392a52708 > hjemførsel/815,822,70,944 54436,54445c52752 < hjemlængsel/70,976 < hjemlængselen/976 < hjemlængselens/976 < hjemlængsels/976 < hjemlængslen/976 < hjemlængslens/976 < hjemlængsler/976 < hjemlængslerne/976 < hjemlængslernes < hjemlængslers/976 --- > hjemlængsel/815,822,70,944 54462c52769 < hjemmebane/193,70,976 --- > hjemmebane/70,73,7,976,941,947 54490,54499c52797 < hjemmefødsel/70,976 < hjemmefødselen/976 < hjemmefødselens/976 < hjemmefødsels/976 < hjemmefødslen/976 < hjemmefødslens/976 < hjemmefødsler/976 < hjemmefødslerne/976 < hjemmefødslernes < hjemmefødslers/976 --- > hjemmefødsel/815,822,70,944 54538d52835 < hjemmene 54568d52864 < hjemmet/70,252,10,976,941,947 54581c52877 < hjemmeværn/70,252,10,976 --- > hjemmeværn/70,252,10,976,939,947 54693a52990 > hjernevrider/20,7,70,976 54736,54745c53033,53034 < hjertemuskel/70,976 < hjertemuskelen/976 < hjertemuskelens/976 < hjertemuskels/976 < hjertemusklen/976 < hjertemusklens/976 < hjertemuskler/976 < hjertemusklerne/976 < hjertemusklernes < hjertemusklers/976 --- > hjertemedicinsk/917,976 > hjertemuskel/815,822,70,944 54755,54759c53044,53045 < hjerter/70,976 < hjertere/976 < hjerteren/976 < hjerterens/976 < hjerteres/976 --- > hjerter/20,7,70,976 > hjerter/70,7,252,976 54761,54762d53046 < hjerterne/976 < hjerternes 54767d53050 < hjerters/976 54777a53061 > hjertestarter/20,7,70,976 54834,54843c53118 < hjulaksel/70,976 < hjulakselen/976 < hjulakselens/976 < hjulaksels/976 < hjulakslen/976 < hjulakslens/976 < hjulaksler/976 < hjulakslerne/976 < hjulakslernes < hjulakslers/976 --- > hjulaksel/815,822,70,944 54858,54867c53133 < hjulkapsel/70,976 < hjulkapselen/976 < hjulkapselens/976 < hjulkapsels/976 < hjulkapslen/976 < hjulkapslens/976 < hjulkapsler/976 < hjulkapslerne/976 < hjulkapslernes < hjulkapslers/976 --- > hjulkapsel/815,822,70,944 54905,54914c53171 < hjælpemiddel/70,976 < hjælpemiddelet/976 < hjælpemiddelets/976 < hjælpemiddels/976 < hjælpemidler/976 < hjælpemidlerne/976 < hjælpemidlernes < hjælpemidlers/976 < hjælpemidlet/976 < hjælpemidlets/976 --- > hjælpemiddel/815,70,944,828,941,947 54948d53204 < hjærter/976 55087,55096c53343 < holdkørsel/70,976 < holdkørselen/976 < holdkørselens/976 < holdkørsels/976 < holdkørslen/976 < holdkørslens/976 < holdkørsler/976 < holdkørslerne/976 < holdkørslernes < holdkørslers/976 --- > holdkørsel/815,822,70,944 55114a53362 > holdsport/193,70,976 55121a53370 > holdtræning/193,70,976 55304c53553 < honorarlønnet/70,1062 --- > honorarlønnet/70,915,976 55617c53866 < hovedforløb/70,252,10,976 --- > hovedforløb/70,252,10,976,939,947 55670a53920 > hovedpinetablet/46,70,976 55676,55685c53926 < hovedregel/70,976 < hovedregelen/976 < hovedregelens/976 < hovedregels/976 < hovedreglen/976 < hovedreglens/976 < hovedregler/976 < hovedreglerne/976 < hovedreglernes < hovedreglers/976 --- > hovedregel/815,822,70,944 55969,55977c54210 < hulstrimlen/976 < hulstrimlens/976 < hulstrimler/976 < hulstrimlerne/976 < hulstrimlernes < hulstrimlers/976 < hulstrimmel/70,976 < hulstrimmelen/976 < hulstrimmelens/976 --- > hulstrimmel/815,822,70,944 55979d54211 < hulstrimmels/976 56006c54238 < humangenetik/193,70,976 --- > humangenetik/737,70,976 56013a54246 > humanistuddannelse/70,73,7,976 56120a54354 > hundefoder/194,70,976 56124a54359 > hundehalsbånd/70,252,10,976 56203,56212d54437 < hundredekroneseddel/70,976 < hundredekroneseddelen/976 < hundredekroneseddelens/976 < hundredekroneseddels/976 < hundredekronesedlen/976 < hundredekronesedlens/976 < hundredekronesedler/976 < hundredekronesedlerne/976 < hundredekronesedlernes < hundredekronesedlers/976 56226,56235c54451 < hundredkroneseddel/70,976 < hundredkroneseddelen/976 < hundredkroneseddelens/976 < hundredkroneseddels/976 < hundredkronesedlen/976 < hundredkronesedlens/976 < hundredkronesedler/976 < hundredkronesedlerne/976 < hundredkronesedlernes < hundredkronesedlers/976 --- > hundredkroneseddel/815,822,70,944 56459a54676 > huskeliste/70,73,7,976 56465,56484c54682,54683 < huskeregel/70,976 < huskeregelen/976 < huskeregelens/976 < huskeregels/976 < huskereglen/976 < huskereglens/976 < huskeregler/976 < huskereglerne/976 < huskereglernes < huskereglers/976 < huskeseddel/70,976 < huskeseddelen/976 < huskeseddelens/976 < huskeseddels/976 < huskesedlen/976 < huskesedlens/976 < huskesedler/976 < huskesedlerne/976 < huskesedlernes < huskesedlers/976 --- > huskeregel/815,822,70,944 > huskeseddel/815,822,70,944 56562,56571c54761 < husregel/70,976 < husregelen/976 < husregelens/976 < husregels/976 < husreglen/976 < husreglens/976 < husregler/976 < husreglerne/976 < husreglernes < husreglers/976 --- > husregel/815,822,70,944 56630c54820 < hvalp/20,7,70,976 --- > hvalp/20,7,70,976,940,947 56645a54836 > hvalsang/20,7,70,976 56835c55026 < hvidvin/20,7,70,976 --- > hvidvin/20,7,70,976,939,947 56887c55078 < hvirvel/70,976 --- > hvirvel/815,822,70,944,941,947 56890,56891d55080 < hvirvelen/976 < hvirvelens/976 56893d55081 < hvirvels/976 56899,56904d55086 < hvirvlen/976 < hvirvlens/976 < hvirvler/976 < hvirvlerne/976 < hvirvlernes < hvirvlers/976 56984a55167 > hybridcykel/815,822,70,944 57066,57075c55249 < hyggeonkel/70,976 < hyggeonkelen/976 < hyggeonkelens/976 < hyggeonkels/976 < hyggeonklen/976 < hyggeonklens/976 < hyggeonkler/976 < hyggeonklerne/976 < hyggeonklernes < hyggeonklers/976 --- > hyggeonkel/815,822,70,944 57079c55253 < hygiejne/193,70,976 --- > hygiejne/193,70,976,941,947 57104a55279 > hyldedrik/70,133,976 57449,57451c55624 < hængsel/70,976 < hængselet/976 < hængselets/976 --- > hængsel/815,70,944,828 57453d55625 < hængsels/976 57455,57460d55626 < hængsler/976 < hængslerne/976 < hængslernes < hængslers/976 < hængslet/976 < hængslets/976 57470a55637 > hærdemiddel/815,70,944,828 57532a55700 > hævegebyr/70,10,73,976 57535,57544c55703 < hævemiddel/70,976 < hævemiddelet/976 < hævemiddelets/976 < hævemiddels/976 < hævemidler/976 < hævemidlerne/976 < hævemidlernes < hævemidlers/976 < hævemidlet/976 < hævemidlets/976 --- > hævemiddel/815,70,944,828 57644a55804 > højdemeter/70,7,252,976 57701a55862 > højindkomstgruppe/70,73,7,976 57776,57785c55937 < højrekørsel/70,976 < højrekørselen/976 < højrekørselens/976 < højrekørsels/976 < højrekørslen/976 < højrekørslens/976 < højrekørsler/976 < højrekørslerne/976 < højrekørslernes < højrekørslers/976 --- > højrekørsel/815,822,70,944 57800a55953 > højresvingsulykke/70,73,7,976 57861,57870c56014 < højspændingskabel/70,976 < højspændingskabelet/976 < højspændingskabelets/976 < højspændingskabels/976 < højspændingskabler/976 < højspændingskablerne/976 < højspændingskablernes < højspændingskablers/976 < højspændingskablet/976 < højspændingskablets/976 --- > højspændingskabel/815,70,944,828 57903c56047 < højtaler/70,976 --- > højtaler/20,7,70,976,941,947 57905,57911d56048 < højtalere/976 < højtaleren/976 < højtalerens/976 < højtaleres/976 < højtalerne/976 < højtalernes/976 < højtalers/976 57976c56113 < højttaler/976 --- > højttaler/20,7,70,976,941,947 57978,57979d56114 < højttalere/976 < højttaleren/976 57981,57985d56115 < højttalerens/976 < højttaleres/976 < højttalerne/976 < højttalernes < højttalers/976 58107,58110c56237 < hørfarvede/976 < hørfarvedes < hørfarvet/70,976 < hørfarvets/976 --- > hørfarvet/70,915,976 58239a56367 > håndboldlandshold/70,252,10,976 58243,58252c56371 < håndbremsekabel/70,976 < håndbremsekabelet/976 < håndbremsekabelets/976 < håndbremsekabels/976 < håndbremsekabler/976 < håndbremsekablerne/976 < håndbremsekablernes < håndbremsekablers/976 < håndbremsekablet/976 < håndbremsekablets/976 --- > håndbremsekabel/815,70,944,828 58308a56428 > håndhygiejne/193,70,976 58328c56448 < håndklæde/70,10,73,976 --- > håndklæde/70,10,73,976,941,947 58449,58458c56569 < håndstempel/70,976 < håndstempelet/976 < håndstempelets/976 < håndstempels/976 < håndstempler/976 < håndstemplerne/976 < håndstemplernes < håndstemplers/976 < håndstemplet/976 < håndstemplets/976 --- > håndstempel/815,70,944,828 58512c56623 < håndværk/70,252,10,976 --- > håndværk/70,252,10,976,939,947 58667,58676c56778 < hårpensel/70,976 < hårpenselen/976 < hårpenselens/976 < hårpensels/976 < hårpenslen/976 < hårpenslens/976 < hårpensler/976 < hårpenslerne/976 < hårpenslernes < hårpenslers/976 --- > hårpensel/815,822,70,944 58695d56796 < hårshampo/46,70,976 58782,58791c56883 < iblødsætningsmiddel/70,976 < iblødsætningsmiddelet/976 < iblødsætningsmiddelets/976 < iblødsætningsmiddels/976 < iblødsætningsmidler/976 < iblødsætningsmidlerne/976 < iblødsætningsmidlernes < iblødsætningsmidlers/976 < iblødsætningsmidlet/976 < iblødsætningsmidlets/976 --- > iblødsætningsmiddel/815,70,944,828 58973a57066 > identitetskonflikt/70,73,7,976 58975a57069,57070 > identitetsmærke/70,10,73,976 > identitetspapir/70,10,73,976 58979a57075,57077 > identitetsproblem/70,10,73,976 > identitetstyv/20,7,70,976 > identitetstyveri/70,10,73,976 59087a57186 > idrætsskade/70,73,7,976 59340a57440 > ilandkørsel/815,822,70,944 59511,59520c57611 < iltmangel/70,976 < iltmangelen/976 < iltmangelens/976 < iltmangels/976 < iltmanglen/976 < iltmanglens/976 < iltmangler/976 < iltmanglerne/976 < iltmanglernes < iltmanglers/976 --- > iltmangel/822,70 59523a57615 > iltoptagelse/70,73,7,976 59534,59543c57626 < ilttilførsel/70,976 < ilttilførselen/976 < ilttilførselens/976 < ilttilførsels/976 < ilttilførslen/976 < ilttilførslens/976 < ilttilførsler/976 < ilttilførslerne/976 < ilttilførslernes < ilttilførslers/976 --- > ilttilførsel/815,822,70,944 59602a57686 > immoralsk/917,976 59689d57772 < importere 59736c57819 < imprægnering/70,73,7,976 --- > imprægnering/70,73,7,976,939,947 60022,60031c58105 < inddæm < inddæmme < inddæmmede < inddæmmedes < inddæmmende < inddæmmendes < inddæmmer < inddæmmes < inddæmmet < inddæmmets --- > inddæmme/6,143,148 60052c58126 < indefodbold/20,7,70,976 --- > indefodbold/193,70,976,941,947 60150,60151c58224 < indendørs/976 < indendørs'/976 --- > indendørs/941,947 60153d58225 < indendørses 60155d58226 < indendørs's/976 60224a58296 > indercirkel/815,822,70,944 60294,60303c58366 < indfaldsvinkel/70,976 < indfaldsvinkelen/976 < indfaldsvinkelens/976 < indfaldsvinkels/976 < indfaldsvinklen/976 < indfaldsvinklens/976 < indfaldsvinkler/976 < indfaldsvinklerne/976 < indfaldsvinklernes < indfaldsvinklers/976 --- > indfaldsvinkel/815,822,70,944 60333a58397 > indflytningsdato/70,73,7,976 60401a58466 > indfødsretsprøve/70,73,7,976 60418,60427c58483 < indførsel/70,976 < indførselen/976 < indførselens/976 < indførsels/976 < indførslen/976 < indførslens/976 < indførsler/976 < indførslerne/976 < indførslernes < indførslers/976 --- > indførsel/815,822,70,944,939,947 60437,60446c58493 < indgangsvinkel/70,976 < indgangsvinkelen/976 < indgangsvinkelens/976 < indgangsvinkels/976 < indgangsvinklen/976 < indgangsvinklens/976 < indgangsvinkler/976 < indgangsvinklerne/976 < indgangsvinklernes < indgangsvinklers/976 --- > indgangsvinkel/815,822,70,944 60696,60705c58743 < indkomstoverførsel/70,976 < indkomstoverførselen/976 < indkomstoverførselens/976 < indkomstoverførsels/976 < indkomstoverførslen/976 < indkomstoverførslens/976 < indkomstoverførsler/976 < indkomstoverførslerne/976 < indkomstoverførslernes < indkomstoverførslers/976 --- > indkomstoverførsel/815,822,70,944 60735,60744c58773 < indkørsel/70,976,939,947 < indkørselen/976 < indkørselens/976 < indkørsels/976 < indkørslen/976 < indkørslens/976 < indkørsler/976 < indkørslerne/976 < indkørslernes < indkørslers/976 --- > indkørsel/815,822,70,944,939,947 60774,60781c58803 < indledningskapitel/70,976 < indledningskapitels/976 < indledningskapitler/976 < indledningskapitlerne/976 < indledningskapitlernes < indledningskapitlers/976 < indledningskapitlet/976 < indledningskapitlets/976 --- > indledningskapitel/815,70,944,828 60807,60816c58829 < indlæggelsesseddel/70,976 < indlæggelsesseddelen/976 < indlæggelsesseddelens/976 < indlæggelsesseddels/976 < indlæggelsessedlen/976 < indlæggelsessedlens/976 < indlæggelsessedler/976 < indlæggelsessedlerne/976 < indlæggelsessedlernes < indlæggelsessedlers/976 --- > indlæggelsesseddel/815,822,70,944 60821a58835 > indlægssål/70,73,7,976 60833c58847 < indløb/70,252,10,976 --- > indløb/70,252,10,976,939,947 61743c59757 < ingefær/193,70,976 --- > ingefær/193,70,976,941,947 61905c59919 < inklusiv/70,962,366 --- > inklusiv/913,70,366,976 61953c59967 < inkontinens/193,70,976 --- > inkontinens/193,70,976,941,947 61999a60014 > insektbekæmpelsesmiddel/815,70,944,828 62002,62011c60017 < insektmiddel/70,976 < insektmiddelet/976 < insektmiddelets/976 < insektmiddels/976 < insektmidler/976 < insektmidlerne/976 < insektmidlernes < insektmidlers/976 < insektmidlet/976 < insektmidlets/976 --- > insektmiddel/815,70,944,828 62030c60036 < insider/20,7,70,976 --- > insider/20,7,70,976,941,947 62362a60369 > interviewdeltager/20,7,70,976 62379a60387 > interviewperson/70,73,7,976 62510a60519,60520 > investeringsbevis/70,10,73,976 > investeringsfond/10,70,20,976 62512d60521 < investeringsfond/70,10,73,976 62518c60527,60528 < investeringsforening/70,73,7,976 --- > investeringsforening/70,73,7,976,939,947 > investeringsrådgivning/70,73,7,976 62521c60531 < investor/70,73,7,976 --- > investor/70,73,7,976,941,947 62584a60595,60596 > IP-telefoni/193,70,976,941,947 > ip-telefoni/193,70,976,941,947 62697,62706c60709,60710 < irritationstærskel/70,976 < irritationstærskelen/976 < irritationstærskelens/976 < irritationstærskels/976 < irritationstærsklen/976 < irritationstærsklens/976 < irritationstærskler/976 < irritationstærsklerne/976 < irritationstærsklernes < irritationstærsklers/976 --- > irritationstilstand/20,7,70,976 > irritationstærskel/815,822,70,944 62726a60731 > isabellafarvet/70,915,976 62749c60754 < isbjørn/20,7,70,976 --- > isbjørn/20,7,70,976,940,947 62876c60881 < islamisering/70,73,7,976 --- > islamisering/70,73,7,976,939,947 62942,62945c60947 < isolationsfængsel/70,976 < isolationsfængselet/976 < isolationsfængselets/976 < isolationsfængsels/976 --- > isolationsfængsel/815,70,944,828 62947,62952d60948 < isolationsfængsler/976 < isolationsfængslerne/976 < isolationsfængslernes < isolationsfængslers/976 < isolationsfængslet/976 < isolationsfængslets/976 63076,63085c61072 < isvaffel/70,976 < isvaffelen/976 < isvaffelens/976 < isvaffels/976 < isvaflen/976 < isvaflens/976 < isvafler/976 < isvaflerne/976 < isvaflernes < isvaflers/976 --- > isvaffel/815,822,70,944 63345,63354c61332 < jagtriffel/70,976 < jagtriffelen/976 < jagtriffelens/976 < jagtriffels/976 < jagtriflen/976 < jagtriflens/976 < jagtrifler/976 < jagtriflerne/976 < jagtriflernes < jagtriflers/976 --- > jagtriffel/815,822,70,944 63662a61641 > j-dag/20,7,70,976 63855a61835 > jernbanestrækning/70,73,7,976 63901,63910c61881 < jernmangel/70,976 < jernmangelen/976 < jernmangelens/976 < jernmangels/976 < jernmanglen/976 < jernmanglens/976 < jernmangler/976 < jernmanglerne/976 < jernmanglernes < jernmanglers/976 --- > jernmangel/822,70 64120c62091 < jobsøgning/193,70,976 --- > jobsøgning/70,73,7,976,939,947 64230c62201 < jomfru/70,73,7,976,466 --- > jomfru/70,73,7,976,941,947 64236,64245c62207 < jomfrufødsel/70,976 < jomfrufødselen/976 < jomfrufødselens/976 < jomfrufødsels/976 < jomfrufødslen/976 < jomfrufødslens/976 < jomfrufødsler/976 < jomfrufødslerne/976 < jomfrufødslernes < jomfrufødslers/976 --- > jomfrufødsel/815,822,70,944 64488,64497c62450 < jordkabel/70,976 < jordkabelet/976 < jordkabelets/976 < jordkabels/976 < jordkabler/976 < jordkablerne/976 < jordkablernes < jordkablers/976 < jordkablet/976 < jordkablets/976 --- > jordkabel/815,70,944,828 64575,64584c62528 < jordstængel/70,976 < jordstængelen/976 < jordstængelens/976 < jordstængels/976 < jordstænglen/976 < jordstænglens/976 < jordstængler/976 < jordstænglerne/976 < jordstænglernes < jordstænglers/976 --- > jordstængel/815,822,70,944 64789a62734 > juleafslutning/70,73,7,976 64959a62905 > juletræspynt/193,70,976 65158c63104 < juveler/70,73,7,976 --- > juveler/70,73,7,976,941,947 65176c63122 < jysk/193,70,976 --- > jysk/190,976,941,947 65315c63261 < kabel/70,976,941,947 --- > kabel/815,70,944,828,941,947 65318,65319d63263 < kabelet/976 < kabelets/976 65329d63272 < kabels/976 65342,65347d63284 < kabler/976 < kablerne/976 < kablernes < kablers/976 < kablet/976 < kablets/976 65433,65442c63370 < kagegaffel/70,976 < kagegaffelen/976 < kagegaffelens/976 < kagegaffels/976 < kagegaflen/976 < kagegaflens/976 < kagegafler/976 < kagegaflerne/976 < kagegaflernes < kagegaflers/976 --- > kagegaffel/815,822,70,944 65453a63382 > kagespade/70,73,7,976 65522,65523d63450 < kakifarvede/976 < kakifarvedes 65525,65527c63452 < kakifarvet/70,976 < kakifarvets/976 < kakkel/70,976 --- > kakkel/815,822,70,944,941,947 65529,65530d63453 < kakkelen/976 < kakkelens/976 65534,65540d63456 < kakkels/976 < kaklen/976 < kaklens/976 < kakler/976 < kaklerne/976 < kaklernes < kaklers/976 65596a63513 > kalendergave/70,73,7,976 65646,65655c63563 < kalkmangel/70,976 < kalkmangelen/976 < kalkmangelens/976 < kalkmangels/976 < kalkmanglen/976 < kalkmanglens/976 < kalkmangler/976 < kalkmanglerne/976 < kalkmanglernes < kalkmanglers/976 --- > kalkmangel/822,70 65756,65765c63664 < kalvebrislen/976 < kalvebrislens/976 < kalvebrisler/976 < kalvebrislerne/976 < kalvebrislernes < kalvebrislers/976 < kalvebrissel/70,976 < kalvebrisselen/976 < kalvebrisselens/976 < kalvebrissels/976 --- > kalvebrissel/815,822,70,944 65827,65836c63726 < kameravinkel/70,976 < kameravinkelen/976 < kameravinkelens/976 < kameravinkels/976 < kameravinklen/976 < kameravinklens/976 < kameravinkler/976 < kameravinklerne/976 < kameravinklernes < kameravinklers/976 --- > kameravinkel/815,822,70,944 65957,65966c63847 < kampmiddel/70,976 < kampmiddelet/976 < kampmiddelets/976 < kampmiddels/976 < kampmidler/976 < kampmidlerne/976 < kampmidlernes < kampmidlers/976 < kampmidlet/976 < kampmidlets/976 --- > kampmiddel/815,70,944,828 66062c63943 < kancellisprog/70,252,10,976 --- > kancellisprog/194,70,976,939,947 66203a64085 > kantbånd/70,252,10,976 66238,66246c64120 < kantstil < kantstille < kantstillede < kantstilledes < kantstillende < kantstillendes < kantstiller < kantstilles < kantstillet --- > kantstille/6,143,148 66248d64121 < kantstillets 66333a64207,64209 > kapitalfond/10,70,20,976 > kapitalfond/20,7,70,976 > kapitalforhøjelse/70,73,7,976 66344c64220 < kapitalpension/70,73,7,976 --- > kapitalpension/70,73,7,976,939,947 66346,66355c64222 < kapitaltilførsel/70,976 < kapitaltilførselen/976 < kapitaltilførselens/976 < kapitaltilførsels/976 < kapitaltilførslen/976 < kapitaltilførslens/976 < kapitaltilførsler/976 < kapitaltilførslerne/976 < kapitaltilførslernes < kapitaltilførslers/976 --- > kapitaltilførsel/815,822,70,944 66357c64224 < kapitel/70,976,941,947 --- > kapitel/815,70,944,828,941,947 66360d64226 < kapitels/976 66362,66367d64227 < kapitler/976 < kapitlerne/976 < kapitlernes < kapitlers/976 < kapitlet/976 < kapitlets/976 66412,66414c64272 < kapsel/70,976 < kapselen/976 < kapselens/976 --- > kapsel/815,822,70,944 66416d64273 < kapsels/976 66419,66424d64275 < kapslen/976 < kapslens/976 < kapsler/976 < kapslerne/976 < kapslernes < kapslers/976 66443,66452c64294 < karaffel/70,976 < karaffelen/976 < karaffelens/976 < karaffels/976 < karaflen/976 < karaflens/976 < karafler/976 < karaflerne/976 < karaflernes < karaflers/976 --- > karaffel/815,822,70,944 66544,66553c64386 < kardanaksel/70,976 < kardanakselen/976 < kardanakselens/976 < kardanaksels/976 < kardanakslen/976 < kardanakslens/976 < kardanaksler/976 < kardanakslerne/976 < kardanakslernes < kardanakslers/976 --- > kardanaksel/815,822,70,944 66717a64551 > karmeliter/20,7,70,976 66899c64733 < kartoffel/70,976,941,947 --- > kartoffel/815,822,70,944,941,947 66902,66903d64735 < kartoffelen/976 < kartoffelens/976 66915d64746 < kartoffels/976 66926,66931d64756 < kartoflen/976 < kartoflens/976 < kartofler/976 < kartoflerne/976 < kartoflernes < kartoflers/976 67036,67042c64861 < kassestrimlen/976 < kassestrimler/976 < kassestrimlerne/976 < kassestrimlernes < kassestrimlers/976 < kassestrimmel/115,70,85,976 < kassestrimmels/976 --- > kassestrimmel/815,822,70,944 67161d64979 < kategori/46,70,976,941,947 67358c65176 < kedel/70,976 --- > kedel/815,822,70,944,941,947 67361,67362d65178 < kedelen/976 < kedelens/976 67369d65184 < kedels/976 67375,67380d65189 < kedlen/976 < kedlens/976 < kedler/976 < kedlerne/976 < kedlernes < kedlers/976 67605,67614c65414 < kernebrændsel/70,976 < kernebrændselet/976 < kernebrændselets/976 < kernebrændsels/976 < kernebrændsler/976 < kernebrændslerne/976 < kernebrændslernes < kernebrændslers/976 < kernebrændslet/976 < kernebrændslets/976 --- > kernebrændsel/815,70,944,828 67629a65430 > kerneopgave/70,73,7,976 67812d65612 < kig 67816,67818c65616 < kigge < kiggede < kiggedes --- > kigge/6,143,148 67820,67821d65617 < kiggende < kiggendes 67824d65619 < kigger 67833,67834d65627 < kigges < kigget 67836d65628 < kiggets 67855d65646 < kik 67869d65659 < kikke 67871,67872c65661 < kikkede < kikkedes --- > kikke/6,143,148 67875,67876d65663 < kikkende < kikkendes 67879d65665 < kikker 67890,67891c65676 < kikkes < kikket --- > kikkertundersøgelse/70,73,7,976 67893d65677 < kikkets 67963a65748 > kilogrammeter/70,7,252,976 67981a65767 > kilopondmeter/70,7,252,976 68121d65906 < kip 68136c65921 < kippe --- > kippe/6,143,148 68138,68139d65922 < kippede < kippedes 68148,68153d65930 < kippende < kippendes < kipper < kippes < kippet < kippets 68289,68291c66066 < kirtel/70,976,941,947 < kirtelen/976 < kirtelens/976 --- > kirtel/815,822,70,944,941,947 68294d66068 < kirtels/976 68296,68301d66069 < kirtlen/976 < kirtlens/976 < kirtler/976 < kirtlerne/976 < kirtlernes < kirtlers/976 68349d66116 < kit 68352a66120,66127 > kiteboard/194,70,976 > kiteboardene/976 > kiteboardenes > kiteboards/976 > kiteboards'/976 > kitesurfe/6,143,148 > kitesurfer/20,7,70,976 > kitesurfing/193,70,976 68357,68362d66131 < kitlen/976 < kitlens/976 < kitler/976 < kitlerne/976 < kitlernes < kitlers/976 68371d66139 < kitte 68373,68377c66141,66142 < kittede < kittedes < kittel/70,976 < kittelen/976 < kittelens/976 --- > kitte/6,143,148 > kittel/815,822,70,944,941,947 68379d66143 < kittels/976 68381,68386d66144 < kittende < kittendes < kitter < kittes < kittet < kittets 68446,68455c66204,66205 < kjortel/70,976 < kjortelen/976 < kjortelens/976 < kjortels/976 < kjortlen/976 < kjortlens/976 < kjortler/976 < kjortlerne/976 < kjortlernes < kjortlers/976 --- > kjortel/815,822,70,944 > kjortelklædt/913,70,366,976 68537d66286 < klap 68559,68561c66308 < klappe < klappede < klappedes --- > klappe/6,143,148,941,947 68563,68565d66309 < klappende < klappendes < klapper 68568,68570d66311 < klappes < klappet < klappets 68882a66624 > klimaordfører/20,7,70,976 69065c66807 < kloak/46,70,976 --- > kloak/46,70,976,941,947 69071,69080c66813 < kloakdæksel/70,976 < kloakdækselet/976 < kloakdækselets/976 < kloakdæksels/976 < kloakdæksler/976 < kloakdækslerne/976 < kloakdækslernes < kloakdækslers/976 < kloakdækslet/976 < kloakdækslets/976 --- > kloakdæksel/815,70,944,828 69139,69148c66872 < klokkestabel/70,976 < klokkestabelen/976 < klokkestabelens/976 < klokkestabels/976 < klokkestablen/976 < klokkestablens/976 < klokkestabler/976 < klokkestablerne/976 < klokkestablernes < klokkestablers/976 --- > klokkestabel/815,822,70,944 69211,69212c66935,66936 < klovn/20,7,70,976,947 < klovn/70,73,7,976 --- > klovn/20,7,70,976,940,947 > klovn/70,73,7,976,940,947 69214a66939,66940 > klovnedragt/70,73,7,976 > klovnekostume/70,10,73,976 69215a66942 > klovnenæse/70,73,7,976 69217,69220d66943 < klovnerier/70,976 < klovnerierne/976 < klovneriernes < klovneriers/976 69226a66950 > klubcykel/815,822,70,944 69227a66952 > klubfodbold/193,70,976 69240a66966 > klubmesterskab/70,10,73,976 69367,69376c67093 < klæbemiddel/70,976 < klæbemiddelet/976 < klæbemiddelets/976 < klæbemiddels/976 < klæbemidler/976 < klæbemidlerne/976 < klæbemidlernes < klæbemidlers/976 < klæbemidlet/976 < klæbemidlets/976 --- > klæbemiddel/815,70,944,828 69379,69388c67096 < klæbestrimlen/976 < klæbestrimlens/976 < klæbestrimler/976 < klæbestrimlerne/976 < klæbestrimlernes < klæbestrimlers/976 < klæbestrimmel/70,976 < klæbestrimmelen/976 < klæbestrimmelens/976 < klæbestrimmels/976 --- > klæbestrimmel/815,822,70,944 69509,69518c67217 < knallertkørsel/70,976 < knallertkørselen/976 < knallertkørselens/976 < knallertkørsels/976 < knallertkørslen/976 < knallertkørslens/976 < knallertkørsler/976 < knallertkørslerne/976 < knallertkørslernes < knallertkørslers/976 --- > knallertkørsel/815,822,70,944 69526,69530c67225 < knappe < knappede < knappedes < knappende < knappendes --- > knappe/6,143,148 69533,69536d67227 < knapper < knappes < knappet < knappets 69554,69563c67245 < knastaksel/70,976 < knastakselen/976 < knastakselens/976 < knastaksels/976 < knastakslen/976 < knastakslens/976 < knastaksler/976 < knastakslerne/976 < knastakslernes < knastakslers/976 --- > knastaksel/815,822,70,944 69627d67308 < knep 69629,69637c67310 < kneppe < kneppede < kneppedes < kneppende < kneppendes < knepper < kneppes < kneppet < kneppets --- > kneppe/6,143,148 69649a67323 > knibeøvelse/70,73,7,976 69692a67367 > knippelslag/70,252,10,976 69760,69762c67435 < knokkel/70,976 < knokkelen/976 < knokkelens/976 --- > knokkel/815,822,70,944 69779d67451 < knokkels/976 69783,69785d67454 < knoklen/976 < knoklens/976 < knokler/976 69787,69789d67455 < knoklerne/976 < knoklernes < knoklers/976 69911d67576 < knyt 69915c67580 < knytte --- > knytte/6,143,148 69917,69918d67581 < knyttede < knyttedes 69927,69932d67589 < knyttende < knyttendes < knytter < knyttes < knyttet < knyttets 69935a67593 > knæbind/70,252,10,976 69953c67611 < knække --- > knække/6,143,148 69955,69957d67612 < knækkede < knækkedes < knækkende 69959,69960d67613 < knækkendes < knækker 69962,69963d67614 < knækkes < knækket 69965d67615 < knækkets 69975c67625 < knæled/70,267,976,939,947 --- > knæled/70,254,976,939,947 70036,70045c67686 < kobberkedel/70,976 < kobberkedelen/976 < kobberkedelens/976 < kobberkedels/976 < kobberkedlen/976 < kobberkedlens/976 < kobberkedler/976 < kobberkedlerne/976 < kobberkedlernes < kobberkedlers/976 --- > kobberkedel/815,822,70,944 70151,70160c67792 < kogekedel/70,976 < kogekedelen/976 < kogekedelens/976 < kogekedels/976 < kogekedlen/976 < kogekedlens/976 < kogekedler/976 < kogekedlerne/976 < kogekedlernes < kogekedlers/976 --- > kogekedel/815,822,70,944 70259a67892 > kokosmælk/193,70,976 70375a68009 > kollegiegang/20,7,70,976 70376a68011 > kollegiekøkken/70,10,73,976 70457c68092 < kolonihave/70,73,7,976 --- > kolonihave/70,73,7,976,941,947 70509,70518c68144 < kombikedel/70,976 < kombikedelen/976 < kombikedelens/976 < kombikedels/976 < kombikedlen/976 < kombikedlens/976 < kombikedler/976 < kombikedlerne/976 < kombikedlernes < kombikedlers/976 --- > kombikedel/815,822,70,944 70731,70740c68357 < kommunikationsmiddel/70,976 < kommunikationsmiddelet/976 < kommunikationsmiddelets/976 < kommunikationsmiddels/976 < kommunikationsmidler/976 < kommunikationsmidlerne/976 < kommunikationsmidlernes < kommunikationsmidlers/976 < kommunikationsmidlet/976 < kommunikationsmidlets/976 --- > kommunikationsmiddel/815,70,944,828 70819c68436,68437 < kompatibilitet/193,70,976 --- > kompatibilitet/193,70,976,939,947 > kompatibilitetsproblem/70,10,73,976 70844a68463 > kompetenceafklaring/70,73,7,976,939,947 70869,70878c68488 < komplementvinkel/70,976 < komplementvinkelen/976 < komplementvinkelens/976 < komplementvinkels/976 < komplementvinklen/976 < komplementvinklens/976 < komplementvinkler/976 < komplementvinklerne/976 < komplementvinklernes < komplementvinklers/976 --- > komplementvinkel/815,822,70,944 70931d68540 < komprimere 70934d68542 < kompromis 70938,70946c68546 < kompromisse < kompromissede < kompromissedes < kompromissende < kompromissendes < kompromisser < kompromisses < kompromisset < kompromissets --- > kompromisse/6,143,148 71032,71041c68632 < kondicykel/70,976 < kondicykelen/976 < kondicykelens/976 < kondicykels/976 < kondicyklen/976 < kondicyklens/976 < kondicykler/976 < kondicyklerne/976 < kondicyklernes < kondicyklers/976 --- > kondicykel/815,822,70,944 71287a68879,68880 > konkret/70,10,73,976 > konkret/913,70,366,976 71322,71327c68915 < konkurrenceregel/70,976 < konkurrenceregelen/976 < konkurrenceregelens/976 < konkurrenceregels/976 < konkurrencereglen/976 < konkurrencereglens/976 --- > konkurrenceregel/815,822,70,944 71329d68916 < konkurrenceregler/976 71413,71422c69000 < konserveringsmiddel/70,976 < konserveringsmiddelet/976 < konserveringsmiddelets/976 < konserveringsmiddels/976 < konserveringsmidler/976 < konserveringsmidlerne/976 < konserveringsmidlernes < konserveringsmidlers/976 < konserveringsmidlet/976 < konserveringsmidlets/976 --- > konserveringsmiddel/815,70,944,828 71428a69007 > konsistensmiddel/815,70,944,828 71462c69041,69042 < konspiration/70,73,7,976 --- > konspiration/70,73,7,976,939,947 > konspirationsteori/70,73,7,976 71466c69046 < konstabel/70,976 --- > konstabel/815,822,70,944 71468,71476d69047 < konstabelen/976 < konstabelens/976 < konstabels/976 < konstablen/976 < konstablens/976 < konstabler/976 < konstablerne/976 < konstablernes < konstablers/976 71520c69091 < konstruktør/70,73,7,976 --- > konstruktør/70,73,7,976,941,947 71529a69101 > konsulentydelse/70,73,7,976 71615a69188 > kontantløs/913,70,366,976 71720,71729c69293 < kontormøbel/70,976 < kontormøbelet/976 < kontormøbelets/976 < kontormøbels/976 < kontormøbler/976 < kontormøblerne/976 < kontormøblernes < kontormøblers/976 < kontormøblet/976 < kontormøblets/976 --- > kontormøbel/815,70,944,828 71773c69337 < kontrast/70,73,7,976 --- > kontrast/70,73,7,976,941,947 71793a69358 > kontrolbesøg/70,252,10,976 71799a69365,69369 > kontrolfreak/193,70,976 > kontrolfreakene/976 > kontrolfreakenes > kontrolfreaks/976 > kontrolfreaks'/976 71801a69372 > kontrolinstans/70,73,7,976 72136,72137c69707 < korrespondance/46,70,976,941,947 < korrespondance/70,73,7,976 --- > korrespondance/70,73,7,976,941,947 72162a69733 > korruptionssag/70,73,7,976 72177a69749 > korsbåndsskade/70,73,7,976 72212a69785 > kortbane/70,73,7,976 72223c69796 < kortbølge/70,73,7,976 --- > kortbølge/70,73,7,976,941,947 72244a69818 > kortholder/20,7,70,976 72333,72342c69907 < kostcirkel/70,976 < kostcirkelen/976 < kostcirkelens/976 < kostcirkels/976 < kostcirklen/976 < kostcirklens/976 < kostcirkler/976 < kostcirklerne/976 < kostcirklernes < kostcirklers/976 --- > kostcirkel/815,822,70,944 72401d69965 < krab 72405,72408c69969,69970 < krabbe/70,73,7,976 < krabbe/941,947 < krabbede < krabbedes --- > krabbe/6,143,148 > krabbe/70,73,7,976,941,947 72417,72420d69978 < krabbende < krabbendes < krabber < krabbes 72422,72423d69979 < krabbet < krabbets 72486,72495c70042 < kraftoverførsel/70,976 < kraftoverførselen/976 < kraftoverførselens/976 < kraftoverførsels/976 < kraftoverførslen/976 < kraftoverførslens/976 < kraftoverførsler/976 < kraftoverførslerne/976 < kraftoverførslernes < kraftoverførslers/976 --- > kraftoverførsel/815,822,70,944 72549,72551c70096 < krakke < krakkede < krakkedes --- > krakke/6,143,148 72553,72568c70098 < krakkende < krakkendes < krakker < krakkes < krakket < krakkets < krakmandel/70,976 < krakmandelen/976 < krakmandelens/976 < krakmandels/976 < krakmandlen/976 < krakmandlens/976 < krakmandler/976 < krakmandlerne/976 < krakmandlernes < krakmandlers/976 --- > krakmandel/815,822,70,944 72571d70100 < kram 72579,72581c70108 < kramme < krammede < krammedes --- > kramme/6,143,148 72583,72588d70109 < krammende < krammendes < krammer < krammes < krammet < krammets 72620a70142 > krankaksel/815,822,70,944 72748c70270 < kredit/46,70,976 --- > kredit/46,70,976,941,947 72772c70294 < kreditvurdering/70,73,7,976 --- > kreditvurdering/70,73,7,976,939,947 72832,72839d70353 < kremfarvede/976 < kremfarvedere/976 < kremfarvederes/976 < kremfarvedes/976 < kremfarvedest/976 < kremfarvedeste/976 < kremfarvedestes/976 < kremfarvets/976 72851d70364 < krep 72854,72862c70367 < kreppe < kreppede < kreppedes < kreppende < kreppendes < krepper < kreppes < kreppet < kreppets --- > kreppe/6,143,148 73006,73015c70511 < krigsmiddel/70,976 < krigsmiddelet/976 < krigsmiddelets/976 < krigsmiddels/976 < krigsmidler/976 < krigsmidlerne/976 < krigsmidlernes < krigsmidlers/976 < krigsmidlet/976 < krigsmidlets/976 --- > krigsmiddel/815,70,944,828 73044a70541 > krigsskibsklasse/70,73,7,976 73057,73066c70554 < krigstruslen/976 < krigstruslens/976 < krigstrusler/976 < krigstruslerne/976 < krigstruslernes < krigstruslers/976 < krigstrussel/70,976 < krigstrusselen/976 < krigstrusselens/976 < krigstrussels/976 --- > krigstrussel/815,822,70,944 73081,73087c70569 < kril < krille < krillede < krilledes < krillende < krillendes < kriller --- > krille/6,143,148 73090d70571 < krilles 73092,73093d70572 < krillet < krillets 73115a70595 > kriminalitetsadfærd/193,70,976 73337a70818 > kronebeløb/70,252,10,976 73464d70944 < kruk 73467c70947 < krukke --- > krukke/6,143,148 73469,73470d70948 < krukkede < krukkedes 73472,73474d70949 < krukkende < krukkendes < krukker 73476,73477d70950 < krukkes < krukket 73479,73480d70951 < krukkets < krum 73487c70958 < krumme --- > krumme/6,143,148 73489,73490d70959 < krummede < krummedes 73492,73494d70960 < krummende < krummendes < krummer 73497,73499d70962 < krummes < krummet < krummets 73504,73514c70967 < krumsabel/70,976 < krumsabelen/976 < krumsabelens/976 < krumsabels/976 < krumsablen/976 < krumsablens/976 < krumsabler/976 < krumsablerne/976 < krumsablernes < krumsablers/976 < krumslut --- > krumsabel/815,822,70,944 73516,73524c70969 < krumslutte < krumsluttede < krumsluttedes < krumsluttende < krumsluttendes < krumslutter < krumsluttes < krumsluttet < krumsluttets --- > krumslutte/6,143,148 73528,73537c70973 < krumtapaksel/70,976 < krumtapakselen/976 < krumtapakselens/976 < krumtapaksels/976 < krumtapakslen/976 < krumtapakslens/976 < krumtapaksler/976 < krumtapakslerne/976 < krumtapakslernes < krumtapakslers/976 --- > krumtapaksel/815,822,70,944 73869a71306 > kuglestøder/20,7,70,976 73874d71310 < kuk 73879c71315 < kukke --- > kukke/6,143,148 73881,73882d71316 < kukkede < kukkedes 73885,73887d71318 < kukkende < kukkendes < kukker 73890,73892d71320 < kukkes < kukket < kukkets 73985,73988c71413,71416 < kulingsvarsel/70,976 < kulingsvarsels/976 < kulingsvarsler/976 < kulingsvarslerne/976 --- > kulingsvarsel/815,70,944,828 > kulingsvarsels > kulingsvarsler > kulingsvarslerne 73990,74000c71418,71421 < kulingsvarslers/976 < kulingsvarslet/976 < kulingsvarslets/976 < kulingvarsel/70,976 < kulingvarsels/976 < kulingvarsler/976 < kulingvarslerne/976 < kulingvarslernes < kulingvarslers/976 < kulingvarslet/976 < kulingvarslets/976 --- > kulingsvarslers > kulingsvarslet > kulingsvarslets > kulingvarsel/815,70,944,828 74085c71506 < kulturarv/193,70,976 --- > kulturarv/193,70,976,939,947 74180a71602 > kulturår/70,252,10,976 74223a71646 > kundekontakt/70,73,7,976 74227c71650 < kundeservice/70,73,7,976 --- > kundeservice/70,73,7,976,941,947 74312,74321c71735 < kunstmiddel/70,976 < kunstmiddelet/976 < kunstmiddelets/976 < kunstmiddels/976 < kunstmidler/976 < kunstmidlerne/976 < kunstmidlernes < kunstmidlers/976 < kunstmidlet/976 < kunstmidlets/976 --- > kunstmiddel/815,70,944,828 74358,74367c71772 < kunsttempel/70,976 < kunsttempelet/976 < kunsttempelets/976 < kunsttempels/976 < kunsttempler/976 < kunsttemplerne/976 < kunsttemplernes < kunsttemplers/976 < kunsttemplet/976 < kunsttemplets/976 --- > kunsttempel/815,70,944,828 74406,74411d71810 < kuplen/976 < kuplens/976 < kupler/976 < kuplerne/976 < kuplernes < kuplers/976 74418,74420c71817 < kuppel/70,976,941,947 < kuppelen/976 < kuppelens/976 --- > kuppel/815,822,70,944,941,947 74422d71818 < kuppels/976 74424d71819 < kur 74473c71868 < kurre --- > kurre/6,143,148 74475,74476d71869 < kurrede < kurredes 74479,74484d71871 < kurrende < kurrendes < kurrer < kurres < kurret < kurrets 74582,74591c71969 < kurvemøbel/70,976 < kurvemøbelet/976 < kurvemøbelets/976 < kurvemøbels/976 < kurvemøbler/976 < kurvemøblerne/976 < kurvemøblernes < kurvemøblers/976 < kurvemøblet/976 < kurvemøblets/976 --- > kurvemøbel/815,70,944,828 74669c72047,72048 < kvadratmeter/70,7,252,976 --- > kvadratmeter/70,7,252,976,941,947 > kvadratmeterpris/70,73,7,976 74734,74744c72113,72115 < kvalitetsstempel/70,976 < kvalitetsstempelet/976 < kvalitetsstempelets/976 < kvalitetsstempels/976 < kvalitetsstempler/976 < kvalitetsstemplerne/976 < kvalitetsstemplernes < kvalitetsstemplers/976 < kvalitetsstemplet/976 < kvalitetsstemplets/976 < kvalitetsstyring/193,70,976 --- > kvalitetssikring/70,73,7,976,939,947 > kvalitetsstempel/815,70,944,828 > kvalitetsstyring/193,70,976,939,947 74746a72118 > kvalitetsvurdering/70,73,7,976 74849d72220 < kvik 74854,74862c72225,72226 < kvikke < kvikkede < kvikkedes < kvikkende < kvikkendes < kvikker < kvikkes < kvikket < kvikkets --- > kvikke/6,143,148 > kviklån/70,252,10,976 74864c72228 < kviksølv/194,70,976 --- > kviksølv/194,70,976,941,947 74905,74914c72269 < kvindefængsel/70,976 < kvindefængselet/976 < kvindefængselets/976 < kvindefængsels/976 < kvindefængsler/976 < kvindefængslerne/976 < kvindefængslernes < kvindefængslers/976 < kvindefængslet/976 < kvindefængslets/976 --- > kvindefængsel/815,70,944,828 74991d72345 < kvit 74995,75000c72349 < kvitte/941,947 < kvittede < kvittedes < kvittende < kvittendes < kvitter --- > kvitte/6,143,148 75003,75005d72351 < kvittes < kvittet < kvittets 75050d72395 < kvæk 75055,75057c72400 < kvække < kvækkede < kvækkedes --- > kvække/6,143,148 75059,75064d72401 < kvækkende < kvækkendes < kvækker < kvækkes < kvækket < kvækkets 75119c72456 < kybernetik/193,70,976 --- > kybernetik/737,70,976 75236,75245c72573 < kæbemuskel/70,976 < kæbemuskelen/976 < kæbemuskelens/976 < kæbemuskels/976 < kæbemusklen/976 < kæbemusklens/976 < kæbemuskler/976 < kæbemusklerne/976 < kæbemusklernes < kæbemusklers/976 --- > kæbemuskel/815,822,70,944 75350,75359c72678 < kæm < kæmme < kæmmede < kæmmedes < kæmmende < kæmmendes < kæmmer < kæmmes < kæmmet < kæmmets --- > kæmme/6,143,148 75435a72755 > kærestepar/70,254,976 75439a72760 > kærestevold/193,70,976 75651c72972 < købstad/70,976 --- > købstad/70,976,939,947 75700a73022 > kødklister/194,70,976 75826,75835c73148 < kølemiddel/70,976 < kølemiddelet/976 < kølemiddelets/976 < kølemiddels/976 < kølemidler/976 < kølemidlerne/976 < kølemidlernes < kølemidlers/976 < kølemidlet/976 < kølemidlets/976 --- > kølemiddel/815,70,944,828 75902a73216 > kønsforskel/70,133,976 76010,76013c73324 < kørsel/70,976,939,947 < kørselen/976 < kørselens/976 < kørsels/976 --- > kørsel/815,822,70,944,939,947 76021,76026d73331 < kørslen/976 < kørslens/976 < kørsler/976 < kørslerne/976 < kørslernes < kørslers/976 76087d73391 < lab 76090,76098c73394 < labbe < labbede < labbedes < labbende < labbendes < labber < labbes < labbet < labbets --- > labbe/6,143,148 76143c73439 < laboratorieundersøgelse/193,70,976 --- > laboratorieundersøgelse/70,73,7,976 76169,76178c73465 < ladcykel/70,976 < ladcykelen/976 < ladcykelens/976 < ladcykels/976 < ladcyklen/976 < ladcyklens/976 < ladcykler/976 < ladcyklerne/976 < ladcyklernes < ladcyklers/976 --- > ladcykel/815,822,70,944 76281a73569 > lagersalg/70,252,10,976,939,947 76283c73571 < lagerstyring/193,70,976 --- > lagerstyring/193,70,976,939,947 76284a73573 > lagervare/70,73,7,976 76339d73627 < lak 76350,76352c73638 < lakke < lakkede < lakkedes --- > lakke/6,143,148 76354,76355d73639 < lakkende < lakkendes 76357,76360d73640 < lakker < lakkes < lakket < lakkets 76388d73667 < laksefarv 76390,76398c73669 < laksefarvede/976 < laksefarvedere/976 < laksefarvederes/976 < laksefarvedes/976 < laksefarvedest/976 < laksefarvedeste/976 < laksefarvedestes/976 < laksefarvet/976 < laksefarvets/976 --- > laksefarvet/70,915,976 76412,76419d73682 < laksfarvede/976 < laksfarvedere/976 < laksfarvederes/976 < laksfarvedes/976 < laksfarvedest/976 < laksfarvedeste/976 < laksfarvedestes/976 < laksfarvets/976 76433d73695 < lal 76442,76444c73704 < lalle < lallede < lalledes --- > lalle/6,143,148 76449,76454d73708 < lallende < lallendes < laller < lalles < lallet < lallets 76563,76572c73817 < lampekuplen/976 < lampekuplens/976 < lampekupler/976 < lampekuplerne/976 < lampekuplernes < lampekuplers/976 < lampekuppel/70,976 < lampekuppelen/976 < lampekuppelens/976 < lampekuppels/976 --- > lampekuppel/815,822,70,944 76674c73919 < landdistrikt/70,10,73,976 --- > landdistrikt/70,10,73,976,939,947 76696,76705c73941 < landevejskørsel/70,976 < landevejskørselen/976 < landevejskørselens/976 < landevejskørsels/976 < landevejskørslen/976 < landevejskørslens/976 < landevejskørsler/976 < landevejskørslerne/976 < landevejskørslernes < landevejskørslers/976 --- > landevejskørsel/815,822,70,944 76791c74027 < landmand/70,976 --- > landmand/70,976,939,947 76903a74140,74141 > landskap/36 > landskaps/36 77049a74288 > langdistanceløber/20,7,70,976 77274d74512 < lap 77287,77289c74525 < lappe/941,947 < lappede < lappedes --- > lappe/6,143,148,941,947 77301,77303d74536 < lappende < lappendes < lapper 77305,77306d74537 < lappes < lappet 77308d74538 < lappets 77404c74634 < lastvogn/20,7,70,976 --- > lastvogn/20,7,70,976,939,947 77445a74676 > latinsksproget/70,915,976 77469,77478c74700 < lattermuskel/70,976 < lattermuskelen/976 < lattermuskelens/976 < lattermuskels/976 < lattermusklen/976 < lattermusklens/976 < lattermuskler/976 < lattermusklerne/976 < lattermusklernes < lattermusklers/976 --- > lattermuskel/815,822,70,944 77857,77866c75079 < ledkapsel/70,976 < ledkapselen/976 < ledkapselens/976 < ledkapsels/976 < ledkapslen/976 < ledkapslens/976 < ledkapsler/976 < ledkapslerne/976 < ledkapslernes < ledkapslers/976 --- > ledkapsel/815,822,70,944 77984,77993c75197 < legeonkel/70,976 < legeonkelen/976 < legeonkelens/976 < legeonkels/976 < legeonklen/976 < legeonklens/976 < legeonkler/976 < legeonklerne/976 < legeonklernes < legeonklers/976 --- > legeonkel/815,822,70,944 78304d75507 < let 78396d75598 < lette 78397a75600 > lette/6,143,148 78399,78400d75601 < lettede < lettedes 78402,78406d75602 < lettende < lettendes < letter < lettes < lettet 78408d75603 < lettets 78420,78429c75615 < letvægtscykel/70,976 < letvægtscykelen/976 < letvægtscykelens/976 < letvægtscykels/976 < letvægtscyklen/976 < letvægtscyklens/976 < letvægtscykler/976 < letvægtscyklerne/976 < letvægtscyklernes < letvægtscyklers/976 --- > letvægtscykel/815,822,70,944 78490,78491c75676,75677 < leverance/70,73,7,976 < leverandør/70,73,7,976 --- > leverance/70,73,7,976,941,947 > leverandør/70,73,7,976,941,947 78495,78504c75681 < leveregel/70,976 < leveregelen/976 < leveregelens/976 < leveregels/976 < levereglen/976 < levereglens/976 < leveregler/976 < levereglerne/976 < levereglernes < levereglers/976 --- > leveregel/815,822,70,944 78543c75720 < levnedsmiddel/70,976 --- > levnedsmiddel/815,70,944,828,941,947 78545,78546d75721 < levnedsmiddelet/976 < levnedsmiddelets/976 78552d75726 < levnedsmiddels/976 78559d75732 < levnedsmidler/976 78563,78564d75735 < levnedsmidlet/976 < levnedsmidlets/976 78788a75960 > ligament/70,10,73,976,941,947 78801c75973 < ligebehandling/70,73,7,976 --- > ligebehandling/70,73,7,976,939,947 79131c76303 < limit/46,70,976 --- > limit/46,70,976,941,947 79132a76305 > limitering/70,73,7,976 79148,79155c76321 < limousinekørsel/70,976,939,947 < limousinekørsels/976 < limousinekørslen/976 < limousinekørslens/976 < limousinekørsler/976 < limousinekørslerne/976 < limousinekørslernes < limousinekørslers/976 --- > limousinekørsel/815,822,70,944,939,947 79430c76596 < liter/115,70,85,976,941,947 --- > liter/70,7,252,976,941,947 79479c76645 < liv/70,252,10,976,939,947 --- > liv/70,252,10,976 79490a76657,76658 > livealbum/70,254,976 > livealbum/70,9,976 79504a76673,76675 > livekoncert/70,73,7,976 > livemusik/737,70,976 > liveplade/70,73,7,976 79510a76682 > liveversion/70,73,7,976 79542,79546c76714,76716 < livmoder/70,976 < livmodere/976 < livmoderen/976 < livmoderens/976 < livmoderes/976 --- > livmoder/20,7,70,976,941,947 > livmoder/976 > livmoderfremfald/194,70,976 79559,79561c76729,76733 < livmor/976 < livmoren/976 < livmorens/976 --- > livmodervæg/70,133,976 > livmor/193,70,976,941,947 > livmorfremfald/194,70,976 > livmorhalskræft/193,70,976 > livmorhule/70,73,7,976 79566c76738 < livmors/976 --- > livmorvæg/70,133,976 79578c76750,76751 < livredder/20,7,70,976 --- > livredder/20,7,70,976,941,947 > livredderprøve/70,73,7,976 79622a76796 > livsangst/193,70,976 79701a76876 > livshjul/70,252,10,976 79730a76906 > livsledsagerske/70,73,7,976 79762a76939 > livsomstændighed/70,73,7,976 79771a76949 > livsrytme/70,73,7,976 79779a76958 > livsstilssygdom/70,133,976 79880d77058 < lob 79882,79890c77060 < lobbe < lobbede < lobbedes < lobbende < lobbendes < lobber < lobbes < lobbet < lobbets --- > lobbe/6,143,148 79927a77098 > lodde/6,143,148,941,947 79929,79931d77099 < lodde/941,947 < loddede < loddedes 79934,79935d77101 < loddende < loddendes 79939d77104 < lodder 79941,79942d77105 < loddes < loddet 79944d77106 < loddets 79964,79973c77126 < lodseddel/70,976 < lodseddelen/976 < lodseddelens/976 < lodseddels/976 < lodsedlen/976 < lodsedlens/976 < lodsedler/976 < lodsedlerne/976 < lodsedlernes < lodsedlers/976 --- > lodseddel/815,822,70,944 80050,80058c77203 < logge < loggede < loggedes < loggende < loggendes < logger < logges < logget < loggets --- > logge/6,143,148 80068c77213 < logistik/46,70,976 --- > logistik/46,70,976,941,947 80082d77226 < lok 80178c77322 < lokaltrafik/193,70,976 --- > lokaltrafik/737,70,976 80186c77330 < lokke/941,947 --- > lokke/6,143,148,941,947 80191,80192d77334 < lokkede < lokkedes 80195,80207c77337 < lokkemiddel/70,976 < lokkemiddelet/976 < lokkemiddelets/976 < lokkemiddels/976 < lokkemidler/976 < lokkemidlerne/976 < lokkemidlernes < lokkemidlers/976 < lokkemidlet/976 < lokkemidlets/976 < lokkende < lokkendes < lokker --- > lokkemiddel/815,70,944,828 80209,80210d77338 < lokkes < lokket 80212d77339 < lokkets 80384c77511 < losse/941,947 --- > losse/6,143,148,941,947 80386,80389d77512 < lossede < lossedes < lossende < lossendes 80391,80394d77513 < losser < losses < losset < lossets 80410,80419c77529 < lotteriseddel/70,976 < lotteriseddelen/976 < lotteriseddelens/976 < lotteriseddels/976 < lotterisedlen/976 < lotterisedlens/976 < lotterisedler/976 < lotterisedlerne/976 < lotterisedlernes < lotterisedlers/976 --- > lotteriseddel/815,822,70,944 80424a77535 > lottotal/70,254,976 80566,80575c77677 < lovregel/70,976 < lovregelen/976 < lovregelens/976 < lovregels/976 < lovreglen/976 < lovreglens/976 < lovregler/976 < lovreglerne/976 < lovreglernes < lovreglers/976 --- > lovregel/815,822,70,944 80796a77899 > luftgevær/70,10,73,976 80866,80875c77969 < lufttilførsel/70,976 < lufttilførselen/976 < lufttilførselens/976 < lufttilførsels/976 < lufttilførslen/976 < lufttilførslens/976 < lufttilførsler/976 < lufttilførslerne/976 < lufttilførslernes < lufttilførslers/976 --- > lufttilførsel/815,822,70,944 80926a78021 > lukkedag/20,7,70,976 80929,80938c78024 < lukkemuskel/70,976 < lukkemuskelen/976 < lukkemuskelens/976 < lukkemuskels/976 < lukkemusklen/976 < lukkemusklens/976 < lukkemuskler/976 < lukkemusklerne/976 < lukkemusklernes < lukkemusklers/976 --- > lukkemuskel/815,822,70,944 80990d78075 < lul 80996d78080 < lulle 80998,81005c78082 < lullede < lulledes < lullende < lullendes < luller < lulles < lullet < lullets --- > lulle/6,143,148 81151a78229,78230 > lungeorm/20,7,70,976 > lungeorm/70,7,252,976 81301a78381 > Luxemburg/699,55 81560a78641 > lyngbladbille/70,73,7,976 81705a78787 > lyshudet/70,915,976 81725a78808 > lyskæde/70,73,7,976 81727,81736c78810 < lyslederkabel/70,976 < lyslederkabelet/976 < lyslederkabelets/976 < lyslederkabels/976 < lyslederkabler/976 < lyslederkablerne/976 < lyslederkablernes < lyslederkablers/976 < lyslederkablet/976 < lyslederkablets/976 --- > lyslederkabel/815,70,944,828 81813c78887 < lystfisker/20,7,70,976 --- > lystfisker/20,7,70,976,941,947 81817d78890 < lysthavende 81917,81926c78990 < lædermøbel/70,976 < lædermøbelet/976 < lædermøbelets/976 < lædermøbels/976 < lædermøbler/976 < lædermøblerne/976 < lædermøblernes < lædermøblers/976 < lædermøblet/976 < lædermøblets/976 --- > lædermøbel/815,70,944,828 81996,81998c79060 < lægemiddel/70,976,941,947 < lægemiddelet/976 < lægemiddelets/976 --- > lægemiddel/815,70,944,828,941,947 82000,82006d79061 < lægemiddels/976 < lægemidler/976 < lægemidlerne/976 < lægemidlernes < lægemidlers/976 < lægemidlet/976 < lægemidlets/976 82019a79075 > lægevalg/194,70,976 82030,82039c79086 < læggekartoffel/70,976 < læggekartoffelen/976 < læggekartoffelens/976 < læggekartoffels/976 < læggekartoflen/976 < læggekartoflens/976 < læggekartofler/976 < læggekartoflerne/976 < læggekartoflernes < læggekartoflers/976 --- > læggekartoffel/815,822,70,944 82053,82062c79100 < lægmuskel/70,976 < lægmuskelen/976 < lægmuskelens/976 < lægmuskels/976 < lægmusklen/976 < lægmusklens/976 < lægmuskler/976 < lægmusklerne/976 < lægmusklernes < lægmusklers/976 --- > lægmuskel/815,822,70,944 82172,82175c79210 < længsel/70,976,939,947 < længselen/976 < længselens/976 < længsels/976 --- > længsel/815,822,70,944,939,947 82177,82182d79211 < længslen/976 < længslens/976 < længsler/976 < længslerne/976 < længslernes < længslers/976 82240,82249c79269 < læremiddel/70,976 < læremiddelet/976 < læremiddelets/976 < læremiddels/976 < læremidler/976 < læremidlerne/976 < læremidlernes < læremidlers/976 < læremidlet/976 < læremidlets/976 --- > læremiddel/815,70,944,828 82306,82315c79326 < lærermangel/70,976 < lærermangelen/976 < lærermangelens/976 < lærermangels/976 < lærermanglen/976 < lærermanglens/976 < lærermangler/976 < lærermanglerne/976 < lærermanglernes < lærermanglers/976 --- > lærermangel/822,70 82474a79486 > løbebånd/70,252,10,976,939,947 82499,82508c79511 < løbeseddel/70,976 < løbeseddelen/976 < løbeseddelens/976 < løbeseddels/976 < løbesedlen/976 < løbesedlens/976 < løbesedler/976 < løbesedlerne/976 < løbesedlernes < løbesedlers/976 --- > løbeseddel/815,822,70,944 82510a79514 > løbestil/20,7,70,976 82514c79518 < løbetræning/193,70,976 --- > løbetræning/193,70,976,939,947 82562,82571c79566 < løgkuplen/976 < løgkuplens/976 < løgkupler/976 < løgkuplerne/976 < løgkuplernes < løgkuplers/976 < løgkuppel/70,976 < løgkuppelen/976 < løgkuppelens/976 < løgkuppels/976 --- > løgkuppel/815,822,70,944 82638,82644c79633 < lømlen/976 < lømlens/976 < lømler/976 < lømlerne/976 < lømlernes < lømlers/976 < lømmel/70,976,941,947 --- > lømmel/815,822,70,944,941,947 82647,82649d79635 < lømmelen/976 < lømmelens/976 < lømmels/976 82686c79672 < lønmodtager/20,7,70,976 --- > lønmodtager/20,7,70,976,941,947 82719,82728c79705 < lønseddel/70,976 < lønseddelen/976 < lønseddelens/976 < lønseddels/976 < lønsedlen/976 < lønsedlens/976 < lønsedler/976 < lønsedlerne/976 < lønsedlernes < lønsedlers/976 --- > lønseddel/815,822,70,944 82741c79718 < løntilskud/70,254,976 --- > løntilskud/70,254,976,939,947 82869c79846 < løv/194,70,976 --- > løv/194,70,976,941,947 82902a79880 > løvrive/70,73,7,976 82947,82956c79925 < låneregel/70,976 < låneregelen/976 < låneregelens/976 < låneregels/976 < lånereglen/976 < lånereglens/976 < låneregler/976 < lånereglerne/976 < lånereglernes < lånereglers/976 --- > låneregel/815,822,70,944 82959,82968c79928 < låneseddel/70,976 < låneseddelen/976 < låneseddelens/976 < låneseddels/976 < lånesedlen/976 < lånesedlens/976 < lånesedler/976 < lånesedlerne/976 < lånesedlernes < lånesedlers/976 --- > låneseddel/815,822,70,944 83003,83012c79963 < lårmuskel/70,976 < lårmuskelen/976 < lårmuskelens/976 < lårmuskels/976 < lårmusklen/976 < lårmusklens/976 < lårmuskler/976 < lårmusklerne/976 < lårmusklernes < lårmusklers/976 --- > lårmuskel/815,822,70,944 83038d79988 < macho 83150,83159c80100,80101 < madtempel/70,976 < madtempelet/976 < madtempelets/976 < madtempels/976 < madtempler/976 < madtemplerne/976 < madtemplernes < madtemplers/976 < madtemplet/976 < madtemplets/976 --- > madspild/194,70,976 > madtempel/815,70,944,828 83178c80120 < mafia/70,73,7,976 --- > mafia/70,73,7,976,941,947 83350a80293 > magtforskydning/70,73,7,976 83367,83376c80310 < magtmiddel/70,976 < magtmiddelet/976 < magtmiddelets/976 < magtmiddels/976 < magtmidler/976 < magtmidlerne/976 < magtmidlernes < magtmidlers/976 < magtmidlet/976 < magtmidlets/976 --- > magtmiddel/815,70,944,828 83416,83425c80350 < mahognimøbel/70,976 < mahognimøbelet/976 < mahognimøbelets/976 < mahognimøbels/976 < mahognimøbler/976 < mahognimøblerne/976 < mahognimøblernes < mahognimøblers/976 < mahognimøblet/976 < mahognimøblets/976 --- > mahognimøbel/815,70,944,828 83577,83578c80502,80503 < majuskelen.majusklen/976 < majuskelens.majusklens/976 --- > majuskelen/976 > majuskelens/976 83579a80505,80506 > majusklen/976 > majusklens/976 83701a80629 > malapropos/70,10,73,976 83763,83772c80691 < malerpensel/70,976 < malerpenselen/976 < malerpenselens/976 < malerpensels/976 < malerpenslen/976 < malerpenslens/976 < malerpensler/976 < malerpenslerne/976 < malerpenslernes < malerpenslers/976 --- > malerpensel/815,822,70,944 83850,83859c80769 < malkeskamlen/976 < malkeskamlens/976 < malkeskamler/976 < malkeskamlerne/976 < malkeskamlernes < malkeskamlers/976 < malkeskammel/70,976 < malkeskammelen/976 < malkeskammelens/976 < malkeskammels/976 --- > malkeskammel/815,822,70,944 83950c80860 < management/190,976 --- > management/190,976,941,947 84006c80916,80917 < mandel/70,976 --- > mandehørm/193,70,976 > mandel/815,822,70,944,941,947 84008,84009d80918 < mandelen/976 < mandelens/976 84016d80924 < mandels/976 84052,84057d80959 < mandlen/976 < mandlens/976 < mandler/976 < mandlerne/976 < mandlernes < mandlers/976 84184c81086 < mangel/70,976 --- > mangel/815,822,70,944,941,947 84186,84187d81087 < mangelen/976 < mangelens/976 84192d81091 < mangels/976 84197d81095 < mangelunde 84246,84251d81143 < manglen/976 < manglens/976 < mangler/976 < manglerne/976 < manglernes < manglers/976 84635,84644c81527 < marietidsel/70,976 < marietidselen/976 < marietidselens/976 < marietidsels/976 < marietidslen/976 < marietidslens/976 < marietidsler/976 < marietidslerne/976 < marietidslernes < marietidslers/976 --- > marietidsel/815,822,70,944 84753,84754c81636,81637 < mark/70,73,7,976 < mark/70,976 --- > mark/70,7,252,976 > mark/70,73,7,976,941,947 84837,84841d81719 < mar'ken/976 < marken/976 < markene/976 < markenes < markens/976 84871d81748 < marks/976 84913c81790 < marmor/194,70,976 --- > marmor/194,70,976,941,947 85313c82190 < master/20,7,70,976,466 --- > master/20,7,70,976,941,947 85334a82212 > match/70,252,10,976,941,947 85366d82243 < materiale/70,9,976,941,947 85385,85394c82262 < materialemangel/70,976 < materialemangelen/976 < materialemangelens/976 < materialemangels/976 < materialemanglen/976 < materialemanglens/976 < materialemangler/976 < materialemanglerne/976 < materialemanglernes < materialemanglers/976 --- > materialemangel/815,822,70,944 85615a82484 > mavemuskel/815,822,70,944,941,947 85751c82620 < medborgerskab/70,10,73,976 --- > medborgerskab/70,10,73,976,939,947 85789,85798c82658 < meddelelsesmiddel/70,976 < meddelelsesmiddelet/976 < meddelelsesmiddelets/976 < meddelelsesmiddels/976 < meddelelsesmidler/976 < meddelelsesmidlerne/976 < meddelelsesmidlernes < meddelelsesmidlers/976 < meddelelsesmidlet/976 < meddelelsesmidlets/976 --- > meddelelsesmiddel/815,70,944,828 86039a82900 > medlemsfordel/20,7,70,976 86041c82902 < medlemskab/70,10,73,976 --- > medlemskab/70,10,73,976,939,947 86314,86317c83175 < mejsel/70,976 < mejselen/976 < mejselens/976 < mejsels/976 --- > mejsel/815,822,70,944 86320,86325d83177 < mejslen/976 < mejslens/976 < mejsler/976 < mejslerne/976 < mejslernes < mejslers/976 86332c83184 < mekaniker/20,7,70,976 --- > mekaniker/20,7,70,976,941,947 86435c83287 < mellemdistance/70,73,7,976 --- > mellemdistance/70,73,7,976,941,947 86474a83327 > mellemkrigsår/70,252,10,976 86521,86522c83374,83375 < mellemrubrik/193,70,976 < mellemrum/70,254,976 --- > mellemrubrik/46,70,976 > mellemrum/70,254,976,939,947 86847,86856c83700 < menneskevrimle/976 < menneskevrimlen/976 < menneskevrimlene/976 < menneskevrimlenes < menneskevrimlens/976 < menneskevrimles/976 < menneskevrimmel/70,976 < menneskevrimmelen/976 < menneskevrimmelens/976 < menneskevrimmels/976 --- > menneskevrimmel/815,822,70,944 86933c83777 < mentor/70,73,7,976 --- > mentor/70,73,7,976,941,947 87013a83858 > meritoverførsel/815,822,70,944 87221c84066 < metallic --- > metallic/941,947 87481a84327 > middagslukket/70,915,976 87490c84336 < middel/70,976,941,947 --- > middel/815,70,944,828,941,947 87498,87499d84343 < middelet/976 < middelets/976 87525d84368 < middels/976 87539,87542d84381 < midler/976 < midlerne/976 < midlernes < midlers/976 87546,87547d84384 < midlet/976 < midlets/976 87670a84508 > midtlivskrise/70,73,7,976 87675d84512 < midtpunktflyende 87797a84635 > mikrobryggeri/70,10,73,976 87803c84641 < mikroelektronik/193,70,976 --- > mikroelektronik/737,70,976 88185,88194c85023 < miljøtruslen/976 < miljøtruslens/976 < miljøtrusler/976 < miljøtruslerne/976 < miljøtruslernes < miljøtruslers/976 < miljøtrussel/70,976 < miljøtrusselen/976 < miljøtrusselens/976 < miljøtrussels/976 --- > miljøtrussel/815,822,70,944 88235c85064 < milliliter/115,70,85,976 --- > milliliter/70,7,252,976 88238a85068 > millimeterretfærdighed/193,70,976 88483,88492c85313 < minicykel/70,976 < minicykelen/976 < minicykelens/976 < minicykels/976 < minicyklen/976 < minicyklens/976 < minicykler/976 < minicyklerne/976 < minicyklernes < minicyklers/976 --- > minicykel/815,822,70,944 88522,88533c85343,85344 < minimumstemperatur/70,976 < minimumstemperaturen/976 < minimumstemperaturens/976 < minimumstemperaturer/976 < minimumstemperaturers/976 < minimumstemperaturs/976 < minimumtemperatur/976 < minimumtemperaturen/976 < minimumtemperaturens/976 < minimumtemperaturer/976 < minimumtemperaturers/976 < minimumtemperaturs/976 --- > minimumstemperatur/70,73,7,976 > minimumtemperatur/70,73,7,976 88651c85462 < mirakel/70,976 --- > mirakel/815,70,944,828,941,947 88655,88665c85466 < mirakelmiddel/70,976 < mirakelmiddelet/976 < mirakelmiddelets/976 < mirakelmiddels/976 < mirakelmidler/976 < mirakelmidlerne/976 < mirakelmidlernes < mirakelmidlers/976 < mirakelmidlet/976 < mirakelmidlets/976 < mirakels/976 --- > mirakelmiddel/815,70,944,828 88667,88672d85467 < mirakler/976 < miraklerne/976 < miraklernes < miraklers/976 < miraklet/976 < miraklets/976 88726,88727c85521,85522 < misbrug/70,252,10,976 < misbrug/70,7,252,976 --- > misbrug/70,252,10,976,939,947 > misbrug/70,7,252,976,939,947 88890,88895c85685 < mistrivsel/70,976 < mistrivselen/976 < mistrivselens/976 < mistrivsels/976 < mistrivslen/976 < mistrivslens --- > mistrivsel/822,70 89193,89202c85983 < modforholdsregel/70,976 < modforholdsregelen/976 < modforholdsregelens/976 < modforholdsregels/976 < modforholdsreglen/976 < modforholdsreglens/976 < modforholdsregler/976 < modforholdsreglerne/976 < modforholdsreglernes < modforholdsreglers/976 --- > modforholdsregel/815,822,70,944 89412a86194,86195 > m.o.h. > m.o.h/1111 89456d86238 < mok 89462c86244 < mokke --- > mokke/6,143,148 89464,89471d86245 < mokkede < mokkedes < mokkende < mokkendes < mokker < mokkes < mokket < mokkets 89684c86458 < montage/70,73,7,976 --- > montage/70,73,7,976,941,947 89708,89709c86482 < mop < moppe --- > moppe/6,143,148 89711,89712d86483 < moppede < moppedes 89714,89719d86484 < moppende < moppendes < mopper < moppes < moppet < moppets 90199,90208c86964 < motionscykel/70,976 < motionscykelen/976 < motionscykelens/976 < motionscykels/976 < motionscyklen/976 < motionscyklens/976 < motionscykler/976 < motionscyklerne/976 < motionscyklernes < motionscyklers/976 --- > motionscykel/815,822,70,944 90236c86992 < motorcykel/70,976 --- > motorcykel/815,822,70,944,941,947 90239,90247c86995 < motorcykelen/976 < motorcykelens/976 < motorcykels/976 < motorcyklen/976 < motorcyklens/976 < motorcykler/976 < motorcyklerne/976 < motorcyklernes < motorcyklers/976 --- > motorcykelkørekort/70,252,10,976 90541a87290 > multimilliardær/70,73,7,976 90573a87323 > multitalent/70,10,73,976 90580,90589c87330 < mulæsel/70,976 < mulæselet/976 < mulæselets/976 < mulæsels/976 < mulæsler/976 < mulæslerne/976 < mulæslernes < mulæslers/976 < mulæslet/976 < mulæslets/976 --- > mulæsel/815,70,944,828 90791,90792c87532 < museeum/976 < musefælde/70,73,7,976 --- > musefælde/70,73,7,976,941,947 90810a87551 > musemåtte/70,73,7,976 90817,90818c87558 < museum/70,976 < museum's/976 --- > museum/70,976,939,947 90844c87584,87586 < musical/70,73,7,976 --- > musical/70,73,7,976,941,947 > musicals' > musicals/976 90886a87629 > musikgenre/70,73,7,976 90958c87701 < muskel/70,976,941,947 --- > muskel/815,822,70,944,941,947 90963,90964d87705 < muskelen/976 < muskelens/976 90986d87726 < muskels/976 91004,91009d87743 < musklen/976 < musklens/976 < muskler/976 < musklerne/976 < musklernes < musklers/976 91013d87746 < muslim/46,70,976 91015,91018d87747 < muslim/976 < muslimen < muslimerne/70,73,7,976 < muslimernes/976 91290,91299c88019 < mærkeseddel/70,976 < mærkeseddelen/976 < mærkeseddelens/976 < mærkeseddels/976 < mærkesedlen/976 < mærkesedlens/976 < mærkesedler/976 < mærkesedlerne/976 < mærkesedlernes < mærkesedlers/976 --- > mærkeseddel/815,822,70,944 91336c88056 < møbel/70,976 --- > møbel/815,70,944,828,941,947 91342,91343d88061 < møbelet/976 < møbelets/976 91359d88076 < møbels/976 91365d88081 < møbler/976 91369,91373d88084 < møblerne/976 < møblernes < møblers/976 < møblet/976 < møblets/976 91483,91492c88194 < mølmiddel/70,976 < mølmiddelet/976 < mølmiddelets/976 < mølmiddels/976 < mølmidler/976 < mølmidlerne/976 < mølmidlernes < mølmidlers/976 < mølmidlet/976 < mølmidlets/976 --- > mølmiddel/815,70,944,828 91780c88482 < målmand/70,976 --- > målmand/70,976,939,947 91895,91904c88597 < mårhårspensel/70,976 < mårhårspenselen/976 < mårhårspenselens/976 < mårhårspensels/976 < mårhårspenslen/976 < mårhårspenslens/976 < mårhårspensler/976 < mårhårspenslerne/976 < mårhårspenslernes < mårhårspenslers/976 --- > mårhårspensel/815,822,70,944 91944a88638 > nabovinkel/815,822,70,944 92066,92075c88760 < nakkemuskel/70,976 < nakkemuskelen/976 < nakkemuskelens/976 < nakkemuskels/976 < nakkemusklen/976 < nakkemusklens/976 < nakkemuskler/976 < nakkemusklerne/976 < nakkemusklernes < nakkemusklers/976 --- > nakkemuskel/815,822,70,944 92220a88906 > narkobaron/70,73,7,976 92516,92525c89202 < natkørsel/70,976 < natkørselen/976 < natkørselens/976 < natkørsels/976 < natkørslen/976 < natkørslens/976 < natkørsler/976 < natkørslerne/976 < natkørslernes < natkørslers/976 --- > natkørsel/815,822,70,944 92664c89341 < naturbeskyttelse/70,73,7,976 --- > naturbeskyttelse/70,73,7,976,939,947 92712c89389 < naturfredning/70,73,7,976 --- > naturfredning/70,73,7,976,939,947 92720c89397 < naturgenopretning/70,73,7,976 --- > naturgenopretning/70,73,7,976,939,947 92772,92781c89449 < naturlægemiddel/70,976 < naturlægemiddelet/976 < naturlægemiddelets/976 < naturlægemiddels/976 < naturlægemidler/976 < naturlægemidlerne/976 < naturlægemidlernes < naturlægemidlers/976 < naturlægemidlet/976 < naturlægemidlets/976 --- > naturlægemiddel/815,70,944,828 92792,92801c89460 < naturmiddel/70,976 < naturmiddelet/976 < naturmiddelets/976 < naturmiddels/976 < naturmidler/976 < naturmidlerne/976 < naturmidlernes < naturmidlers/976 < naturmidlet/976 < naturmidlets/976 --- > naturmiddel/815,70,944,828 92966a89626 > navneoversigt/70,73,7,976,939,947 92974,92983c89634 < navneseddel/70,976 < navneseddelen/976 < navneseddelens/976 < navneseddels/976 < navnesedlen/976 < navnesedlens/976 < navnesedler/976 < navnesedlerne/976 < navnesedlernes < navnesedlers/976 --- > navneseddel/815,822,70,944 93365,93368c90016 < nedkørsel/70,976 < nedkørselen/976 < nedkørselens/976 < nedkørsels/976 --- > nedkørsel/815,822,70,944,939,947 93370,93375d90017 < nedkørslen/976 < nedkørslens/976 < nedkørsler/976 < nedkørslerne/976 < nedkørslernes < nedkørslers/976 93611,93620c90253 < nedstam < nedstamme < nedstammede < nedstammedes < nedstammende < nedstammendes < nedstammer < nedstammes < nedstammet < nedstammets --- > nedstamme/6,143,148 93650,93659c90283 < nedstir < nedstirre < nedstirrede < nedstirredes < nedstirrende < nedstirrendes < nedstirrer < nedstirres < nedstirret < nedstirrets --- > nedstirre/6,143,148 93712d90335 < nedtrap 93714,93722c90337 < nedtrappe < nedtrappede < nedtrappedes < nedtrappende < nedtrappendes < nedtrapper < nedtrappes < nedtrappet < nedtrappets --- > nedtrappe/6,143,148 93729,93738c90344 < nedtryk < nedtrykke < nedtrykkede < nedtrykkedes < nedtrykkende < nedtrykkendes < nedtrykker < nedtrykkes < nedtrykket < nedtrykkets --- > nedtrykke/6,143,148 93972,93981c90578 < nervemiddel/70,976 < nervemiddelet/976 < nervemiddelets/976 < nervemiddels/976 < nervemidler/976 < nervemidlerne/976 < nervemidlernes < nervemidlers/976 < nervemidlet/976 < nervemidlets/976 --- > nervemiddel/815,70,944,828 94013a90611 > netbaseret/70,915,976 94187a90786 > newtonmeter/70,7,252,976 94246c90845 < niche/70,73,7,976 --- > niche/70,73,7,976,941,947 94427c91026,91027 < nikotin/193,70,976 --- > nikotin/193,70,976,941,947 > nikotin/194,70,976,941,947 94497d91096 < nip 94498a91098 > nipersoners 94508,94510c91108 < nippe < nippede < nippedes --- > nippe/6,143,148 94519,94524d91116 < nippende < nippendes < nipper < nippes < nippet < nippets 94585c91177 < nitrogen/194,70,976 --- > nitrogen/194,70,976,941,947 94607d91198 < nittenårs 95016c91607 < norsk/193,70,976 --- > norsk/190,976,941,947 95019a91611,91612 > norsken/70,976 > norskens 95160c91753 < nudansk/193,70,976 --- > nudansk/190,976 95399c91992 < nydansk/193,70,976 --- > nydansk/190,976 95411,95413c92004 < nydelsesmiddel/70,976 < nydelsesmiddelet/976 < nydelsesmiddelets/976 --- > nydelsesmiddel/815,70,944,828 95415,95421d92005 < nydelsesmiddels/976 < nydelsesmidler/976 < nydelsesmidlerne/976 < nydelsesmidlernes < nydelsesmidlers/976 < nydelsesmidlet/976 < nydelsesmidlets/976 95503c92087 < nygræsk/193,70,976 --- > nygræsk/190,976 95514a92099 > nyhedsarkiv/70,10,73,976 95672c92257 < nynorsk/193,70,976 --- > nynorsk/190,976 96113d92697 < næn 96115,96123c92699 < nænne < nænnede < nænnedes < nænnende < nænnendes < nænner < nænnes < nænnet < nænnets --- > nænne/6,143,148 96166,96168c92742 < næringsmiddel/70,976 < næringsmiddelet/976 < næringsmiddelets/976 --- > næringsmiddel/815,70,944,828,941,947 96170,96176d92743 < næringsmiddels/976 < næringsmidler/976 < næringsmidlerne/976 < næringsmidlernes < næringsmidlers/976 < næringsmidlet/976 < næringsmidlets/976 96609,96610c93176 < nørdede < nørdet/976 --- > nørdet/70,915,976 96802a93369 > observand/70,73,7,976 97122a93690 > okseblodsfarvet/70,915,976 97280a93849 > olfert/70,73,7,976 97448a94018 > ombordstigning/70,73,7,976 97499d94068 < ombyt 97502,97504c94071 < ombytte < ombyttede < ombyttedes --- > ombytte/6,143,148 97506,97511d94072 < ombyttende < ombyttendes < ombytter < ombyttes < ombyttet < ombyttets 97519,97522c94080 < omdan < omdanne < omdannede < omdannedes --- > omdanne/6,143,148 97524,97529d94081 < omdannende < omdannendes < omdanner < omdannes < omdannet < omdannets 97541d94092 < omdragende 97565,97569c94116 < omfat < omfatte < omfattede < omfattedes < omfattende --- > omfatte/6,143,148 97571,97575d94117 < omfattendes < omfatter < omfattes < omfattet < omfattets 97754,97757c94296 < omkørsel/70,976 < omkørselen/976 < omkørselens/976 < omkørsels/976 --- > omkørsel/815,822,70,944,939,947 97759,97764d94297 < omkørslen/976 < omkørslens/976 < omkørsler/976 < omkørslerne/976 < omkørslernes < omkørslers/976 97813c94346 < omnummerere --- > omnummerere/6,143,148 97823d94355 < ompot 97825,97833c94357 < ompotte < ompottede < ompottedes < ompottende < ompottendes < ompotter < ompottes < ompottet < ompottets --- > ompotte/6,143,148 97840,97849c94364 < omram < omramme < omrammede < omrammedes < omrammende < omrammendes < omrammer < omrammes < omrammet < omrammets --- > omramme/6,143,148 97923d94437 < omslut 97925,97933c94439 < omslutte < omsluttede < omsluttedes < omsluttende < omsluttendes < omslutter < omsluttes < omsluttet < omsluttets --- > omslutte/6,143,148 97951,97960c94457 < omstil < omstille < omstillede < omstilledes < omstillende < omstillendes < omstiller < omstilles < omstillet < omstillets --- > omstille/6,143,148 98071c94568 < onkel/70,976 --- > onkel/815,822,70,944 98073,98081d94569 < onkelen/976 < onkelens/976 < onkels/976 < onklen/976 < onklens/976 < onkler/976 < onklerne/976 < onklernes < onklers/976 98087a94576,94580 > onlineordbog/193,70,976 > onlineordbøger/976 > onlineordbøgerne/976 > onlineordbøgernes > onlineordbøgers/976 98106c94599 < onshore --- > onshore/941,947 98254,98257c94747 < opbyg < opbygge < opbyggede < opbyggedes --- > opbygge/6,143,148 98261d94750 < opbyggende 98263,98264d94751 < opbyggendes < opbygger 98266,98267d94752 < opbygges < opbygget 98269d94753 < opbyggets 98282c94766 < opdatering/70,73,7,976 --- > opdatering/70,73,7,976,939,947 98326d94809 < opdræt 98329,98334c94812 < opdrætte < opdrættede < opdrættedes < opdrættende < opdrættendes < opdrætter --- > opdrætte/6,143,148 98336,98338d94813 < opdrættes < opdrættet < opdrættets 98359,98368c94834 < opdæm < opdæmme < opdæmmede < opdæmmedes < opdæmmende < opdæmmendes < opdæmmer < opdæmmes < opdæmmet < opdæmmets --- > opdæmme/6,143,148 98427d94892 < 'opfaret 98431,98434c94896 < opfat < opfatte < opfattede < opfattedes --- > opfatte/6,143,148 98438,98443d94899 < opfattende < opfattendes < opfatter < opfattes < opfattet < opfattets 98461,98470c94917 < opflam < opflamme < opflammede < opflammedes < opflammende < opflammendes < opflammer < opflammes < opflammet < opflammets --- > opflamme/6,143,148 98514c94961 < opfølgning/70,73,7,976 --- > opfølgning/70,73,7,976,939,947 98518,98523c94965 < opførsel/70,976 < opførselen/976 < opførselens/976 < opførsels/976 < opførslen/976 < opførslens --- > opførsel/822,70,939,947 98600c95042 < opgørelse/70,73,7,976 --- > opgørelse/70,73,7,976,939,947 98689,98698c95131,95132 < ophug < ophugge < ophuggede < ophuggedes < ophuggende < ophuggendes < ophugger < ophugges < ophugget < ophuggets --- > ophug/70,254,976,939,947 > ophugge/6,143,148 98703c95137 < ophængning/70,73,7,976 --- > ophængning/70,73,7,976,939,947 98830c95264 < opkvalificering/70,73,7,976 --- > opkvalificering/70,73,7,976,939,947 98838,98847c95272 < opkørsel/70,976 < opkørselen/976 < opkørselens/976 < opkørsels/976 < opkørslen/976 < opkørslens/976 < opkørsler/976 < opkørslerne/976 < opkørslernes < opkørslers/976 --- > opkørsel/815,822,70,944,939,947 98925,98934c95350 < oplysningsseddel/70,976 < oplysningsseddelen/976 < oplysningsseddelens/976 < oplysningsseddels/976 < oplysningssedlen/976 < oplysningssedlens/976 < oplysningssedler/976 < oplysningssedlerne/976 < oplysningssedlernes < oplysningssedlers/976 --- > oplysningsseddel/815,822,70,944 98974,98983c95390 < opløsningsmiddel/70,976 < opløsningsmiddelet/976 < opløsningsmiddelets/976 < opløsningsmiddels/976 < opløsningsmidler/976 < opløsningsmidlerne/976 < opløsningsmidlernes < opløsningsmidlers/976 < opløsningsmidlet/976 < opløsningsmidlets/976 --- > opløsningsmiddel/815,70,944,828 99116c95523 < opretholdelse/193,70,976 --- > opretholdelse/193,70,976,939,947 99256a95664,95665 > opsamlingsalbum/70,254,976 > opsamlingsalbum/70,9,976 99277,99286c95686 < opsigelsesvarsel/70,976 < opsigelsesvarselet/976 < opsigelsesvarselets/976 < opsigelsesvarsels/976 < opsigelsesvarsler/976 < opsigelsesvarslerne/976 < opsigelsesvarslernes < opsigelsesvarslers/976 < opsigelsesvarslet/976 < opsigelsesvarslets/976 --- > opsigelsesvarsel/815,70,944,828 99903,99912c96303 < opvaskemiddel/70,976 < opvaskemiddelet/976 < opvaskemiddelets/976 < opvaskemiddels/976 < opvaskemidler/976 < opvaskemidlerne/976 < opvaskemidlernes < opvaskemidlers/976 < opvaskemidlet/976 < opvaskemidlets/976 --- > opvaskemiddel/815,70,944,828,941,947 99987c96378 < orakel/70,976 --- > orakel/815,70,944,828,941,947 99989d96379 < orakels/976 99992,99997d96381 < orakler/976 < oraklerne/976 < oraklernes < oraklers/976 < oraklet/976 < oraklets/976 100025a96410 > ordblindhed/193,70,976 100071,100078c96456 < ordenskapitel/70,976 < ordenskapitels/976 < ordenskapitler/976 < ordenskapitlerne/976 < ordenskapitlernes < ordenskapitlers/976 < ordenskapitlet/976 < ordenskapitlets/976 --- > ordenskapitel/815,70,944,828 100082,100085c96460 < ordensregel/70,976 < ordensregelen/976 < ordensregelens/976 < ordensregels/976 --- > ordensregel/815,822,70,944 100087,100092d96461 < ordensreglen/976 < ordensreglens/976 < ordensregler/976 < ordensreglerne/976 < ordensreglernes < ordensreglers/976 100175,100184c96544 < ordreseddel/70,976 < ordreseddelen/976 < ordreseddelens/976 < ordreseddels/976 < ordresedlen/976 < ordresedlens/976 < ordresedler/976 < ordresedlerne/976 < ordresedlernes < ordresedlers/976 --- > ordreseddel/815,822,70,944 100302a96663 > originaltitel/815,822,70,944 100382a96744 > ormebehandling/70,73,7,976 100385,100394c96747 < ormemiddel/70,976 < ormemiddelet/976 < ormemiddelets/976 < ormemiddels/976 < ormemidler/976 < ormemidlerne/976 < ormemidlernes < ormemidlers/976 < ormemidlet/976 < ormemidlets/976 --- > ormemiddel/815,70,944,828,941,947 100670c97023 < ovenlys/194,70,976 --- > ovenlys/194,70,976,941,947 100708,100717c97061 < overarbejdspukkel/70,976 < overarbejdspukkelen/976 < overarbejdspukkelens/976 < overarbejdspukkels/976 < overarbejdspuklen/976 < overarbejdspuklens/976 < overarbejdspukler/976 < overarbejdspuklerne/976 < overarbejdspuklernes < overarbejdspuklers/976 --- > overarbejdspukkel/815,822,70,944 100719,100728c97063 < overarmsmuskel/70,976 < overarmsmuskelen/976 < overarmsmuskelens/976 < overarmsmuskels/976 < overarmsmusklen/976 < overarmsmusklens/976 < overarmsmuskler/976 < overarmsmusklerne/976 < overarmsmusklernes < overarmsmusklers/976 --- > overarmsmuskel/815,822,70,944 100754,100757c97089 < overbeskyt < overbeskytte < overbeskyttede < overbeskyttedes --- > overbeskytte/6,143,148 100759,100764d97090 < overbeskyttende < overbeskyttendes < overbeskytter < overbeskyttes < overbeskyttet < overbeskyttets 100826,100835c97152 < overbyg < overbygge < overbyggede < overbyggedes < overbyggende < overbyggendes < overbygger < overbygges < overbygget < overbyggets --- > overbygge/6,143,148 100914d97230 < overdæk 100916,100924c97232 < overdække < overdækkede < overdækkedes < overdækkende < overdækkendes < overdækker < overdækkes < overdækket < overdækkets --- > overdække/6,143,148 101056,101059c97364 < overførsel/70,976,939,947 < overførselen/976 < overførselens/976 < overførsels/976 --- > overførsel/815,822,70,944,939,947 101061,101066d97365 < overførslen/976 < overførslens/976 < overførsler/976 < overførslerne/976 < overførslernes < overførslers/976 101244,101253c97543 < overklip < overklippe < overklippede < overklippedes < overklippende < overklippendes < overklipper < overklippes < overklippet < overklippets --- > overklippe/6,143,148 101272,101281c97562 < overkonstabel/70,976 < overkonstabelen/976 < overkonstabelens/976 < overkonstabels/976 < overkonstablen/976 < overkonstablens/976 < overkonstabler/976 < overkonstablerne/976 < overkonstablernes < overkonstablers/976 --- > overkonstabel/815,822,70,944 101294,101303c97575 < overkørsel/70,976 < overkørselen/976 < overkørselens/976 < overkørsels/976 < overkørslen/976 < overkørslens/976 < overkørsler/976 < overkørslerne/976 < overkørslernes < overkørslers/976 --- > overkørsel/815,822,70,944 101757c98029 < overslag/70,252,10,976 --- > overslag/70,252,10,976,939,947 102178a98451 > paddel/815,822,70,944 102220d98492 < pak 102233c98505 < pakke --- > pakke/6,143,148 102235,102236d98506 < pakkede < pakkedes 102240,102241d98509 < pakkende < pakkendes 102247d98514 < pakker 102250,102262c98517 < pakkes < pakkeseddel/70,976 < pakkeseddelen/976 < pakkeseddelens/976 < pakkeseddels/976 < pakkesedlen/976 < pakkesedlens/976 < pakkesedler/976 < pakkesedlerne/976 < pakkesedlernes < pakkesedlers/976 < pakket < pakkets --- > pakkeseddel/815,822,70,944 102266,102275c98521 < pakæsel/70,976 < pakæselet/976 < pakæselets/976 < pakæsels/976 < pakæsler/976 < pakæslerne/976 < pakæslernes < pakæslers/976 < pakæslet/976 < pakæslets/976 --- > pakæsel/815,70,944,828 102299d98544 < palle 102300a98546 > palle/6,143,148 102302,102307c98548 < pallede < palledes < pallende < pallendes < paller < palles --- > pallelaster/20,7,70,976 102310d98550 < pallet 102312d98551 < pallets 102421d98659 < panik 102426,102434c98664 < panikke < panikkede < panikkedes < panikkende < panikkendes < panikker < panikkes < panikket < panikkets --- > panikke/6,143,148 102455a98686 > panoramaudsigt/70,73,7,976 102606,102615c98837 < papirstrimlen/976 < papirstrimlens/976 < papirstrimler/976 < papirstrimlerne/976 < papirstrimlernes < papirstrimlers/976 < papirstrimmel/70,976 < papirstrimmelen/976 < papirstrimmelens/976 < papirstrimmels/976 --- > papirstrimmel/815,822,70,944 102680d98901 < par 102684,102693c98905 < parabel/70,976 < parabelen/976 < parabelens/976 < parabels/976 < parablen/976 < parablens/976 < parabler/976 < parablerne/976 < parablernes < parablers/976 --- > parabel/815,822,70,944 102989,102996c99201 < parre < parrede < parredes < parrende < parrendes < parrer < parres < parret --- > parre/6,143,148 102998d99202 < parrets 103039a99244 > parties' 103041,103043d99245 < parties'/976 < partieses/976 < parties's/976 103056c99258 < partikel/70,976 --- > partikel/70,976,941,947 103094a99297 > partisekretær/70,73,7,976 103114a99318 > partshøring/70,73,7,976 103116c99320 < party/70,976 --- > party/70,10,73,976,941,947 103118,103124d99321 < partyer/976 < partyerne/976 < partyernes < partyers/976 < partyet/976 < partyets/976 < partys/976 103136d99332 < pas 103191d99386 < passe 103193c99388 < passé/190,976 --- > passe/6,143,148 103196,103198d99390 < passede < passedes < passende 103200d99391 < passendes 103204d99394 < passer 103213,103223c99403 < passérseddel/70,976 < passérseddelen/976 < passérseddelens/976 < passérseddels/976 < passérsedlen/976 < passérsedlens/976 < passérsedler/976 < passérsedlerne/976 < passérsedlernes < passérsedlers/976 < passes --- > passerseddel/815,822,70,944 103226,103227d99405 < passet < passets 103287d99464 < pat 103345a99523 > patentsag/70,73,7,976 103361a99540 > patienthotel/70,9,976 103363a99543,99545 > patientkontakt/70,73,7,976 > patientunderlag/194,70,976 > patientvejleder/20,7,70,976 103406a99589,99590 > patruljebil/70,73,7,976 > patruljebåd/20,7,70,976 103408a99593 > patruljetjeneste/70,73,7,976 103411a99597 > patte/6,143,148,941,947 103413d99598 < patte/941,947 103422,103423d99606 < pattede < pattedes 103426,103431d99608 < pattende < pattendes < patter < pattes < pattet < pattets 103527,103536c99704 < peberfrugtstrimlen/976 < peberfrugtstrimlens/976 < peberfrugtstrimler/976 < peberfrugtstrimlerne/976 < peberfrugtstrimlernes < peberfrugtstrimlers/976 < peberfrugtstrimmel/70,976 < peberfrugtstrimmelen/976 < peberfrugtstrimmelens/976 < peberfrugtstrimmels/976 --- > peberfrugtstrimmel/815,822,70,944 103731,103736c99899 < pendel/70,976 < pendelen/976 < pendelens/976 < pendelet/976 < pendelets/976 < pendels/976 --- > pendel/815,822,70,944 103738,103747c99901,99902 < pendlen/976 < pendlens/976 < pendler/20,7,70,976 < pendler/976 < pendlerne/976 < pendlernes < pendlers/976 < pendlet/976 < pendlets/976 < pendling/70,73,7,976 --- > pendler/20,7,70,976,941,947 > pendling/70,73,7,976,939,947 103752a99908 > pendulkørsel/815,822,70,944 103784,103793c99940 < pengemangel/70,976 < pengemangelen/976 < pengemangelens/976 < pengemangels/976 < pengemanglen/976 < pengemanglens/976 < pengemangler/976 < pengemanglerne/976 < pengemanglernes < pengemanglers/976 --- > pengemangel/815,822,70,944 103811,103820c99958 < pengeoverførsel/70,976 < pengeoverførselen/976 < pengeoverførselens/976 < pengeoverførsels/976 < pengeoverførslen/976 < pengeoverførslens/976 < pengeoverførsler/976 < pengeoverførslerne/976 < pengeoverførslernes < pengeoverførslers/976 --- > pengeoverførsel/815,822,70,944 103834,103843c99972 < pengeseddel/70,976 < pengeseddelen/976 < pengeseddelens/976 < pengeseddels/976 < pengesedlen/976 < pengesedlens/976 < pengesedler/976 < pengesedlerne/976 < pengesedlernes < pengesedlers/976 --- > pengeseddel/815,822,70,944 103947,103949c100076 < pensel/70,976 < penselen/976 < penselens/976 --- > pensel/815,822,70,944,941,947 103951d100077 < pensels/976 103964c100090 < pensionsbeskatning/70,73,7,976 --- > pensionsbeskatning/70,73,7,976,939,947 103981c100107 < pensionsudbetaling/70,73,7,976 --- > pensionsudbetaling/70,73,7,976,939,947 103984,103989d100109 < penslen/976 < penslens/976 < pensler/976 < penslerne/976 < penslernes < penslers/976 104001a100122 > penthouse/190,976 104006d100126 < pep 104012,104017c100132 < peppe < peppede < peppedes < peppende < peppendes < pepper --- > peppe/6,143,148 104019,104021d100133 < peppes < peppet < peppets 104087a100200 > performe/6,143,148 104117c100230 < periode/70,73,7,976 --- > periode/70,73,7,976,941,947 104239,104248c100352 < personalemangel/70,976 < personalemangelen/976 < personalemangelens/976 < personalemangels/976 < personalemanglen/976 < personalemanglens/976 < personalemangler/976 < personalemanglerne/976 < personalemanglernes < personalemanglers/976 --- > personalemangel/815,822,70,944 104303a100408 > personpåkørsel/815,822,70,944 104424a100530 > petroleumsfarvet/70,915,976 104599a100706 > pigebande/70,73,7,976 104604a100712,100716 > pigebog/193,70,976 > pigebøger/976 > pigebøgerne/976 > pigebøgernes > pigebøgers/976 104619a100732 > pigespejder/20,7,70,976 104622a100736 > pigevold/193,70,976 104639d100752 < pik 104695,104697c100808 < pikke < pikkede < pikkedes --- > pikke/6,143,148 104699,104701d100809 < pikkende < pikkendes < pikker 104703,104705d100810 < pikkes < pikket < pikkets 104741,104750c100846,100847 < pillekartoffel/70,976 < pillekartoffelen/976 < pillekartoffelens/976 < pillekartoffels/976 < pillekartoflen/976 < pillekartoflens/976 < pillekartofler/976 < pillekartoflerne/976 < pillekartoflernes < pillekartoflers/976 --- > pilleform/193,70,976 > pillekartoffel/815,822,70,944 104878,104880c100975 < pinsel/70,976 < pinselen/976 < pinselens/976 --- > pinsel/815,822,70,944 104882d100976 < pinsels/976 104898,104903d100991 < pinslen/976 < pinslens/976 < pinsler/976 < pinslerne/976 < pinslernes < pinslers/976 104945,104947d101032 < pir < pi'r < pir' 104967,104969c101052 < pirre < pirrede < pirredes --- > pirre/6,143,148 104972d101054 < pirrende 104974,104978d101055 < pirrendes < pirrer < pirres < pirret < pirrets 104980,104989c101057 < pirringsmiddel/70,976 < pirringsmiddelet/976 < pirringsmiddelets/976 < pirringsmiddels/976 < pirringsmidler/976 < pirringsmidlerne/976 < pirringsmidlernes < pirringsmidlers/976 < pirringsmidlet/976 < pirringsmidlets/976 --- > pirringsmiddel/815,70,944,828 104995d101062 < pis 105010,105012c101077 < pisse/941,947 < pissede < pissedes --- > pisse/6,143,148,941,947 105019,105022d101083 < pissende < pissendes < pisser < pisses 105024,105025d101084 < pisset < pissets 105169a101229 > pjækkesyg/913,70,366,976 105235,105244c101295 < pladsmangel/70,976 < pladsmangelen/976 < pladsmangelens/976 < pladsmangels/976 < pladsmanglen/976 < pladsmanglens/976 < pladsmangler/976 < pladsmanglerne/976 < pladsmanglernes < pladsmanglers/976 --- > pladsmangel/815,822,70,944 105360,105367c101411 < plantebeskyttelsesmiddel/70,976 < plantebeskyttelsesmiddels/976 < plantebeskyttelsesmidler/976 < plantebeskyttelsesmidlerne/976 < plantebeskyttelsesmidlernes < plantebeskyttelsesmidlers/976 < plantebeskyttelsesmidlet/976 < plantebeskyttelsesmidlets/976 --- > plantebeskyttelsesmiddel/815,70,944,828 105394,105403c101438 < plantestængel/70,976 < plantestængelen/976 < plantestængelens/976 < plantestængels/976 < plantestænglen/976 < plantestænglens/976 < plantestængler/976 < plantestænglerne/976 < plantestænglernes < plantestænglers/976 --- > plantestængel/815,822,70,944 105510c101545 < platte --- > platte/6,143,148 105512,105515d101546 < plattede < plattedes < plattende < plattendes 105518,105521d101548 < platter < plattes < plattet < plattets 105556a101584 > plejebolig/70,73,7,976 105645d101672 < plet 105647a101675 > pletfjerningsmiddel/815,70,944,828 105652,105657c101680 < plette < plettede < plettedes < plettende < plettendes < pletter --- > plette/6,143,148 105660,105661d101682 < plettes < plettet 105663d101683 < plettets 105713d101732 < plot 105716,105721c101735 < plotte < plottede < plottedes < plottende < plottendes < plotter --- > plotte/6,143,148 105723,105725d101736 < plottes < plottet < plottets 105770d101780 < pluk 105773,105778c101783 < plukke < plukkede < plukkedes < plukkende < plukkendes < plukker --- > plukke/6,143,148 105780,105782d101784 < plukkes < plukket < plukkets 105836,105844c101838 < plusse < plussede < plussedes < plussende < plussendes < plusser < plusses < plusset < plussets --- > plusse/6,143,148 105858d101851 < plys 105861,105868c101854 < plysse < plyssede < plyssedes < plyssende < plyssendes < plysser < plysses < plysset --- > plysse/6,143,148 105870d101855 < plyssets 105879d101863 < pløk 105881,105889c101865 < pløkke < pløkkede < pløkkedes < pløkkende < pløkkendes < pløkker < pløkkes < pløkket < pløkkets --- > pløkke/6,143,148 105990,105999c101966 < polarcirkel/70,976 < polarcirkelen/976 < polarcirkelens/976 < polarcirkels/976 < polarcirklen/976 < polarcirklens/976 < polarcirkler/976 < polarcirklerne/976 < polarcirklernes < polarcirklers/976 --- > polarcirkel/815,822,70,944 106041,106048c102008 < poleremiddel/70,976 < poleremiddels/976 < poleremidler/976 < poleremidlerne/976 < poleremidlernes < poleremidlers/976 < poleremidlet/976 < poleremidlets/976 --- > poleremiddel/815,70,944,828 106052,106059c102012 < polermiddel/70,976 < polermiddels/976 < polermidler/976 < polermidlerne/976 < polermidlernes < polermidlers/976 < polermidlet/976 < polermidlets/976 --- > polermiddel/815,70,944,828 106199a102153 > polstermøbel/815,70,944,828 106328d102281 < pop 106345,106350d102297 < poplen/976 < poplens/976 < popler/976 < poplerne/976 < poplernes < poplers/976 106355,106357c102302 < poppe < poppede < poppedes --- > poppe/6,143,148 106359,106362c102304 < poppel/70,976 < poppelen/976 < poppelens/976 < poppels/976 --- > poppel/815,822,70,944,941,947 106365,106369d102306 < poppende < poppendes < popper < poppes < poppet 106371d102307 < poppets 106405a102342 > pornoindustri/193,70,976 106424c102361 < portefølje/70,73,7,976 --- > portefølje/70,73,7,976,941,947 106450a102388 > portugisisksproget/70,915,976 106634,106637c102572 < poststempel/70,976 < poststempelet/976 < poststempelets/976 < poststempels/976 --- > poststempel/815,70,944,828 106639,106644d102573 < poststempler/976 < poststemplerne/976 < poststemplernes < poststemplers/976 < poststemplet/976 < poststemplets/976 106668d102596 < pot 106704c102632 < potte --- > potte/6,143,148 106706,106707d102633 < pottede < pottedes 106711,106712d102636 < pottende < pottendes 106714,106715d102637 < potter < pottes 106717,106718d102638 < pottet < pottets 106743c102663 < power/190,976 --- > power/190,976,941,947 106783d102702 < prak 106785,106793c102704 < prakke < prakkede < prakkedes < prakkende < prakkendes < prakker < prakkes < prakket < prakkets --- > prakke/6,143,148 106817c102728 < praktikplads/70,73,7,976 --- > praktikplads/70,73,7,976,941,947 106982a102894 > pressekontakt/70,73,7,976 107010,107019c102922 < pressionsmiddel/70,976 < pressionsmiddelet/976 < pressionsmiddelets/976 < pressionsmiddels/976 < pressionsmidler/976 < pressionsmidlerne/976 < pressionsmidlernes < pressionsmidlers/976 < pressionsmidlet/976 < pressionsmidlets/976 --- > pressionsmiddel/815,70,944,828 107115a103019 > primaveksel/815,822,70,944 107191c103095 < prinsesse/70,73,7,976 --- > prinsesse/70,73,7,976,941,947 107197a103102,103104 > printerpapir/70,10,73,976 > printerudskrift/70,10,73,976 > printerudskrift/70,73,7,976 107207a103115 > prioriteringsrækkefølge/70,73,7,976 107276,107285c103184 < prisseddel/70,976 < prisseddelen/976 < prisseddelens/976 < prisseddels/976 < prissedlen/976 < prissedlens/976 < prissedler/976 < prissedlerne/976 < prissedlernes < prissedlers/976 --- > prisseddel/815,822,70,944 107336a103236 > privatlivspolitik/46,70,976 107419c103319 < problemløsning/70,73,7,976 --- > problemløsning/70,73,7,976,939,947 107496,107505c103396 < produktionsmiddel/70,976 < produktionsmiddelet/976 < produktionsmiddelets/976 < produktionsmiddels/976 < produktionsmidler/976 < produktionsmidlerne/976 < produktionsmidlernes < produktionsmidlers/976 < produktionsmidlet/976 < produktionsmidlets/976 --- > produktionsmiddel/815,70,944,828 107555a103447 > professionsbachelor/70,73,7,976,941,947 107651c103543 < projektering/70,73,7,976 --- > projektering/70,73,7,976,939,947 107661c103553 < projektleder/20,7,70,976 --- > projektleder/20,7,70,976,941,947 107703,107712c103595 < promillekørsel/70,976 < promillekørselen/976 < promillekørselens/976 < promillekørsels/976 < promillekørslen/976 < promillekørslens/976 < promillekørsler/976 < promillekørslerne/976 < promillekørslernes < promillekørslers/976 --- > promillekørsel/815,822,70,944 107745a103629 > propagandafilm/70,7,252,976 107746a103631,103633 > propagandamaskine/70,73,7,976 > propagandaskrift/70,10,73,976 > propagandavirksomhed/70,73,7,976 107751c103638 < propagere --- > propagere/6,143,148 107832c103719 < prospekt/70,10,73,976 --- > prospekt/70,10,73,976,941,947 107834c103721 < prospektering/70,73,7,976 --- > prospektering/70,73,7,976,939,947 108026a103914 > præcolumbiansk/917,976 108054,108063c103942 < prægestempel/70,976 < prægestempelet/976 < prægestempelets/976 < prægestempels/976 < prægestempler/976 < prægestemplerne/976 < prægestemplernes < prægestemplers/976 < prægestemplet/976 < prægestemplets/976 --- > prægestempel/815,70,944,828 108114a103994 > præmieoverrækkelse/70,73,7,976 108257,108266c104137 < præventionsmiddel/70,976 < præventionsmiddelet/976 < præventionsmiddelets/976 < præventionsmiddels/976 < præventionsmidler/976 < præventionsmidlerne/976 < præventionsmidlernes < præventionsmidlers/976 < præventionsmidlet/976 < præventionsmidlets/976 --- > præventionsmiddel/815,70,944,828 108269a104141 > Prøjsen/699,55 108301,108310c104173 < prøvekørsel/70,976 < prøvekørselen/976 < prøvekørselens/976 < prøvekørsels/976 < prøvekørslen/976 < prøvekørslens/976 < prøvekørsler/976 < prøvekørslerne/976 < prøvekørslernes < prøvekørslers/976 --- > prøvekørsel/815,822,70,944 108338a104202 > prøvetur/20,7,70,976 108367c104231 < psykiatri/70,73,7,976 --- > psykiatri/70,73,7,976,941,947 108536,108545c104400 < pudsemiddel/70,976 < pudsemiddelet/976 < pudsemiddelets/976 < pudsemiddels/976 < pudsemidler/976 < pudsemidlerne/976 < pudsemidlernes < pudsemidlers/976 < pudsemidlet/976 < pudsemidlets/976 --- > pudsemiddel/815,70,944,828 108597,108599c104452 < pukkel/70,976 < pukkelen/976 < pukkelens/976 --- > pukkel/815,822,70,944 108605d104457 < pukkels/976 108614,108619d104465 < puklen/976 < puklens/976 < pukler/976 < puklerne/976 < puklernes < puklers/976 108669,108678c104515 < pundseddel/70,976 < pundseddelen/976 < pundseddelens/976 < pundseddels/976 < pundsedlen/976 < pundsedlens/976 < pundsedler/976 < pundsedlerne/976 < pundsedlernes < pundsedlers/976 --- > pundseddel/815,822,70,944 108744d104580 < pur 108784,108786c104620 < purre < purrede < purredes --- > purre/6,143,148 108788,108791d104621 < purrende < purrendes < purrer < purres 108793,108794d104622 < purret < purrets 108816,108825c104644 < pussenus < pussenusse < pussenussede < pussenussedes < pussenussende < pussenussendes < pussenusser < pussenusses < pussenusset < pussenussets --- > pussenusse/6,143,148 108838a104658 > putte/6,143,148 108840,108841d104659 < puttede < puttedes 108856,108858d104673 < puttende < puttendes < putter 108860,108862d104674 < puttes < puttet < puttets 109010a104823 > pølsebod/70,73,7,976 109194,109203c105007 < påkørsel/70,976,939,947 < påkørselen/976 < påkørselens/976 < påkørsels/976 < påkørslen/976 < påkørslens/976 < påkørsler/976 < påkørslerne/976 < påkørslernes < påkørslers/976 --- > påkørsel/815,822,70,944,939,947 109240,109249c105044 < pålægsgaffel/70,976 < pålægsgaffelen/976 < pålægsgaffelens/976 < pålægsgaffels/976 < pålægsgaflen/976 < pålægsgaflens/976 < pålægsgafler/976 < pålægsgaflerne/976 < pålægsgaflernes < pålægsgaflers/976 --- > pålægsgaffel/815,822,70,944 109557a105353 > rabataftale/70,73,7,976 109607,109616c105403 < racercykel/70,976 < racercykelen/976 < racercykelens/976 < racercykels/976 < racercyklen/976 < racercyklens/976 < racercykler/976 < racercyklerne/976 < racercyklernes < racercyklers/976 --- > racercykel/815,822,70,944 109667c105454 < radiator/70,73,7,976 --- > radiator/70,73,7,976,941,947 109806d105592 < raffinere 109819c105605 < rafting/190,976 --- > rafting/190,976,941,947 110072a105859 > rangorden/70,73,7,976 110074c105861 < rangordning/70,73,7,976 --- > rangordning/70,73,7,976,939,947 110181c105968 < rapportering/70,73,7,976 --- > rapportering/70,73,7,976,939,947 110290a106078 > rataksel/815,822,70,944 110519c106307 < realkompetence/70,73,7,976 --- > realkompetence/70,73,7,976,941,947 110742a106531 > redundant/913,70,366,976 110763,110770c106552 < reetablering/70,976 < reetableringen/976 < reetableringens/976 < reetableringer/976 < reetableringerne/976 < reetableringernes/976 < reetableringers/976 < reetablerings/976 --- > reetablering/70,73,7,976,939,947 110810c106592 < reform/70,73,7,976 --- > reform/70,73,7,976,941,947 110878c106660 < regel/70,976,941,947 --- > regel/815,822,70,944,941,947 110892,110893d106673 < regelen/976 < regelens/976 110904d106683 < regels/976 110980c106759 < regionalpolitik/193,70,976 --- > regionalpolitik/737,70,976 110988c106767 < regionplan/70,976 --- > regionplan/70,73,7,976 110990,111002c106769 < regionplanen/976 < regionplanens/976 < regionplaner/976 < regionplanerne/976 < regionplanernes/976 < regionplaners/976 < regionplanlægning/70,976 < regionplanlægningen/976 < regionplanlægningens/976 < regionplanlægninger/976 < regionplanlægningers/976 < regionplanlægnings/976 < regionplans/976 --- > regionplanlægning/70,73,7,976 111004c106771,106772 < regionsplan/976 --- > regionshospital/70,10,73,976 > regionsplan/70,73,7,976 111006,111018c106774 < regionsplanen/976 < regionsplanens/976 < regionsplaner/976 < regionsplanerne/976 < regionsplanernes < regionsplaners/976 < regionsplanlægning/976 < regionsplanlægningen/976 < regionsplanlægningens/976 < regionsplanlægninger/976 < regionsplanlægningers/976 < regionsplanlægnings/976 < regionsplans/976 --- > regionsplanlægning/70,73,7,976 111048,111053d106803 < reglen/976 < reglens/976 < regler/976 < reglerne/976 < reglernes < reglers/976 111057a106808 > regnbueflag/70,252,10,976 111080,111088c106831 < regneeksempel/70,976 < regneeksempelets/976 < regneeksempels/976 < regneeksempler/976 < regneeksemplerne/976 < regneeksemplernes < regneeksemplers/976 < regneeksemplet/976 < regneeksemplets/976 --- > regneeksempel/815,70,944,828 111102,111111c106845 < regneregel/70,976 < regneregelen/976 < regneregelens/976 < regneregels/976 < regnereglen/976 < regnereglens/976 < regneregler/976 < regnereglerne/976 < regnereglernes < regnereglers/976 --- > regneregel/815,822,70,944 111179c106913 < regnvand/10,70,20,976 --- > regnvand/194,70,976,939,947 111204c106938 < rehabilitering/70,73,7,976 --- > rehabilitering/70,73,7,976,939,947 111308a107043 > rejsedag/20,7,70,976 111316a107052 > rejsedestination/70,73,7,976 111322a107059,107060 > rejsefælle/70,73,7,976 > rejsefølge/70,10,73,976 111330a107069,107070 > rejsegodtgørelse/70,73,7,976 > rejseguide/70,73,7,976 111365a107106 > rejselegitimation/70,73,7,976 111382a107124 > rejseomkostning/70,73,7,976 111421c107163,107166 < reklamation/70,73,7,976 --- > reklamation/70,73,7,976,939,947 > reklamationsfrist/70,73,7,976 > reklamationskontor/70,10,73,976 > reklamationsperiode/70,73,7,976 111422a107168 > reklamationsskema/70,10,73,976 111508,111517c107254 < rektangel/70,976 < rektangelet/976 < rektangelets/976 < rektangels/976 < rektangler/976 < rektanglerne/976 < rektanglernes < rektanglers/976 < rektanglet/976 < rektanglets/976 --- > rektangel/815,70,944,828 111794,111803c107531 < rengøringsmiddel/70,976 < rengøringsmiddelet/976 < rengøringsmiddelets/976 < rengøringsmiddels/976 < rengøringsmidler/976 < rengøringsmidlerne/976 < rengøringsmidlernes < rengøringsmidlers/976 < rengøringsmidlet/976 < rengøringsmidlets/976 --- > rengøringsmiddel/815,70,944,828 111851a107580 > renonce/70,73,7,976 111896,111905c107625 < rensemiddel/70,976 < rensemiddelet/976 < rensemiddelets/976 < rensemiddels/976 < rensemidler/976 < rensemidlerne/976 < rensemidlernes < rensemidlers/976 < rensemidlet/976 < rensemidlets/976 --- > rensemiddel/815,70,944,828 111960c107680 < renteberegning/70,73,7,976 --- > renteberegning/70,73,7,976,939,947 112016d107735 < renttonende 112309c108028 < ressourcestyring/193,70,976 --- > ressourcestyring/70,73,7,976,939,947 112314a108034 > restaffald/194,70,976 112318c108038 < restaurant/70,73,7,976 --- > restaurant/70,73,7,976,941,947 112328a108049 > restbetaling/70,73,7,976 112394a108116 > resursestyring/70,73,7,976,939,947 112402,112409c108124 < retablering/976 < retableringen/976 < retableringens/976 < retableringer/976 < retableringerne/976 < retableringernes < retableringers/976 < retablerings/976 --- > retablering/70,73,7,976,939,947 112482a108198 > retouchepensel/815,822,70,944 112640,112649c108356 < retskrivningsregel/70,976 < retskrivningsregelen/976 < retskrivningsregelens/976 < retskrivningsregels/976 < retskrivningsreglen/976 < retskrivningsreglens/976 < retskrivningsregler/976 < retskrivningsreglerne/976 < retskrivningsreglernes < retskrivningsreglers/976 --- > retskrivningsregel/815,822,70,944 112697,112707c108404,108405 < retsregel/70,976 < retsregelen/976 < retsregelens/976 < retsregels/976 < retsreglen/976 < retsreglens/976 < retsregler/976 < retsreglerne/976 < retsreglernes < retsreglers/976 < retssag/70,73,7,976 --- > retsregel/815,822,70,944 > retssag/70,73,7,976,939,947 112736c108434 < rette/939,947 --- > rette/6,143,148,941,947 112738,112739d108435 < rettede < rettedes 112746,112747d108441 < rettende < rettendes 112749d108442 < retter 112754d108446 < rettes 112757d108448 < rettet 112761d108451 < rettets 112850a108541 > revisorsuppleant/70,73,7,976 112942d108632 < rib 112944c108634 < ribbe --- > ribbe/6,143,148 112954,112955d108643 < ribbede < ribbedes 112958,112959d108645 < ribbende < ribbendes 112961d108646 < ribber 112963,112964d108647 < ribbes < ribbet 112966d108648 < ribbets 113078a108761,108762 > ridehus/10,70,20,976 > rideklub/46,70,976 113085c108769 < rideskole/70,73,7,976 --- > rideskole/70,73,7,976,941,947 113107,113109c108791 < riffel/70,976 < riffelen/976 < riffelens/976 --- > riffel/815,822,70,944,941,947 113113d108794 < riffels/976 113118,113123d108798 < riflen/976 < riflens/976 < rifler/976 < riflerne/976 < riflernes < riflers/976 113126d108800 < rig 113134,113136c108808 < rigel/70,976 < rigelen/976 < rigelens/976 --- > rigel/815,822,70,944 113141,113142c108813 < rigels/976 < rigge --- > rigellås/20,7,70,976 113144,113148c108815 < riggede < riggedes < riggende < riggendes < rigger --- > rigge/6,143,148 113150,113152d108816 < rigges < rigget < riggets 113156,113161d108819 < riglen/976 < riglens/976 < rigler/976 < riglerne/976 < riglernes < riglers/976 113195c108853 < rigsdansk/193,70,976 --- > rigsdansk/190,976 113264a108923 > rijsttafel/190,976 113376,113385c109035 < ringmuskel/70,976 < ringmuskelen/976 < ringmuskelens/976 < ringmuskels/976 < ringmusklen/976 < ringmusklens/976 < ringmuskler/976 < ringmusklerne/976 < ringmusklernes < ringmusklers/976 --- > ringmuskel/815,822,70,944 113393,113402c109043 < ringpensel/70,976 < ringpenselen/976 < ringpenselens/976 < ringpensels/976 < ringpenslen/976 < ringpenslens/976 < ringpensler/976 < ringpenslerne/976 < ringpenslernes < ringpenslers/976 --- > ringpensel/815,822,70,944 113508a109150 > risikoprofil/70,73,7,976 113529,113538c109171 < ristaffel/976 < ristaffelet/976 < ristaffelets/976 < ristaffels/976 < ristafler/976 < ristaflerne/976 < ristaflernes < ristaflers/976 < ristaflet/976 < ristaflets/976 --- > ristaffel/190,976 113545d109177 < risttafel/70,976 113802c109434 < rollespil/70,254,976 --- > rollespil/70,254,976,939,947 114055d109686 < rot 114072c109703 < rotte --- > rotte/6,143,148 114074,114075d109704 < rottede < rottedes 114080,114082d109708 < rottende < rottendes < rotter 114085,114087d109710 < rottes < rottet < rottets 114159d109781 < rub 114163,114168c109785 < rubbe < rubbede < rubbedes < rubbende < rubbendes < rubber --- > rubbe/6,143,148 114170,114172d109786 < rubbes < rubbet < rubbets 114310d109923 < rul 114312a109926 > rulle/6,143,148,941,947 114314d109927 < rulle/941,947 114317,114318d109929 < rullede < rulledes 114326,114327d109936 < rullende < rullendes 114329d109937 < ruller 114331d109938 < rulles 114335a109943 > rulleskøjteløber/20,7,70,976 114338d109945 < rullet 114341d109947 < rullets 114344d109949 < rum 114366,114375c109971 < rumkapsel/70,976 < rumkapselen/976 < rumkapselens/976 < rumkapsels/976 < rumkapslen/976 < rumkapslens/976 < rumkapsler/976 < rumkapslerne/976 < rumkapslernes < rumkapslers/976 --- > rumkapsel/815,822,70,944 114396,114398c109992 < rumme < rummede < rummedes --- > rumme/6,143,148 114405,114409d109998 < rummende < rummendes < rummer < rummes < rummet 114411c110000 < rummets --- > rummission/70,73,7,976 114437a110027 > rumtermostat/70,73,7,976 114472a110063 > rundetrunte/70,73,7,976 114491,114500c110082 < rundkørsel/70,976 < rundkørselen/976 < rundkørselens/976 < rundkørsels/976 < rundkørslen/976 < rundkørslens/976 < rundkørsler/976 < rundkørslerne/976 < rundkørslernes < rundkørslers/976 --- > rundkørsel/815,822,70,944 114632,114641c110214 < rusmiddel/70,976 < rusmiddelet/976 < rusmiddelets/976 < rusmiddels/976 < rusmidler/976 < rusmidlerne/976 < rusmidlernes < rusmidlers/976 < rusmidlet/976 < rusmidlets/976 --- > rusmiddel/815,70,944,828,941,947 114647c110220 < russisk/193,70,976 --- > russisk/190,976 114649a110223 > russisksproget/70,915,976 114705,114706d110278 < rutsch < rutsche 114715,114722d110286 < rutschede < rutschedes < rutschende < rutschendes < rutscher < rutsches < rutschet < rutschets 114724,114725c110288 < rutsj < rutsje --- > rutsje/6,143,148,941,947 114735,114742d110297 < rutsjede < rutsjedes < rutsjende < rutsjendes < rutsjer < rutsjes < rutsjet < rutsjets 114760d110314 < ryd 114762,114764c110316 < rydde < ryddede < ryddedes --- > rydde/6,143,148 114766,114771d110317 < ryddende < ryddendes < rydder < ryddes < ryddet < ryddets 114786d110331 < 'ryg 114840c110385 < rygestop/70,254,976 --- > rygestop/70,254,976,941,947 114856,114865c110401 < ryghvirvel/70,976 < ryghvirvelen/976 < ryghvirvelens/976 < ryghvirvels/976 < ryghvirvlen/976 < ryghvirvlens/976 < ryghvirvler/976 < ryghvirvlerne/976 < ryghvirvlernes < ryghvirvlers/976 --- > ryghvirvel/815,822,70,944 114870,114879c110406 < rygmuskel/70,976 < rygmuskelen/976 < rygmuskelens/976 < rygmuskels/976 < rygmusklen/976 < rygmusklens/976 < rygmuskler/976 < rygmusklerne/976 < rygmusklernes < rygmusklers/976 --- > rygmuskel/815,822,70,944 114971a110499 > rytterstatue/70,73,7,976 115003,115006c110531 < rædsel/70,976,939,947 < rædselen/976 < rædselens/976 < rædsels/976 --- > rædsel/815,822,70,944,939,947 115024,115029d110548 < rædslen/976 < rædslens/976 < rædsler/976 < rædslerne/976 < rædslernes < rædslers/976 115269,115272c110788 < røffel/70,976 < røffelen/976 < røffelens/976 < røffels/976 --- > røffel/815,822,70,944 115274,115279d110789 < røflen/976 < røflens/976 < røfler/976 < røflerne/976 < røflernes < røflers/976 115281c110791 < røg/193,70,976 --- > røg/193,70,976,941,947 115337,115344c110847 < røgpartikel/70,976 < røgpartikels/976 < røgpartiklen/976 < røgpartiklens/976 < røgpartikler/976 < røgpartiklerne/976 < røgpartiklernes < røgpartiklers/976 --- > røgpartikel/815,822,70,944 115445a110949 > røntgenfotografering/70,73,7,976 115448a110953 > røntgenundersøgelse/70,73,7,976 115455c110960 < rør/70,976 --- > rør/70,252,10,976,941,947 115457,115458d110961 < rø'r/976 < rør'/976 115472,115473d110974 < rørene/976 < rørenes 115475,115476d110975 < røret/976 < rørets/976 115522d111020 < rørs/976 115640a111139 > rådførsel/815,822,70,944 115665a111165 > rådhusbryllup/70,9,976 115821,115830c111321 < råstofmangel/70,976 < råstofmangelen/976 < råstofmangelens/976 < råstofmangels/976 < råstofmanglen/976 < råstofmanglens/976 < råstofmangler/976 < råstofmanglerne/976 < råstofmanglernes < råstofmanglers/976 --- > råstofmangel/822,70 115852c111343 < råvare/70,73,7,976 --- > råvare/70,73,7,976,941,947 115886,115888c111377 < sabel/70,976 < sabelen/976 < sabelens/976 --- > sabel/815,822,70,944,941,947 115893d111381 < sabels/976 115902,115907d111389 < sablen/976 < sablens/976 < sabler/976 < sablerne/976 < sablernes < sablers/976 115933,115935c111415 < saddel/70,976 < saddelen/976 < saddelens/976 --- > saddel/815,822,70,944,941,947 115978d111457 < saddels/976 115999,116001c111478 < sadel/976 < sadelen/976 < sadelens/976 --- > sadel/815,822,70,944,941,947 116044d111520 < sadels/976 116076,116081d111551 < sadlen/976 < sadlens/976 < sadler/976 < sadlerne/976 < sadlernes < sadlers/976 116277d111746 < sak 116286,116294c111755 < sakke < sakkede < sakkedes < sakkende < sakkendes < sakker < sakkes < sakket < sakkets --- > sakke/6,143,148 116389a111851 > salgsopstilling/70,73,7,976 116472,116481c111934 < salonriffel/70,976 < salonriffelen/976 < salonriffelens/976 < salonriffels/976 < salonriflen/976 < salonriflens/976 < salonrifler/976 < salonriflerne/976 < salonriflernes < salonriflers/976 --- > salonriffel/815,822,70,944 116513,116522c111966 < saltmandel/70,976 < saltmandelen/976 < saltmandelens/976 < saltmandels/976 < saltmandlen/976 < saltmandlens/976 < saltmandler/976 < saltmandlerne/976 < saltmandlernes < saltmandlers/976 --- > saltmandel/815,822,70,944 116646d112089 < sambeskat 116648,116656c112091 < sambeskatte < sambeskattede < sambeskattedes < sambeskattende < sambeskattendes < sambeskatter < sambeskattes < sambeskattet < sambeskattets --- > sambeskatte/6,143,148 116800,116815c112235,112236 < samfærdsel/70,976 < samfærdselen/976 < samfærdselens/976 < samfærdsels/976 < samfærdselsmiddel/70,976 < samfærdselsmiddelet/976 < samfærdselsmiddelets/976 < samfærdselsmiddels/976 < samfærdselsmidler/976 < samfærdselsmidlerne/976 < samfærdselsmidlernes < samfærdselsmidlers/976 < samfærdselsmidlet/976 < samfærdselsmidlets/976 < samfærdslen/976 < samfærdslens --- > samfærdsel/822,70,939,947 > samfærdselsmiddel/815,70,944,828 116849,116858c112270 < samkørsel/70,976 < samkørselen/976 < samkørselens/976 < samkørsels/976 < samkørslen/976 < samkørslens/976 < samkørsler/976 < samkørslerne/976 < samkørslernes < samkørslers/976 --- > samkørsel/815,822,70,944 116860a112273 > samlebeslag/70,252,10,976 117018d112430 < sammenfat 117020,117028c112432 < sammenfatte < sammenfattede < sammenfattedes < sammenfattende < sammenfattendes < sammenfatter < sammenfattes < sammenfattet < sammenfattets --- > sammenfatte/6,143,148 117032d112435 < sammenflet 117034,117052c112437,112438 < sammenflette < sammenflettede < sammenflettedes < sammenflettende < sammenflettendes < sammenfletter < sammenflettes < sammenflettet < sammenflettets < sammenflik < sammenflikke < sammenflikkede < sammenflikkedes < sammenflikkende < sammenflikkendes < sammenflikker < sammenflikkes < sammenflikket < sammenflikkets --- > sammenflette/6,143,148 > sammenflikke/6,143,148 117111d112496 < sammenklip 117114,117122c112499 < sammenklippe < sammenklippede < sammenklippedes < sammenklippende < sammenklippendes < sammenklipper < sammenklippes < sammenklippet < sammenklippets --- > sammenklippe/6,143,148 117141d112517 < sammenknyt 117143,117151c112519 < sammenknytte < sammenknyttede < sammenknyttedes < sammenknyttende < sammenknyttendes < sammenknytter < sammenknyttes < sammenknyttet < sammenknyttets --- > sammenknytte/6,143,148 117203c112571,112572 < sammenlægning/70,73,7,976 --- > sammenlægning/70,73,7,976,939,947 > sammenlægningsudvalg/70,252,10,976 117229d112597 < sammenpres 117231,117239c112599 < sammenpresse < sammenpressede < sammenpressedes < sammenpressende < sammenpressendes < sammenpresser < sammenpresses < sammenpresset < sammenpressets --- > sammenpresse/6,143,148 117276d112635 < sammenslut 117278,117285c112637 < sammenslutte < sammensluttede < sammensluttedes < sammensluttende < sammensluttendes < sammenslutter < sammensluttes < sammensluttet --- > sammenslutte/6,143,148 117287d112638 < sammensluttets 117321,117330c112672 < sammenstil < sammenstille < sammenstillede < sammenstilledes < sammenstillende < sammenstillendes < sammenstiller < sammenstilles < sammenstillet < sammenstillets --- > sammenstille/6,143,148 117344,117352c112686 < sammenstyk < sammenstykke < sammenstykkede < sammenstykkedes < sammenstykkende < sammenstykkendes < sammenstykker < sammenstykkes < sammenstykket --- > sammenstykke/6,143,148 117354d112687 < sammenstykkets 117431c112764 < sammensætning/70,73,7,976 --- > sammensætning/70,73,7,976,939,947 117571a112905 > samsøsk/917,976 117577a112912 > samtalekøkken/70,10,73,976 117578a112914 > samtalerunde/70,73,7,976 117593,117594d112928 < samtyk < samtykke 117596,117603c112930 < samtykkede < samtykkedes < samtykkende < samtykkendes < samtykker < samtykkes < samtykket < samtykkets --- > samtykke/6,143,148 117743c113070,113071 < sandwich/70,73,7,976 --- > sandwich/70,7,252,976,941,947 > sandwich/70,73,7,976,941,947 118097c113425 < satire/70,73,7,976 --- > satire/70,73,7,976,941,947 118190,118196c113518 < scan < scanne < scannede < scannedes < scannende < scannendes < scanner --- > scanne/6,143,148 118198,118200d113519 < scannes < scannet < scannets 118326c113645 < schweizertysk/193,70,976 --- > schweizertysk/190,976 118370a113690 > screensaver/20,7,70,976 118374a113695 > scripting/193,70,976 118411c113732 < seddel/70,976 --- > seddel/815,822,70,944,941,947 118414,118415d113734 < seddelen/976 < seddelens/976 118417d113735 < seddels/976 118426,118431d113743 < sedlen/976 < sedlens/976 < sedler/976 < sedlerne/976 < sedlernes < sedlers/976 118579,118588c113891 < sejrsskamlen/976 < sejrsskamlens/976 < sejrsskamler/976 < sejrsskamlerne/976 < sejrsskamlernes < sejrsskamlers/976 < sejrsskammel/70,976 < sejrsskammelen/976 < sejrsskammelens/976 < sejrsskammels/976 --- > sejrsskammel/815,822,70,944 118639c113942 < sekscifret/70,1062 --- > sekscifret/70,915,976 118673d113975 < sekstenårs 118737a114040 > sekundaveksel/815,822,70,944 118777a114081,114083 > selfie/70,73,7,976,941,947 > selfies' > selfies/976 118850c114156 < selvangivelse/70,73,7,976 --- > selvangivelse/70,73,7,976,939,947 118892a114199 > selvbyg/190,976 119203c114510 < semifinale/70,73,7,976 --- > semifinale/70,73,7,976,941,947 119252c114559 < senantik/193,70,976 --- > senantik/737,70,976 119257c114564 < senbarok/193,70,976 --- > senbarok/737,70,976 119505c114812 < seraenes/976 --- > seraenes 119563c114870 < serum/70,976 --- > serum/70,9,976,941,947 119565,119577d114871 < serumer/976 < serumerne/976 < serumernes/976 < serumers/976 < serumet/976 < serumets/976 < serummer/976 < serummerne/976 < serummernes < serummers/976 < serummet/976 < serummets/976 < serums/976 119598a114893 > serviceaftale/70,73,7,976 119608a114904 > servicelov/20,7,70,976 119712a115009 > sexlyst/193,70,976 119944d115240 < shop 119946,119955c115242,115243 < shoppe < shoppede < shoppedes < shoppende < shoppendes < shopper < shoppes < shoppet < shoppets < shopping/193,70,976 --- > shoppe/6,143,148 > shopping/193,70,976,941,947 120041,120050c115329 < siddemøbel/70,976 < siddemøbelet/976 < siddemøbelets/976 < siddemøbels/976 < siddemøbler/976 < siddemøblerne/976 < siddemøblernes < siddemøblers/976 < siddemøblet/976 < siddemøblets/976 --- > siddemøbel/815,70,944,828 120109a115389 > sidespejl/10,70,20,976 120154a115435,115439 > sidstemand/193,70,976 > sidstemænd/976 > sidstemændene/976 > sidstemændenes > sidstemænds/976 120301a115587 > sigtveksel/815,822,70,944 120377,120386c115663 < sikkerhedsregel/70,976 < sikkerhedsregelen/976 < sikkerhedsregelens/976 < sikkerhedsregels/976 < sikkerhedsreglen/976 < sikkerhedsreglens/976 < sikkerhedsregler/976 < sikkerhedsreglerne/976 < sikkerhedsreglernes < sikkerhedsreglers/976 --- > sikkerhedsregel/815,822,70,944 120426a115704 > sikringsgruppe/70,73,7,976 120479c115757 < silikone/70,73,7,976 --- > silikone/70,73,7,976,941,947 120883d116160 < sjap 120886,120893c116163 < sjappe < sjappede < sjappedes < sjappende < sjappendes < sjapper < sjappes < sjappet --- > sjappe/6,143,148 120895d116164 < sjappets 120901d116169 < sjat 120903,120911c116171 < sjatte < sjattede < sjattedes < sjattende < sjattendes < sjatter < sjattes < sjattet < sjattets --- > sjatte/6,143,148 120920d116179 < sjip 120922,120929c116181 < sjippe < sjippede < sjippedes < sjippende < sjippendes < sjipper < sjippes < sjippet --- > sjippe/6,143,148 120931d116182 < sjippets 120948,120957c116199 < sjok < sjokke < sjokkede < sjokkedes < sjokkende < sjokkendes < sjokker < sjokkes < sjokket < sjokkets --- > sjokke/6,143,148 120973d116214 < sjus 120988,120996c116229 < sjusse < sjussede < sjussedes < sjussende < sjussendes < sjusser < sjusses < sjusset < sjussets --- > sjusse/6,143,148 120998,121001c116231 < sjækkel/70,976 < sjækkelen/976 < sjækkelens/976 < sjækkels/976 --- > sjækkel/815,822,70,944 121003,121008d116232 < sjæklen/976 < sjæklens/976 < sjækler/976 < sjæklerne/976 < sjæklernes < sjæklers/976 121060d116283 < sk 121122a116346 > skadeanmeldelse/70,73,7,976 121142,121148c116366 < skadeforsikring/70,976 < skadeforsikringen/976 < skadeforsikringens/976 < skadeforsikringer/976 < skadeforsikringerne/976 < skadeforsikringers/976 < skadeforsikrings/976 --- > skadeforsikring/70,73,7,976 121169,121174d116386 < skadesforsikring/976 < skadesforsikringen/976 < skadesforsikringens/976 < skadesforsikringer/976 < skadesforsikringers/976 < skadesforsikrings/976 121182c116394 < skadestue/70,73,7,976 --- > skadestue/70,73,7,976,941,947 121188,121191c116400 < skaf < skaffe < skaffede < skaffedes --- > skaffe/6,143,148 121193,121195d116401 < skaffende < skaffendes < skaffer 121197,121199d116402 < skaffes < skaffet < skaffets 121306c116509 < skalle --- > skalle/6,143,148 121308,121312d116510 < skallede < skalledes < skallende < skallendes < skaller 121319d116516 < skalles 121322,121323d116518 < skallet < skallets 121359,121364d116553 < skamlen/976 < skamlens/976 < skamler/976 < skamlerne/976 < skamlernes < skamlers/976 121368,121370c116557 < skamme < skammede < skammedes --- > skamme/6,143,148 121372,121374c116559 < skammel/70,976 < skammelen/976 < skammelens/976 --- > skammel/815,822,70,944 121376,121379d116560 < skammels/976 < skammende < skammendes < skammer 121381,121383d116561 < skammes < skammet < skammets 121404d116581 < skan 121439,121444c116616 < skanne < skannede < skannedes < skannende < skannendes < skanner --- > skanne/6,143,148 121447,121449d116618 < skannes < skannet < skannets 121474c116643 < skarlagensfeber/115,70,85,976 --- > skarlagensfeber/193,70,976 121554,121560c116723 < skarre < skarrede < skarredes < skarrende < skarrendes < skarrer < skarres --- > skarre/6,143,148 121563,121564d116725 < skarret < skarrets 121595a116757 > skattebetaling/70,73,7,976 121605a116768 > skattefidus/70,73,7,976 121607a116771 > skatteforhøjelse/70,73,7,976 121654a116819 > skattemyndighed/70,73,7,976 121671a116837 > skatterestance/70,73,7,976 121706a116873 > skattesænkning/70,73,7,976 121794c116961 < skelet/70,9,976 --- > skelet/70,9,976,941,947 121955c117122 < skibsmægler/20,7,70,976 --- > skibsmægler/20,7,70,976,941,947 122102c117269 < skifret/70,1062 --- > skifret/70,915,976 122123a117291 > skihjelm/20,7,70,976 122126c117294 < skik --- > skijakke/70,73,7,976 122128,122130c117296 < skikke < skikkede < skikkedes --- > skikke/6,143,148 122134,122138d117299 < skikkende < skikkendes < skikker < skikkes < skikket 122140d117300 < skikkets 122196d117355 < skim 122205,122207c117364 < skimme < skimmede < skimmedes --- > skimme/6,143,148 122215,122220d117371 < skimmende < skimmendes < skimmer < skimmes < skimmet < skimmets 122239d117389 < skin 122304,122305c117454,117455 < skinne/70,73,7,976 < skinne/941,947 --- > skinne/6,143,148 > skinne/70,73,7,976,941,947 122309,122323c117459 < skinnecykel/70,976 < skinnecykelen/976 < skinnecykelens/976 < skinnecykels/976 < skinnecyklen/976 < skinnecyklens/976 < skinnecykler/976 < skinnecyklerne/976 < skinnecyklernes < skinnecyklers/976 < skinnede < skinnedes < skinnende < skinnendes < skinner --- > skinnecykel/815,822,70,944 122325,122327d117460 < skinnes < skinnet < skinnets 122343,122349c117476 < skip < skippe < skippede < skippedes < skippende < skippendes < skipper --- > skippe/6,143,148 122355,122357d117481 < skippes < skippet < skippets 122379a117504 > skiudstyr/194,70,976 122413,122422c117538 < skjoldbruskkirtel/70,976 < skjoldbruskkirtelen/976 < skjoldbruskkirtelens/976 < skjoldbruskkirtels/976 < skjoldbruskkirtlen/976 < skjoldbruskkirtlens/976 < skjoldbruskkirtler/976 < skjoldbruskkirtlerne/976 < skjoldbruskkirtlernes < skjoldbruskkirtlers/976 --- > skjoldbruskkirtel/815,822,70,944 122431a117548 > skjorteflip/46,70,976 122462d117578 < skod 122468c117584 < skodde --- > skodde/6,143,148 122470,122477d117585 < skoddede < skoddedes < skoddende < skoddendes < skodder < skoddes < skoddet < skoddets 122565,122574c117673 < skoleeksempel/70,976 < skoleeksempelet/976 < skoleeksempelets/976 < skoleeksempels/976 < skoleeksempler/976 < skoleeksemplerne/976 < skoleeksemplernes < skoleeksemplers/976 < skoleeksemplet/976 < skoleeksemplets/976 --- > skoleeksempel/815,70,944,828 122643a117743 > skolemælk/193,70,976,939,947 122751d117850 < skot 122760c117859 < skotte --- > skotte/6,143,148 122762,122763d117860 < skottede < skottedes 122766,122768d117862 < skottende < skottendes < skotter 122770,122772d117863 < skottes < skottet < skottets 122894a117986 > skovskiderstilling/70,73,7,976 122943d118034 < skral 122970,122972c118061 < skralle < skrallede < skralledes --- > skralle/6,143,148 122974,122979d118062 < skrallende < skrallendes < skraller < skralles < skrallet < skrallets 122985c118068 < skramlets/976 --- > skramlets 122990,122992c118073 < skrammel/70,976 < skrammelet/976 < skrammelets --- > skrammel/194,70,976,941,947 122994d118074 < skrammels/976 123009d118088 < skrat 123012,123020c118091 < skratte < skrattede < skrattedes < skrattende < skrattendes < skratter < skrattes < skrattet < skrattets --- > skratte/6,143,148 123167a118239 > skrivefængsel/815,70,944,828 123212d118283 < skrot 123218c118289,118290 < skrotning/70,73,7,976 --- > skrotning/70,73,7,976,939,947 > skrotningspræmie/70,73,7,976 123220,123228c118292 < skrotte < skrottede < skrottedes < skrottende < skrottendes < skrotter < skrottes < skrottet < skrottets --- > skrotte/6,143,148 123230d118293 < skrub 123232a118296 > skrubbe/6,143,148,941,947 123234,123241d118297 < skrubbe/941,947 < skrubbede < skrubbedes < skrubbende < skrubbendes < skrubber < skrubbes < skrubbet 123243d118298 < skrubbets 123251,123260c118306 < skrueaksel/70,976 < skrueakselen/976 < skrueakselens/976 < skrueaksels/976 < skrueakslen/976 < skrueakslens/976 < skrueaksler/976 < skrueakslerne/976 < skrueakslernes < skrueakslers/976 --- > skrueaksel/815,822,70,944 123303,123312c118349 < skrumler/976 < skrumlerne/976 < skrumlernes < skrumlers/976 < skrumlet/976 < skrumlets/976 < skrummel/70,976 < skrummelet/976 < skrummelets/976 < skrummels/976 --- > skrummel/815,70,944,828 123411a118449,118450 > skrækpropaganda/193,70,976,941,947 > skrækromantik/737,70,976 123424d118462 < skræl 123426,123428c118464 < skrælle < skrællede < skrælledes --- > skrælle/6,143,148,941,947 123431,123436d118466 < skrællende < skrællendes < skræller < skrælles < skrællet < skrællets 123442,123451c118472 < skræmmemiddel/70,976 < skræmmemiddelet/976 < skræmmemiddelets/976 < skræmmemiddels/976 < skræmmemidler/976 < skræmmemidlerne/976 < skræmmemidlernes < skræmmemidlers/976 < skræmmemidlet/976 < skræmmemidlets/976 --- > skræmmemiddel/815,70,944,828 123457,123470c118478 < skræmsel/70,976 < skræmselen/976 < skræmselens/976 < skræmselet/976 < skræmselets/976 < skræmsels/976 < skræmslen/976 < skræmslens/976 < skræmsler/976 < skræmslerne/976 < skræmslernes < skræmslers/976 < skræmslet/976 < skræmslets/976 --- > skræmsel/815,70,944,828 123582,123591c118590 < skudrigel/70,976 < skudrigelen/976 < skudrigelens/976 < skudrigels/976 < skudriglen/976 < skudriglens/976 < skudrigler/976 < skudriglerne/976 < skudriglernes < skudriglers/976 --- > skudrigel/815,822,70,944 123622,123631c118621 < skudvinkel/70,976 < skudvinkelen/976 < skudvinkelens/976 < skudvinkels/976 < skudvinklen/976 < skudvinklens/976 < skudvinkler/976 < skudvinklerne/976 < skudvinklernes < skudvinklers/976 --- > skudvinkel/815,822,70,944 123668,123677c118658 < skuffemøbel/70,976 < skuffemøbelet/976 < skuffemøbelets/976 < skuffemøbels/976 < skuffemøbler/976 < skuffemøblerne/976 < skuffemøblernes < skuffemøblers/976 < skuffemøblet/976 < skuffemøblets/976 --- > skuffemøbel/815,70,944,828 123691a118673 > skulderhøjde/70,73,7,976 123693a118676 > skulderled/70,254,976,939,947 123719a118703 > skumbanan/70,73,7,976 123894,123895c118878 < skyg < skygge --- > skygge/6,143,148 123900,123901d118882 < skyggede < skyggedes 123907,123909d118887 < skyggende < skyggendes < skygger 123911d118888 < skygges 123914d118890 < skygget 123917d118892 < skyggets 123932d118906 < skyl 123987a118962 > skylle/6,143,148,941,947 123989,124005c118964 < skylle/941,947 < skyllede < skylledes < skyllemiddel/70,976 < skyllemiddelet/976 < skyllemiddelets/976 < skyllemiddels/976 < skyllemidler/976 < skyllemidlerne/976 < skyllemidlernes < skyllemidlers/976 < skyllemidlet/976 < skyllemidlets/976 < skyllende < skyllendes < skyller < skylles --- > skyllemiddel/815,70,944,828 124007,124008d118965 < skyllet < skyllets 124034,124040c118991,118993 < skytsengel/70,976 < skytsengelen/976 < skytsengelens/976 < skytsengels/976 < skytsengle/976 < skytsenglen/976 < skytsenglene/976 --- > skytsengel/822,70 > skytsengle > skytsenglene 124042,124043c118995 < skytsenglens/976 < skytsengles/976 --- > skytsengles 124169,124170c119121 < skæp < skæppe --- > skæppe/6,143,148 124172,124177d119122 < skæppede < skæppedes < skæppende < skæppendes < skæpper < skæppes 124179,124180d119123 < skæppet < skæppets 124230,124239c119173 < skærmydsel/70,976 < skærmydselen/976 < skærmydselens/976 < skærmydsels/976 < skærmydslen/976 < skærmydslens/976 < skærmydsler/976 < skærmydslerne/976 < skærmydslernes < skærmydslers/976 --- > skærmydsel/815,822,70,944 124276d119209 < skæt 124279,124287c119212 < skætte < skættede < skættedes < skættende < skættendes < skætter < skættes < skættet < skættets --- > skætte/6,143,148 124343d119267 < skøn 124351,124360c119275 < skønhedsmiddel/70,976 < skønhedsmiddelet/976 < skønhedsmiddelets/976 < skønhedsmiddels/976 < skønhedsmidler/976 < skønhedsmidlerne/976 < skønhedsmidlernes < skønhedsmidlers/976 < skønhedsmidlet/976 < skønhedsmidlets/976 --- > skønhedsmiddel/815,70,944,828,941,947 124367,124375c119282 < skønne < skønnede < skønnedes < skønnende < skønnendes < skønner < skønnes < skønnet < skønnets --- > skønne/6,143,148 124435,124444c119342 < skøt < skøtte < skøttede < skøttedes < skøttende < skøttendes < skøtter < skøttes < skøttet < skøttets --- > skøtte/6,143,148 124455a119354 > skånejobordning/70,73,7,976 124664a119564 > slagteriarbejder/20,7,70,976 124712,124721c119612 < slalomkørsel/70,976 < slalomkørselen/976 < slalomkørselens/976 < slalomkørsels/976 < slalomkørslen/976 < slalomkørslens/976 < slalomkørsler/976 < slalomkørslerne/976 < slalomkørslernes < slalomkørslers/976 --- > slalomkørsel/815,822,70,944 124770a119662 > slankekonsulent/70,73,7,976 124773,124782c119665 < slankemiddel/70,976 < slankemiddelet/976 < slankemiddelets/976 < slankemiddels/976 < slankemidler/976 < slankemidlerne/976 < slankemidlernes < slankemidlers/976 < slankemidlet/976 < slankemidlets/976 --- > slankemiddel/815,70,944,828 124783a119667 > slankeprodukt/70,10,73,976 124924c119808 < sletning/70,73,7,976 --- > sletning/70,73,7,976,939,947 124951,124960c119835 < slibemiddel/70,976 < slibemiddelet/976 < slibemiddelets/976 < slibemiddels/976 < slibemidler/976 < slibemidlerne/976 < slibemidlernes < slibemidlers/976 < slibemidlet/976 < slibemidlets/976 --- > slibemiddel/815,70,944,828 125080a119956 > slimlinemodel/46,70,976 125082a119959 > slimsæk/70,133,976 125212c120089,120090 < slum/70,267,976 --- > slum/70,254,976,941,947 > slum/70,267,976,941,947 125214a120093 > slumområde/70,10,73,976 125230a120110 > slumrefunktion/70,73,7,976 125264a120145 > slutkurs/70,73,7,976 125276,125285c120157 < slutseddel/70,976 < slutseddelen/976 < slutseddelens/976 < slutseddels/976 < slutsedlen/976 < slutsedlens/976 < slutsedler/976 < slutsedlerne/976 < slutsedlernes < slutsedlers/976 --- > slutseddel/815,822,70,944 125308c120180 < slyngel/70,976,941,947 --- > slyngel/815,822,70,944,941,947 125310,125312d120181 < slyngelen/976 < slyngelens/976 < slyngels/976 125317,125322d120185 < slynglen/976 < slynglens/976 < slyngler/976 < slynglerne/976 < slynglernes < slynglers/976 125491c120354 < smagsoplevelse/46,70,976 --- > smagsoplevelse/70,73,7,976 125527a120391 > smalltalke/6,143,148 125595,125604c120459 < smeltedigel/70,976 < smeltedigelen/976 < smeltedigelens/976 < smeltedigels/976 < smeltediglen/976 < smeltediglens/976 < smeltedigler/976 < smeltediglerne/976 < smeltediglernes < smeltediglers/976 --- > smeltedigel/815,822,70,944 125641a120497 > smertelindring/70,73,7,976 125654,125663c120510 < smertetærskel/70,976 < smertetærskelen/976 < smertetærskelens/976 < smertetærskels/976 < smertetærsklen/976 < smertetærsklens/976 < smertetærskler/976 < smertetærsklerne/976 < smertetærsklernes < smertetærsklers/976 --- > smertetærskel/815,822,70,944 125701,125710c120548 < smigvinkel/70,976 < smigvinkelen/976 < smigvinkelens/976 < smigvinkels/976 < smigvinklen/976 < smigvinklens/976 < smigvinkler/976 < smigvinklerne/976 < smigvinklernes < smigvinklers/976 --- > smigvinkel/815,822,70,944 125754a120593,120597 > smitterisici/976 > smitterisiciene/976 > smitterisicienes > smitterisicis/976 > smitterisiko/70,73,7,976 125834d120676 < smut 125839,125844c120681 < smutte < smuttede < smuttedes < smuttende < smuttendes < smutter --- > smutte/6,143,148 125846,125848d120682 < smuttes < smuttet < smuttets 125938a120773 > smøgpause/70,73,7,976 125944,125946c120779 < smør/70,976 < smø'r/976 < smør'/976 --- > smør/70,736,976,941,947 125973,125982c120806 < smøremiddel/70,976 < smøremiddelet/976 < smøremiddelets/976 < smøremiddels/976 < smøremidler/976 < smøremidlerne/976 < smøremidlernes < smøremidlers/976 < smøremidlet/976 < smøremidlets/976 --- > smøremiddel/815,70,944,828 126003,126012c120827 < smørpukkel/70,976 < smørpukkelen/976 < smørpukkelens/976 < smørpukkels/976 < smørpuklen/976 < smørpuklens/976 < smørpukler/976 < smørpuklerne/976 < smørpuklernes < smørpuklers/976 --- > smørpukkel/815,822,70,944 126018,126027c120833 < smørrebrødsseddel/70,976 < smørrebrødsseddelen/976 < smørrebrødsseddelens/976 < smørrebrødsseddels/976 < smørrebrødssedlen/976 < smørrebrødssedlens/976 < smørrebrødssedler/976 < smørrebrødssedlerne/976 < smørrebrødssedlernes < smørrebrødssedlers/976 --- > smørrebrødsseddel/815,822,70,944 126029,126030d120834 < smørret/976 < smørrets 126032d120835 < smørs/976 126123c120926 < småbørnspædagogik/193,70,976 --- > småbørnspædagogik/737,70,976 126201a121005 > smågnaver/20,7,70,976 126370c121174 < småsnak/193,70,976 --- > småsnak/737,70,976 126509,126512c121313,121314 < snabel/70,976 < snabelen/976 < snabelens/976 < snabels/976 --- > snabel/815,822,70,944 > snabel-a/402 126514,126519d121315 < snablen/976 < snablens/976 < snabler/976 < snablerne/976 < snablernes < snablers/976 126527,126531c121323,121324 < snak < snak/193,70,976 < snakke/941,947 < snakkede < snakkedes --- > snak/70,133,976 > snakke/6,143,148,941,947 126546,126549d121338 < snakkende < snakkendes < snakker < snakkes 126551,126552d121339 < snakket < snakkets 126652,126664c121439 < snedækkede/976 < snedækkedere/976 < snedækkederes/976 < snedækkedes/976 < snedækkedest/976 < snedækkedeste/976 < snedækkedestes/976 < snedækket/976 < snedækkets/976 < snedækt < snedækte/976 < snedæktes/976 < snedækts/976 --- > snedækket/70,915,976 126741c121516 < snerre --- > snerre/6,143,148 126743,126744d121517 < snerrede < snerredes 126746,126751d121518 < snerrende < snerrendes < snerrer < snerres < snerret < snerrets 126789d121555 < snif 126791,126796c121557 < sniffe < sniffede < sniffedes < sniffende < sniffendes < sniffer --- > sniffe/6,143,148 126798,126800d121558 < sniffes < sniffet < sniffets 126834,126837c121592 < snirkel/70,976 < snirkelen/976 < snirkelens/976 < snirkels/976 --- > snirkel/815,822,70,944 126839,126844d121593 < snirklen/976 < snirklens/976 < snirkler/976 < snirklerne/976 < snirklernes < snirklers/976 126846d121594 < snit 126855c121603 < snitte --- > snitte/6,143,148 126858,126859d121605 < snittede < snittedes 126861,126866d121606 < snittende < snittendes < snitter < snittes < snittet < snittets 126935d121674 < snot 126943,126950c121682 < snotte < snottede < snottedes < snottende < snottendes < snotter < snottes < snottet --- > snotte/6,143,148 126952d121683 < snottets 126964,126973c121695 < snub < snubbe < snubbede < snubbedes < snubbende < snubbendes < snubber < snubbes < snubbet < snubbets --- > snubbe/6,143,148 126984,126994c121706 < snup < snup' < snuppe < snuppede < snuppedes < snuppende < snuppendes < snupper < snuppes < snuppet < snuppets --- > snuppe/6,143,148 127038d121749 < 'snydes' 127049,127058c121760 < snæbel/70,976 < snæbelen/976 < snæbelens/976 < snæbels/976 < snæblen/976 < snæblens/976 < snæbler/976 < snæblerne/976 < snæblernes < snæblers/976 --- > snæbel/815,822,70,944 127090,127099c121792 < snøbel/70,976 < snøbelen/976 < snøbelens/976 < snøbels/976 < snøblen/976 < snøblens/976 < snøbler/976 < snøblerne/976 < snøblernes < snøblers/976 --- > snøbel/815,822,70,944 127120,127123c121813 < snørkel/70,976 < snørkelen/976 < snørkelens/976 < snørkels/976 --- > snørkel/815,822,70,944 127125,127130d121814 < snørklen/976 < snørklens/976 < snørkler/976 < snørklerne/976 < snørklernes < snørklers/976 127241c121925 < socialpædagogik/193,70,976 --- > socialpædagogik/737,70,976 127249c121933 < socialrådgiver/20,7,70,976 --- > socialrådgiver/20,7,70,976,941,947 127335,127344c122019 < sofacykel/70,976 < sofacykelen/976 < sofacykelens/976 < sofacykels/976 < sofacyklen/976 < sofacyklens/976 < sofacykler/976 < sofacyklerne/976 < sofacyklernes < sofacyklers/976 --- > sofacykel/815,822,70,944 127504a122180 > solaveksel/815,822,70,944 127528c122204,122205 < solcelle/70,73,7,976 --- > solcelle/70,73,7,976,941,947 > solcelleanlæg/70,254,976 127578,127587c122255 < solfakkel/70,976 < solfakkelen/976 < solfakkelens/976 < solfakkels/976 < solfaklen/976 < solfaklens/976 < solfakler/976 < solfaklerne/976 < solfaklernes < solfaklers/976 --- > solfakkel/815,822,70,944 127590c122258 < solfanger/20,7,70,976 --- > solfanger/20,7,70,976,941,947 127781a122450 > solvarme/193,70,976,941,947 127844a122514 > sommerferiearbejde/194,70,976 128013d122682 < sop 128021c122690 < soppe --- > soppe/6,143,148 128023,128030d122691 < soppede < soppedes < soppende < soppendes < sopper < soppes < soppet < soppets 128266,128275c122927 < sovemiddel/70,976 < sovemiddelet/976 < sovemiddelets/976 < sovemiddels/976 < sovemidler/976 < sovemidlerne/976 < sovemidlernes < sovemidlers/976 < sovemidlet/976 < sovemidlets/976 --- > sovemiddel/815,70,944,828 128421a123074 > spansksproget/70,915,976 128423d123075 < spar 128472,128474c123124 < sparre < sparrede < sparredes --- > sparre/6,143,148 128476,128480d123125 < sparrende < sparrendes < sparrer < sparres < sparret 128482d123126 < sparrets 128496,128498c123140 < spartel/70,976 < spartelen/976 < spartelens/976 --- > spartel/815,822,70,944 128501d123142 < spartels/976 128503,128508d123143 < spartlen/976 < spartlens/976 < spartler/976 < spartlerne/976 < spartlernes < spartlers/976 128567,128575c123202 < specialfremstil < specialfremstille < specialfremstillede < specialfremstilledes < specialfremstillende < specialfremstillendes < specialfremstiller < specialfremstilles < specialfremstillet --- > specialfremstille/6,143,148 128577d123203 < specialfremstillets 128592c123218 < specialist/70,73,7,976 --- > specialist/70,73,7,976,941,947 128606c123232,123234 < speciallæge/70,73,7,976 --- > speciallæge/70,73,7,976,941,947 > speciallægepraksis/46,70,976 > speciallægepraksis/70,267,976 128700c123328 < spektakel/70,976 --- > spektakel/815,70,944,828 128702,128708d123329 < spektakels/976 < spektakler/976 < spektaklerne/976 < spektaklernes < spektaklers/976 < spektaklet/976 < spektaklets/976 128864,128873c123485 < spidsmejsel/70,976 < spidsmejselen/976 < spidsmejselens/976 < spidsmejsels/976 < spidsmejslen/976 < spidsmejslens/976 < spidsmejsler/976 < spidsmejslerne/976 < spidsmejslernes < spidsmejslers/976 --- > spidsmejsel/815,822,70,944 128896a123509 > spilaksel/815,822,70,944 128964c123577 < spillefilm/70,7,252,976 --- > spillefilm/70,7,252,976,947 129014a123628 > spillenørd/70,73,7,976 129019,129028c123633 < spilleregel/70,976 < spilleregelen/976 < spilleregelens/976 < spilleregels/976 < spillereglen/976 < spillereglens/976 < spilleregler/976 < spillereglerne/976 < spillereglernes < spillereglers/976 --- > spilleregel/815,822,70,944 129070,129073c123675 < spindel/70,976 < spindelen/976 < spindelens/976 < spindels/976 --- > spindel/815,822,70,944 129093,129094d123694 < spindlen/976 < spindlens/976 129096,129099c123696 < spindler/976 < spindlerne/976 < spindlernes < spindlers/976 --- > spindoktor/70,73,7,976 129151,129160c123748 < spirituskørsel/70,976 < spirituskørselen/976 < spirituskørselens/976 < spirituskørsels/976 < spirituskørslen/976 < spirituskørslens/976 < spirituskørsler/976 < spirituskørslerne/976 < spirituskørslernes < spirituskørslers/976 --- > spirituskørsel/815,822,70,944 129178,129187c123766 < spisekartoffel/70,976 < spisekartoffelen/976 < spisekartoffelens/976 < spisekartoffels/976 < spisekartoflen/976 < spisekartoflens/976 < spisekartofler/976 < spisekartoflerne/976 < spisekartoflernes < spisekartoflers/976 --- > spisekartoffel/815,822,70,944 129198,129207c123777 < spiseseddel/70,976 < spiseseddelen/976 < spiseseddelens/976 < spiseseddels/976 < spisesedlen/976 < spisesedlens/976 < spisesedler/976 < spisesedlerne/976 < spisesedlernes < spisesedlers/976 --- > spiseseddel/815,822,70,944 129239d123808 < spjæt 129241,129249c123810 < spjætte < spjættede < spjættedes < spjættende < spjættendes < spjætter < spjættes < spjættet < spjættets --- > spjætte/6,143,148 129389,129399d123949 < sportig/976 < sportige/976 < sportigere/976 < sportigeres/976 < sportiges/976 < sportigs/976 < sportigst/976 < sportigste/976 < sportigstes/976 < sportigt/976 < sportigts/976 129412,129421c123962 < sportscykel/70,976 < sportscykelen/976 < sportscykelens/976 < sportscykels/976 < sportscyklen/976 < sportscyklens/976 < sportscykler/976 < sportscyklerne/976 < sportscyklernes < sportscyklers/976 --- > sportscykel/815,822,70,944 129459a124001 > sportsskade/70,73,7,976 129465a124008 > sportsudøver/20,7,70,976 129469d124011 < sportys/976 129488d124029 < spot 129496,129498c124037 < spotte < spottede < spottedes --- > spotte/6,143,148 129500,129502c124039 < spottende < spottendes < spotter --- > spotteglose/70,73,7,976 129504,129506d124040 < spottes < spottet < spottets 129602,129611c124136 < spritkørsel/70,976 < spritkørselen/976 < spritkørselens/976 < spritkørsels/976 < spritkørslen/976 < spritkørslens/976 < spritkørsler/976 < spritkørslerne/976 < spritkørslernes < spritkørslers/976 --- > spritkørsel/815,822,70,944 129657a124183 > sproglig/913,70,366,976 129791,129800c124317 < sprøjtemiddel/70,976 < sprøjtemiddelet/976 < sprøjtemiddelets/976 < sprøjtemiddels/976 < sprøjtemidler/976 < sprøjtemidlerne/976 < sprøjtemidlernes < sprøjtemidlers/976 < sprøjtemidlet/976 < sprøjtemidlets/976 --- > sprøjtemiddel/815,70,944,828,941,947 129847,129856c124364 < spytkirtel/70,976 < spytkirtelen/976 < spytkirtelens/976 < spytkirtels/976 < spytkirtlen/976 < spytkirtlens/976 < spytkirtler/976 < spytkirtlerne/976 < spytkirtlernes < spytkirtlers/976 --- > spytkirtel/815,822,70,944 129984,129993c124492 < spærreregel/70,976 < spærreregelen/976 < spærreregelens/976 < spærreregels/976 < spærrereglen/976 < spærrereglens/976 < spærreregler/976 < spærrereglerne/976 < spærrereglernes < spærrereglers/976 --- > spærreregel/815,822,70,944 130041c124540 < spørgsmål/70,252,10,976 --- > spørgsmål/70,252,10,976,939,947 130086c124585 < stabel/70,976 --- > stabel/815,822,70,944 130089,130091d124587 < stabelen/976 < stabelens/976 < stabels/976 130104,130109d124599 < stablen/976 < stablens/976 < stabler/976 < stablerne/976 < stablernes < stablers/976 130147c124637 < stadion/70,10,73,976 --- > stadion/70,10,73,976,941,947 130213,130219c124703,124704 < stakkel/70,976 < stakkelen/976 < stakkelens/976 < stakkels/976 < stakkels'/976 < stakkelses < stakkels's/976 --- > stakkel/815,822,70,944 > stakkels 130225,130230d124709 < staklen/976 < staklens/976 < stakler/976 < staklerne/976 < staklernes < staklers/976 130249a124729 > staldgødning/193,70,976 130377,130386c124857 < standardeksempel/70,976 < standardeksempelet/976 < standardeksempelets/976 < standardeksempels/976 < standardeksempler/976 < standardeksemplerne/976 < standardeksemplernes < standardeksemplers/976 < standardeksemplet/976 < standardeksemplets/976 --- > standardeksempel/815,70,944,828 130514,130523c124985 < startkabel/70,976 < startkabelet/976 < startkabelets/976 < startkabels/976 < startkabler/976 < startkablerne/976 < startkablernes < startkablers/976 < startkablet/976 < startkablets/976 --- > startkabel/815,70,944,828 130527a124990 > startliste/70,73,7,976 130543,130552c125006 < startskamlen/976 < startskamlens/976 < startskamler/976 < startskamlerne/976 < startskamlernes < startskamlers/976 < startskammel/70,976 < startskammelen/976 < startskammelens/976 < startskammels/976 --- > startskammel/815,822,70,944 130614c125068 < statsborgerskab/70,10,73,976 --- > statsborgerskab/70,10,73,976,939,947 130646,130655c125100 < statsfængsel/70,976 < statsfængselet/976 < statsfængselets/976 < statsfængsels/976 < statsfængsler/976 < statsfængslerne/976 < statsfængslernes < statsfængslers/976 < statsfængslet/976 < statsfængslets/976 --- > statsfængsel/815,70,944,828 130824d125268 < stave/941,947 131163,131172c125607 < stemmegaffel/70,976 < stemmegaffelen/976 < stemmegaffelens/976 < stemmegaffels/976 < stemmegaflen/976 < stemmegaflens/976 < stemmegafler/976 < stemmegaflerne/976 < stemmegaflernes < stemmegaflers/976 --- > stemmegaffel/815,822,70,944 131188,131197c125623 < stemmeseddel/70,976 < stemmeseddelen/976 < stemmeseddelens/976 < stemmeseddels/976 < stemmesedlen/976 < stemmesedlens/976 < stemmesedler/976 < stemmesedlerne/976 < stemmesedlernes < stemmesedlers/976 --- > stemmeseddel/815,822,70,944 131218c125644 < stempel/70,976,941,947 --- > stempel/815,70,944,828,941,947 131220,131221d125645 < stempelet/976 < stempelets/976 131230d125653 < stempels/976 131243,131248d125665 < stempler/976 < stemplerne/976 < stemplernes < stemplers/976 < stemplet/976 < stemplets/976 131263c125680 < stenalder/193,70,976 --- > stenalder/193,70,976,941,947 131662c126079 < stillads/70,10,73,976 --- > stillads/70,10,73,976,941,947 131699a126117 > stillingsopslag/70,252,10,976 131707,131716c126125 < stilmøbel/70,976 < stilmøbelet/976 < stilmøbelets/976 < stilmøbels/976 < stilmøbler/976 < stilmøblerne/976 < stilmøblernes < stilmøblers/976 < stilmøblet/976 < stilmøblets/976 --- > stilmøbel/815,70,944,828 131761a126171 > stimle 131763,131765c126173 < stimle/976 < stimlen/976 < stimlene/976 --- > stimlene 131767,131772c126175,126176 < stimlens/976 < stimles/976 < stimmel/70,976 < stimmelen/976 < stimmelens/976 < stimmels/976 --- > stimles > stimmel/822,70 131844,131853c126248 < stivelsesmiddel/70,976 < stivelsesmiddelet/976 < stivelsesmiddelets/976 < stivelsesmiddels/976 < stivelsesmidler/976 < stivelsesmidlerne/976 < stivelsesmidlernes < stivelsesmidlers/976 < stivelsesmidlet/976 < stivelsesmidlets/976 --- > stivelsesmiddel/815,70,944,828 131877c126272 < stivkrampe/193,70,976 --- > stivkrampe/193,70,976,941,947 131963,131972c126358 < stjernevrimle/976 < stjernevrimlen/976 < stjernevrimlene/976 < stjernevrimlenes < stjernevrimlens/976 < stjernevrimles/976 < stjernevrimmel/70,976 < stjernevrimmelen/976 < stjernevrimmelens/976 < stjernevrimmels/976 --- > stjernevrimmel/815,822,70,944 132043c126429 < stofskifte/194,70,976 --- > stofskifte/194,70,976,941,947 132161a126548 > storbyferie/70,73,7,976 132177,132186c126564 < storcirkel/70,976 < storcirkelen/976 < storcirkelens/976 < storcirkels/976 < storcirklen/976 < storcirklens/976 < storcirkler/976 < storcirklerne/976 < storcirklernes < storcirklers/976 --- > storcirkel/815,822,70,944,941,947 132396,132405c126774 < stormvarsel/70,976 < stormvarselet/976 < stormvarselets/976 < stormvarsels/976 < stormvarsler/976 < stormvarslerne/976 < stormvarslernes < stormvarslers/976 < stormvarslet/976 < stormvarslets/976 --- > stormvarsel/815,70,944,828 132479c126848 < storting/70,252,10,976 --- > storting/70,252,10,976,939,947 132564a126934 > straffelovsovertrædelse/70,73,7,976 132581c126951 < strafferet/737,70,976 --- > strafferet/737,70,976,939,947 132762c127132 < stregkode/70,73,7,976 --- > stregkode/70,73,7,976,941,947 132782,132791c127152 < strejketruslen/976 < strejketruslens/976 < strejketrusler/976 < strejketruslerne/976 < strejketruslernes < strejketruslers/976 < strejketrussel/70,976 < strejketrusselen/976 < strejketrusselens/976 < strejketrussels/976 --- > strejketrussel/815,822,70,944 132793,132802c127154 < strejkevarsel/70,976 < strejkevarselet/976 < strejkevarselets/976 < strejkevarsels/976 < strejkevarsler/976 < strejkevarslerne/976 < strejkevarslernes < strejkevarslers/976 < strejkevarslet/976 < strejkevarslets/976 --- > strejkevarsel/815,70,944,828 132823a127176 > stressreaktion/70,73,7,976 132918,132925c127271 < strimlen/976 < strimlens/976 < strimler/976 < strimlerne/976 < strimlernes < strimlers/976 < strimmel/70,976 < strimmels/976 --- > strimmel/815,822,70,944 133076,133085c127422 < strækkemuskel/70,976 < strækkemuskelen/976 < strækkemuskelens/976 < strækkemuskels/976 < strækkemusklen/976 < strækkemusklens/976 < strækkemuskler/976 < strækkemusklerne/976 < strækkemusklernes < strækkemusklers/976 --- > strækkemuskel/815,822,70,944 133131,133140c127468 < strømhvirvel/70,976 < strømhvirvelen/976 < strømhvirvelens/976 < strømhvirvels/976 < strømhvirvlen/976 < strømhvirvlens/976 < strømhvirvler/976 < strømhvirvlerne/976 < strømhvirvlernes < strømhvirvlers/976 --- > strømhvirvel/815,822,70,944 133190a127519 > stråforkortelsesmiddel/815,70,944,828 133192,133201c127521 < stråforkortningsmiddel/70,976 < stråforkortningsmiddelet/976 < stråforkortningsmiddelets/976 < stråforkortningsmiddels/976 < stråforkortningsmidler/976 < stråforkortningsmidlerne/976 < stråforkortningsmidlernes < stråforkortningsmidlers/976 < stråforkortningsmidlet/976 < stråforkortningsmidlets/976 --- > stråforkortningsmiddel/815,70,944,828 133403c127723,127725 < studierejse/70,73,7,976 --- > studierejse/70,73,7,976,941,947 > studieretning/70,73,7,976,939,947 > studieretningsfag/70,252,10,976 133627,133636c127949 < styringsmiddel/70,976 < styringsmiddelet/976 < styringsmiddelets/976 < styringsmiddels/976 < styringsmidler/976 < styringsmidlerne/976 < styringsmidlernes < styringsmidlers/976 < styringsmidlet/976 < styringsmidlets/976 --- > styringsmiddel/815,70,944,828 133706,133708c128019 < stængel/70,976 < stængelen/976 < stængelens/976 --- > stængel/815,822,70,944,941,947 133712d128022 < stængels/976 133718,133723d128027 < stænglen/976 < stænglens/976 < stængler/976 < stænglerne/976 < stænglernes < stænglers/976 133757a128062 > stævnevarsel/815,70,944,828 133914a128220 > støttevæv/70,252,10,976 133917c128223 < støv/194,70,976 --- > støv/194,70,976,941,947 134062d128367 < subjekt/70,10,73,976 134063a128369 > subjekt/70,10,73,976,941,947 134215,134224c128521 < sugesnabel/70,976 < sugesnabelen/976 < sugesnabelens/976 < sugesnabels/976 < sugesnablen/976 < sugesnablens/976 < sugesnabler/976 < sugesnablerne/976 < sugesnablernes < sugesnablers/976 --- > sugesnabel/815,822,70,944 134271a128569 > sukkertrang/193,70,976 134400,134406c128698,128700 < sundhedsapostel/70,976 < sundhedsapostelen/976 < sundhedsapostelens/976 < sundhedsapostels/976 < sundhedsapostle/976 < sundhedsapostlen/976 < sundhedsapostlene/976 --- > sundhedsapostel/822,70 > sundhedsapostle > sundhedsapostlene 134408,134409c128702 < sundhedsapostlens/976 < sundhedsapostles/976 --- > sundhedsapostles 134424a128718 > sundhedskort/70,252,10,976 134440a128735 > sundhedspersonale/70,10,73,976 134443c128738 < sundhedsplejerske/70,73,7,976 --- > sundhedsplejerske/70,73,7,976,941,947 134584a128880,128893 > suport/36 > suporte/36 > suporten/36 > suportens/36 > suporter/36 > suportere/36 > suporteren/36 > suporterens/36 > suporteres/36 > suporterne/36 > suporternes/36 > suporters/36 > suportes/36 > suports/36 134645,134654c128954 < supplementvinkel/70,976 < supplementvinkelen/976 < supplementvinkelens/976 < supplementvinkels/976 < supplementvinklen/976 < supplementvinklens/976 < supplementvinkler/976 < supplementvinklerne/976 < supplementvinklernes < supplementvinklers/976 --- > supplementvinkel/815,822,70,944 134822d129121 < sut 134826,134828c129125 < sutte/941,947 < suttede < suttedes --- > sutte/6,143,148,941,947 134831,134836d129127 < suttende < suttendes < sutter < suttes < suttet < suttets 134907,134916c129198 < svampemiddel/70,976 < svampemiddelet/976 < svampemiddelets/976 < svampemiddels/976 < svampemidler/976 < svampemidlerne/976 < svampemidlernes < svampemidlers/976 < svampemidlet/976 < svampemidlets/976 --- > svampemiddel/815,70,944,828 134938a129221 > svangerskabsforgiftning/70,73,7,976 134967a129251 > svarprocent/70,73,7,976 135001,135010c129285 < svedkirtel/70,976 < svedkirtelen/976 < svedkirtelens/976 < svedkirtels/976 < svedkirtlen/976 < svedkirtlens/976 < svedkirtler/976 < svedkirtlerne/976 < svedkirtlernes < svedkirtlers/976 --- > svedkirtel/815,822,70,944 135067c129342 < svendeprøve/70,73,7,976 --- > svendeprøve/70,73,7,976,941,947 135085c129360 < svensk/193,70,976 --- > svensk/190,976,941,947 135097a129373,129374 > svensken/70,976 > svenskens 135098a129376 > svenskerhår/194,70,976 135102a129381 > svensksproget/70,915,976 135188,135197c129467 < svikkel/70,976 < svikkelen/976 < svikkelens/976 < svikkels/976 < sviklen/976 < sviklens/976 < svikler/976 < sviklerne/976 < sviklernes < sviklers/976 --- > svikkel/815,822,70,944 135327,135336c129597 < svingkørsel/70,976 < svingkørselen/976 < svingkørselens/976 < svingkørsels/976 < svingkørslen/976 < svingkørslens/976 < svingkørsler/976 < svingkørslerne/976 < svingkørslernes < svingkørslers/976 --- > svingkørsel/815,822,70,944 135347a129609 > svingvælger/20,7,70,976 135391,135400c129653 < svirvel/70,976 < svirvelen/976 < svirvelens/976 < svirvels/976 < svirvlen/976 < svirvlens/976 < svirvler/976 < svirvlerne/976 < svirvlernes < svirvlers/976 --- > svirvel/815,822,70,944 135459,135468c129712 < svumpukkel/70,976 < svumpukkelen/976 < svumpukkelens/976 < svumpukkels/976 < svumpuklen/976 < svumpuklens/976 < svumpukler/976 < svumpuklerne/976 < svumpuklernes < svumpuklers/976 --- > svumpukkel/815,822,70,944 135651a129896 > syddansk/917,976 135762a130008 > sygdomstilfælde/70,252,10,976 135783a130030 > sygeforsikring/70,73,7,976 135925c130172 < symmetri/70,73,7,976 --- > symmetri/70,73,7,976,941,947 136132,136141c130379 < synsvinkel/70,976 < synsvinkelen/976 < synsvinkelens/976 < synsvinkels/976 < synsvinklen/976 < synsvinklens/976 < synsvinkler/976 < synsvinklerne/976 < synsvinklernes < synsvinklers/976 --- > synsvinkel/815,822,70,944,941,947 136355a130594 > sæddonation/70,73,7,976 136359,136368c130598 < sædefødsel/70,976 < sædefødselen/976 < sædefødselens/976 < sædefødsels/976 < sædefødslen/976 < sædefødslens/976 < sædefødsler/976 < sædefødslerne/976 < sædefødslernes < sædefødslers/976 --- > sædefødsel/815,822,70,944 136371a130602 > sædelighed/193,70,976,939,947 136372a130604 > sædelighedsforbryder/20,7,70,976 136373a130606 > sædelighedssag/70,73,7,976 136378,136387c130611 < sædemuskel/70,976 < sædemuskelen/976 < sædemuskelens/976 < sædemuskels/976 < sædemusklen/976 < sædemusklens/976 < sædemuskler/976 < sædemusklerne/976 < sædemusklernes < sædemusklers/976 --- > sædemuskel/815,822,70,944 136556,136565c130780 < særregel/70,976 < særregelen/976 < særregelens/976 < særregels/976 < særreglen/976 < særreglens/976 < særregler/976 < særreglerne/976 < særreglernes < særreglers/976 --- > særregel/815,822,70,944 136583,136592c130798 < særstempel/70,976 < særstempelet/976 < særstempelets/976 < særstempels/976 < særstempler/976 < særstemplerne/976 < særstemplernes < særstemplers/976 < særstemplet/976 < særstemplets/976 --- > særstempel/815,70,944,828 136642,136651c130848 < sættekartoffel/70,976 < sættekartoffelen/976 < sættekartoffelens/976 < sættekartoffels/976 < sættekartoflen/976 < sættekartoflens/976 < sættekartofler/976 < sættekartoflerne/976 < sættekartoflernes < sættekartoflers/976 --- > sættekartoffel/815,822,70,944 136692,136701c130889 < sødemiddel/70,976 < sødemiddelet/976 < sødemiddelets/976 < sødemiddels/976 < sødemidler/976 < sødemidlerne/976 < sødemidlernes < sødemidlers/976 < sødemidlet/976 < sødemidlets/976 --- > sødemiddel/815,70,944,828 136706,136715c130894 < sødkartoffel/70,976 < sødkartoffelen/976 < sødkartoffelens/976 < sødkartoffels/976 < sødkartoflen/976 < sødkartoflens/976 < sødkartofler/976 < sødkartoflerne/976 < sødkartoflernes < sødkartoflers/976 --- > sødkartoffel/815,822,70,944 136799c130978 < søgemaskine/70,73,7,976 --- > søgemaskine/70,73,7,976,941,947 136850,136859c131029 < søkabel/70,976 < søkabelet/976 < søkabelets/976 < søkabels/976 < søkabler/976 < søkablerne/976 < søkablernes < søkablers/976 < søkablet/976 < søkablets/976 --- > søkabel/815,70,944,828 136924c131094,131095 < sølvbryllup/70,9,976 --- > sølvbryllup/70,9,976,939,947 > sølvbryllupsdag/20,7,70,976 136972,136981c131143 < sølvpoplen/976 < sølvpoplens/976 < sølvpopler/976 < sølvpoplerne/976 < sølvpoplernes < sølvpoplers/976 < sølvpoppel/70,976 < sølvpoppelen/976 < sølvpoppelens/976 < sølvpoppels/976 --- > sølvpoppel/815,822,70,944 137010a131173 > sølvvinder/20,7,70,976 137015d131177 < søm 137038,137040c131200 < sømme < sømmede < sømmedes --- > sømme/6,143,148 137043,137045d131202 < sømmende < sømmendes < sømmer 137053,137055d131209 < sømmes < sømmet < sømmets 137181c131335 < sønderjysk/193,70,976 --- > sønderjysk/190,976 137590,137597c131744 < tabernakel/70,976 < tabernakels/976 < tabernakler/976 < tabernaklerne/976 < tabernaklernes < tabernaklers/976 < tabernaklet/976 < tabernaklets/976 --- > tabernakel/815,70,944,828 137741,137742c131888,131889 < tagpap/46,70,976 < tagpap/70,9,976 --- > tagpap/46,70,976,941,947 > tagpap/70,9,976,941,947 137994,138003c132141 < talgkirtel/70,976 < talgkirtelen/976 < talgkirtelens/976 < talgkirtels/976 < talgkirtlen/976 < talgkirtlens/976 < talgkirtler/976 < talgkirtlerne/976 < talgkirtlernes < talgkirtlers/976 --- > talgkirtel/815,822,70,944 138203a132342 > tandimplantat/70,10,73,976 138214,138223c132353 < tandmejsel/70,976 < tandmejselen/976 < tandmejselens/976 < tandmejsels/976 < tandmejslen/976 < tandmejslens/976 < tandmejsler/976 < tandmejslerne/976 < tandmejslernes < tandmejslers/976 --- > tandmejsel/815,822,70,944 138328,138329c132458,132459 < tankbil/70,73,7,976 < tankbåd/20,7,70,976 --- > tankbil/70,73,7,976,947 > tankbåd/20,7,70,976,939,947 138341c132471 < tankeoverføring/70,73,7,976 --- > tankeoverføring/70,73,7,976,939,947 138551c132681 < tastatur/70,10,73,976,466 --- > tastatur/70,10,73,976,941,947 138608,138617c132738 < taxakørsel/70,976 < taxakørselen/976 < taxakørselens/976 < taxakørsels/976 < taxakørslen/976 < taxakørslens/976 < taxakørsler/976 < taxakørslerne/976 < taxakørslernes < taxakørslers/976 --- > taxakørsel/815,822,70,944 138636,138645c132757 < taxikørsel/70,976 < taxikørselen/976 < taxikørselens/976 < taxikørsels/976 < taxikørslen/976 < taxikørslens/976 < taxikørsler/976 < taxikørslerne/976 < taxikørslernes < taxikørslers/976 --- > taxikørsel/815,822,70,944 138683a132796 > teaser/20,7,70,976 138713a132827 > teaterinstruktør/70,73,7,976 138839d132952 < tegne/941,947 138865c132978 < tegneserie/70,73,7,976 --- > tegneserie/70,73,7,976,941,947 138948,138957c133061 < teknologioverførsel/70,976 < teknologioverførselen/976 < teknologioverførselens/976 < teknologioverførsels/976 < teknologioverførslen/976 < teknologioverførslens/976 < teknologioverførsler/976 < teknologioverførslerne/976 < teknologioverførslernes < teknologioverførslers/976 --- > teknologioverførsel/815,822,70,944 138973a133078 > tekstboks/20,7,70,976 139049,139058c133154 < telefongaffel/70,976 < telefongaffelen/976 < telefongaffelens/976 < telefongaffels/976 < telefongaflen/976 < telefongaflens/976 < telefongafler/976 < telefongaflerne/976 < telefongaflernes < telefongaflers/976 --- > telefongaffel/815,822,70,944 139064,139073c133160 < telefonkabel/70,976 < telefonkabelet/976 < telefonkabelets/976 < telefonkabels/976 < telefonkabler/976 < telefonkablerne/976 < telefonkablernes < telefonkablers/976 < telefonkablet/976 < telefonkablets/976 --- > telefonkabel/815,70,944,828 139164a133252 > telekabel/815,70,944,828 139202c133290 < teletrafik/193,70,976 --- > teletrafik/737,70,976 139258c133346 < tempel/70,976,941,947 --- > tempel/815,70,944,828,941,947 139261,139262d133348 < tempelet/976 < tempelets/976 139267d133352 < tempels/976 139287,139293d133371 < templer/976 < templerne/976 < templernes < templers/976 < templet/976 < templet'/976 < templets/976 139412c133490 < terapi/70,73,7,976 --- > terapi/70,73,7,976,941,947 139586c133664 < terrorisme/193,70,976 --- > terrorisme/193,70,976,941,947 139588c133666 < terrorist/70,73,7,976 --- > terrorist/70,73,7,976,941,947 139593a133672 > terrororganisation/70,73,7,976 139597a133677 > terrænkørsel/815,822,70,944 139664,139673c133744 < testkørsel/70,976 < testkørselen/976 < testkørselens/976 < testkørsels/976 < testkørslen/976 < testkørslens/976 < testkørsler/976 < testkørslerne/976 < testkørslernes < testkørslers/976 --- > testkørsel/815,822,70,944 139678,139687c133749 < teststrimlen/976 < teststrimlens/976 < teststrimler/976 < teststrimlerne/976 < teststrimlernes < teststrimlers/976 < teststrimmel/70,976 < teststrimmelen/976 < teststrimmelens/976 < teststrimmels/976 --- > teststrimmel/815,822,70,944 140046,140051c134108 < tidmangel/70,976 < tidmangelen/976 < tidmangelens < tidmangels/976 < tidmanglen/976 < tidmanglens/976 --- > tidmangel/822,70 140111c134168 < tidsel/70,976 --- > tidsel/815,822,70,944,941,947 140113,140114d134169 < tidselen/976 < tidselens/976 140118d134172 < tidsels/976 140141,140156c134195 < tidskørsel/70,976 < tidskørselen/976 < tidskørselens/976 < tidskørsels/976 < tidskørslen/976 < tidskørslens/976 < tidskørsler/976 < tidskørslerne/976 < tidskørslernes < tidskørslers/976 < tidslen/976 < tidslens/976 < tidsler/976 < tidslerne/976 < tidslernes < tidslers/976 --- > tidskørsel/815,822,70,944 140157a134197 > tidslinje/70,73,7,976 140160,140165c134200 < tidsmangel/70,976 < tidsmangelen/976 < tidsmangelens < tidsmangels/976 < tidsmanglen/976 < tidsmanglens/976 --- > tidsmangel/822,70 140182a134218 > tidsregistrering/70,73,7,976,939,947 140310,140319c134346 < tikroneseddel/70,976 < tikroneseddelen/976 < tikroneseddelens/976 < tikroneseddels/976 < tikronesedlen/976 < tikronesedlens/976 < tikronesedler/976 < tikronesedlerne/976 < tikronesedlernes < tikronesedlers/976 --- > tikroneseddel/815,822,70,944 140331c134358 < tilbagebetaling/193,70,976 --- > tilbagebetaling/70,73,7,976,939,947 140359,140368c134386 < tilbageførsel/70,976 < tilbageførselen/976 < tilbageførselens/976 < tilbageførsels/976 < tilbageførslen/976 < tilbageførslens/976 < tilbageførsler/976 < tilbageførslerne/976 < tilbageførslernes < tilbageførslers/976 --- > tilbageførsel/815,822,70,944 140446a134465 > tilbagesendelse/70,73,7,976,939,947 140513c134532 < tilbagetrækning/70,73,7,976 --- > tilbagetrækning/70,73,7,976,939,947 140532c134551 < tilbedelse/70,73,7,976 --- > tilbedelse/70,73,7,976,939,947 140583d134601 < tilbud/70,252,10,976,939,947 140766d134783 < tilføje 140771,140774c134788 < tilførsel/70,976 < tilførselen/976 < tilførselens/976 < tilførsels/976 --- > tilførsel/815,822,70,944,939,947 140776,140781d134789 < tilførslen/976 < tilførslens/976 < tilførsler/976 < tilførslerne/976 < tilførslernes < tilførslers/976 140815,140824c134823 < tilgodeseddel/70,976 < tilgodeseddelen/976 < tilgodeseddelens/976 < tilgodeseddels/976 < tilgodesedlen/976 < tilgodesedlens/976 < tilgodesedler/976 < tilgodesedlerne/976 < tilgodesedlernes < tilgodesedlers/976 --- > tilgodeseddel/815,822,70,944 140846c134845 < tilgængelighed/193,70,976 --- > tilgængelighed/70,73,7,976,939,947 140936,140945c134935 < tilklip < tilklippe < tilklippede < tilklippedes < tilklippende < tilklippendes < tilklipper < tilklippes < tilklippet < tilklippets --- > tilklippe/6,143,148 140949c134939 < tilknytning/70,73,7,976 --- > tilknytning/70,73,7,976,939,947 140954c134944 < tilkobling/70,73,7,976 --- > tilkobling/70,73,7,976,939,947 140971c134961 < tilkøb/70,252,10,976 --- > tilkøb/70,252,10,976,939,947 140976,140979c134966 < tilkørsel/70,976 < tilkørselen/976 < tilkørselens/976 < tilkørsels/976 --- > tilkørsel/815,822,70,944,939,947 140983,140988d134969 < tilkørslen/976 < tilkørslens/976 < tilkørsler/976 < tilkørslerne/976 < tilkørslernes < tilkørslers/976 141101a135083 > tillægsgebyr/70,10,73,976 141192d135173 < tilret 141194,141196c135175 < tilrette/941,947 < tilrettede < tilrettedes --- > tilrette/6,143,148,941,947 141209a135189 > tilrettelægger/20,7,70,976 141212,141217c135192 < tilrettende < tilrettendes < tilretter < tilrettes < tilrettet < tilrettets --- > tilrettevise/140,143,148 141372a135348 > tilskudsmulighed/70,73,7,976 141705,141714c135681 < tilvæn < tilvænne < tilvænnede < tilvænnedes < tilvænnende < tilvænnendes < tilvænner < tilvænnes < tilvænnet < tilvænnets --- > tilvænne/6,143,148 141715a135683 > tilvænningsperiode/70,73,7,976 141743,141753c135711,135715 < timeseddel/70,976 < timeseddelen/976 < timeseddelens/976 < timeseddels/976 < timesedlen/976 < timesedlens/976 < timesedler/976 < timesedlerne/976 < timesedlernes < timesedlers/976 < timeshare/190,976 --- > timeseddel/815,822,70,944 > timeshare/193,70,976,941,947 > timeshareejer/20,7,70,976 > timesharekontrakt/70,73,7,976 > timesharelejlighed/70,73,7,976 141926d135887 < tip 141929a135891 > tipersoners 141960d135921 < tippe 141962,141963c135923 < tippede < tippedes --- > tippe/6,143,148 141965,141967d135924 < tippende < tippendes < tipper 141969d135925 < tippes 141971,141972d135926 < tippet < tippets 142015,142023c135969 < tirre < tirrede < tirredes < tirrende < tirrendes < tirrer < tirres < tirret < tirrets --- > tirre/6,143,148 142198c136144 < tjenestemand/70,976 --- > tjenestemand/70,976,939,947 142218a136165 > tjenestemandsundersøgelse/70,73,7,976 142330c136277 < tocifret/70,1062 --- > tocifret/70,915,976 142346,142355c136293 < todøgnsregel/70,976 < todøgnsregelen/976 < todøgnsregelens/976 < todøgnsregels/976 < todøgnsreglen/976 < todøgnsreglens/976 < todøgnsregler/976 < todøgnsreglerne/976 < todøgnsreglernes < todøgnsreglers/976 --- > todøgnsregel/815,822,70,944 142411a136350 > togbane/70,73,7,976 142431a136371,136373 > togsurfe/6,143,148 > togsurfer/20,7,70,976 > togsurfing/193,70,976 142457,142466c136399 < toiletmøbel/70,976 < toiletmøbelet/976 < toiletmøbelets/976 < toiletmøbels/976 < toiletmøbler/976 < toiletmøblerne/976 < toiletmøblernes < toiletmøblers/976 < toiletmøblet/976 < toiletmøblets/976 --- > toiletmøbel/815,70,944,828 142564,142573c136497 < tolerancetærskel/70,976 < tolerancetærskelen/976 < tolerancetærskelens/976 < tolerancetærskels/976 < tolerancetærsklen/976 < tolerancetærsklens/976 < tolerancetærskler/976 < tolerancetærsklerne/976 < tolerancetærsklernes < tolerancetærsklers/976 --- > tolerancetærskel/815,822,70,944 142660a136585 > tomhedsfølelse/70,73,7,976 142680,142689c136605 < tommelfingerregel/70,976 < tommelfingerregelen/976 < tommelfingerregelens/976 < tommelfingerregels/976 < tommelfingerreglen/976 < tommelfingerreglens/976 < tommelfingerregler/976 < tommelfingerreglerne/976 < tommelfingerreglernes < tommelfingerreglers/976 --- > tommelfingerregel/815,822,70,944 142826,142829c136742 < topersoners/976 < topersoners'/976 < topersonerses < topersoners's/976 --- > topersoners 142867a136781 > topmodel/46,70,976 142922a136837 > topvinkel/815,822,70,944 143218c137133 < total/70,73,7,976 --- > total/70,73,7,976,941,947 143220c137135 < total/70,9,976 --- > total/70,9,976,939,947 143240a137156 > totalløsning/70,73,7,976 143467,143476c137383 < trafikmiddel/70,976 < trafikmiddelet/976 < trafikmiddelets/976 < trafikmiddels/976 < trafikmidler/976 < trafikmidlerne/976 < trafikmidlernes < trafikmidlers/976 < trafikmidlet/976 < trafikmidlets/976 --- > trafikmiddel/815,70,944,828 143486a137394 > trafikmåling/70,73,7,976 143537c137445 < trailer/20,7,70,976 --- > trailer/20,7,70,976,941,947 143538a137447,137457 > trainee/70,976,941,947 > trainee'en/976 > trainee'ens/976 > trainee'er/976 > trainee'erne/976 > trainee'ernes > trainee'ers/976 > traineeforløb/70,252,10,976 > trainee's/976 > trainees/976 > trainees'/976 143632,143641c137551 < transferregel/70,976 < transferregelen/976 < transferregelens/976 < transferregels/976 < transferreglen/976 < transferreglens/976 < transferregler/976 < transferreglerne/976 < transferreglernes < transferreglers/976 --- > transferregel/815,822,70,944 143735,143744c137645 < transportmiddel/70,976 < transportmiddelet/976 < transportmiddelets/976 < transportmiddels/976 < transportmidler/976 < transportmidlerne/976 < transportmidlernes < transportmidlers/976 < transportmidlet/976 < transportmidlets/976 --- > transportmiddel/815,70,944,828 143780a137682,137683 > Transsilvanien/699,55 > transsilvansk/917,976 143784a137688 > transsylvansk/917,976 143894c137798 < trecifret/70,1062 --- > trecifret/70,915,976 143989d137892 < trek 144012,144017c137915 < trekke < trekkede < trekkedes < trekkende < trekkendes < trekker --- > trekke/6,143,148 144019,144021d137916 < trekkes < trekket < trekkets 144024a137920 > trekløver/10,70,20,976 144077,144080c137973 < trepersoners/976 < trepersoners'/976 < trepersonerses < trepersoners's/976 --- > trepersoners 144162d138054 < trettenårs 144252,144261c138144 < triangel/70,976 < triangelen/976 < triangelens/976 < triangels/976 < trianglen/976 < trianglens/976 < triangler/976 < trianglerne/976 < trianglernes < trianglers/976 --- > triangel/815,822,70,944 144282,144291c138165 < tricykel/70,976 < tricykelen/976 < tricykelens/976 < tricykels/976 < tricyklen/976 < tricyklens/976 < tricykler/976 < tricyklerne/976 < tricyklernes < tricyklers/976 --- > tricykel/815,822,70,944 144309d138182 < tril 144311a138185 > trille/6,143,148,941,947 144313d138186 < trille/941,947 144315,144322d138187 < trillede < trilledes < trillende < trillendes < triller < trilles < trillet < trillets 144387d138251 < tris 144389,144398c138253,138254 < trisse/70,73,7,976 < trisse/941,947 < trissede < trissedes < trissende < trissendes < trisser < trisses < trisset < trissets --- > trisse/6,143,148 > trisse/70,73,7,976,941,947 144435,144438c138291 < trivsel/70,976 < trivselen/976 < trivselens/976 < trivsels/976 --- > trivsel/822,70,939,947 144441,144442d138293 < trivslen/976 < trivslens 144532c138383 < troldmand/70,976 --- > troldmand/70,976,939,947 144564d138414 < trom 144574,144575c138424,138425 < tromme/70,73,7,976 < tromme/941,947 --- > tromme/6,143,148 > tromme/70,73,7,976,941,947 144577,144578d138426 < trommede < trommedes 144580,144589c138428 < trommehvirvel/70,976 < trommehvirvelen/976 < trommehvirvelens/976 < trommehvirvels/976 < trommehvirvlen/976 < trommehvirvlens/976 < trommehvirvler/976 < trommehvirvlerne/976 < trommehvirvlernes < trommehvirvlers/976 --- > trommehvirvel/815,822,70,944 144592,144595d138430 < trommende < trommendes < trommer < trommes 144601,144602d138435 < trommet < trommets 144622c138455 < tronfølge/193,70,976 --- > tronfølge/193,70,976,941,947 144770a138604 > trup/46,70,976 144772,144777d138605 < truslen/976 < truslens/976 < trusler/976 < truslerne/976 < truslernes < truslers/976 144780c138608 < trussel/70,976 --- > trussel/815,822,70,944,947 144789,144791d138616 < trusselen/976 < trusselens/976 < trussels/976 144823d138647 < tryg 144825,144828d138648 < trygge < 'trygge < tryggede < tryggedes 144830,144835d138649 < tryggende < tryggendes < trygger < trygges < trygget < tryggets 144973,144982c138787 < træbeskyttelsesmiddel/70,976 < træbeskyttelsesmiddelet/976 < træbeskyttelsesmiddelets/976 < træbeskyttelsesmiddels/976 < træbeskyttelsesmidler/976 < træbeskyttelsesmidlerne/976 < træbeskyttelsesmidlernes < træbeskyttelsesmidlers/976 < træbeskyttelsesmidlet/976 < træbeskyttelsesmidlets/976 --- > træbeskyttelsesmiddel/815,70,944,828 145106a138912 > trælegetøj/194,70,976 145145,145149c138951,138952 < trængsel/70,976 < trængsel/70,976,939,947 < trængselen/976 < trængselens/976 < trængsels/976 --- > trængsel/815,822,70,944,939,947 > trængsel/822,70,939,947 145151,145157d138953 < trængslen/976 < trængslens < trængslens/976 < trængsler/976 < trængslerne/976 < trængslernes < trængslers/976 145167a138964,138966 > træningspas/70,254,976 > træningsprogram/70,9,976 > træningstid/70,73,7,976 145168a138968,138969 > træningsudstyr/70,252,10,976 > træpille/70,73,7,976 145276,145279c139077 < trøffel/70,976,941,947 < trøffelen/976 < trøffelens/976 < trøffels/976 --- > trøffel/815,822,70,944,941,947 145283,145288d139080 < trøflen/976 < trøflens/976 < trøfler/976 < trøflerne/976 < trøflernes < trøflers/976 145407c139199 < tuberkulose/70,73,7,976 --- > tuberkulose/70,73,7,976,941,947 145622a139415,139416 > tunnelskræk/737,70,976 > tunnelsyn/194,70,976 145642a139437 > turcykel/815,822,70,944 145662a139458 > turistcykel/815,822,70,944 145780,145789c139576 < tusindkroneseddel/70,976 < tusindkroneseddelen/976 < tusindkroneseddelens/976 < tusindkroneseddels/976 < tusindkronesedlen/976 < tusindkronesedlens/976 < tusindkronesedler/976 < tusindkronesedlerne/976 < tusindkronesedlernes < tusindkronesedlers/976 --- > tusindkroneseddel/815,822,70,944 145886,145895c139673 < tvangsmiddel/70,976 < tvangsmiddelet/976 < tvangsmiddelets/976 < tvangsmiddels/976 < tvangsmidler/976 < tvangsmidlerne/976 < tvangsmidlernes < tvangsmidlers/976 < tvangsmidlet/976 < tvangsmidlets/976 --- > tvangsmiddel/815,70,944,828 145985,145992c139763 < tvillingefødsel/70,976 < tvillingefødsels/976 < tvillingefødslen/976 < tvillingefødslens/976 < tvillingefødsler/976 < tvillingefødslerne/976 < tvillingefødslernes < tvillingefødslers/976 --- > tvillingefødsel/815,822,70,944 146002,146009c139773 < tvillingfødsel/70,976 < tvillingfødsels/976 < tvillingfødslen/976 < tvillingfødslens/976 < tvillingfødsler/976 < tvillingfødslerne/976 < tvillingfødslernes < tvillingfødslers/976 --- > tvillingfødsel/815,822,70,944 146174c139938 < tværsnit/70,254,976 --- > tværsnit/70,254,976,939,947 146342a140107 > tyngsel/815,822,70,944 146418c140183 < tysk/193,70,976,941,947 --- > tysk/190,976,941,947 146432a140198,140199 > tysken/70,976 > tyskens 146448a140216 > tysksproget/70,915,976 146493,146502c140261 < tyvekroneseddel/70,976 < tyvekroneseddelen/976 < tyvekroneseddelens/976 < tyvekroneseddels/976 < tyvekronesedlen/976 < tyvekronesedlens/976 < tyvekronesedler/976 < tyvekronesedlerne/976 < tyvekronesedlernes < tyvekronesedlers/976 --- > tyvekroneseddel/815,822,70,944 146522d140280 < tyveårs 146591,146597c140349 < tæm < tæmme < tæmmede < tæmmedes < tæmmende < tæmmendes < tæmmer --- > tæmme/6,143,148 146599,146601d140350 < tæmmes < tæmmet < tæmmets 146618,146627c140367 < tændkabel/70,976 < tændkabelet/976 < tændkabelets/976 < tændkabels/976 < tændkabler/976 < tændkablerne/976 < tændkablernes < tændkablers/976 < tændkablet/976 < tændkablets/976 --- > tændkabel/815,70,944,828 146629,146638c140369 < tændrørskabel/70,976 < tændrørskabelet/976 < tændrørskabelets/976 < tændrørskabels/976 < tændrørskabler/976 < tændrørskablerne/976 < tændrørskablernes < tændrørskablers/976 < tændrørskablet/976 < tændrørskablets/976 --- > tændrørskabel/815,70,944,828 146674,146676c140405,140406 < tæp < tæppe/70,10,73,976 < tæppe/941,947 --- > tæppe/6,143,148 > tæppe/70,10,73,976,941,947 146685,146686d140414 < tæppede < tæppedes 146697,146702d140424 < tæppende < tæppendes < tæpper < tæppes < tæppet < tæppets 146709,146711c140431 < tærskel/70,976 < tærskelen/976 < tærskelens/976 --- > tærskel/815,822,70,944 146713d140432 < tærskels/976 146718,146723d140436 < tærsklen/976 < tærsklens/976 < tærskler/976 < tærsklerne/976 < tærsklernes < tærsklers/976 146749d140461 < tæt 146779,146781c140491 < tætte < tættede < tættedes --- > tætte/6,143,148 146783,146788d140492 < tættende < tættendes < tætter < tættes < tættet < tættets 146817,146820c140521,140522 < tøffe < tøffede < tøffedes < tøffel/70,976 --- > tøffe/6,143,148 > tøffel/815,822,70,944 146823,146824d140524 < tøffelen/976 < tøffelens/976 146826,146832d140525 < tøffels/976 < tøffende < tøffendes < tøffer < tøffes < tøffet < tøffets 146834,146839d140526 < tøflen/976 < tøflens/976 < tøfler/976 < tøflerne/976 < tøflernes < tøflers/976 146891,146900c140578 < tøjstrimlen/976 < tøjstrimlens/976 < tøjstrimler/976 < tøjstrimlerne/976 < tøjstrimlernes < tøjstrimlers/976 < tøjstrimmel/70,976 < tøjstrimmelen/976 < tøjstrimmelens/976 < tøjstrimmels/976 --- > tøjstrimmel/815,822,70,944 146937c140615 < tømning/70,73,7,976 --- > tømning/70,73,7,976,939,947 147011,147012c140689 < tørre/941,947 < tørrede --- > tørre/6,143,148,941,947 147017,147018d140693 < tørrende < tørrendes 147020d140694 < tørrer 147025d140698 < tørret 147027d140699 < tørrets 147140,147149c140812 < tårekirtel/70,976 < tårekirtelen/976 < tårekirtelens/976 < tårekirtels/976 < tårekirtlen/976 < tårekirtlens/976 < tårekirtler/976 < tårekirtlerne/976 < tårekirtlernes < tårekirtlers/976 --- > tårekirtel/815,822,70,944 147158a140822 > Tårnby/699,55 147681,147690c141345 < udbyg < udbygge < udbyggede < udbyggedes < udbyggende < udbyggendes < udbygger < udbygges < udbygget < udbyggets --- > udbygge/6,143,148 147697d141351 < udbyt 147699,147701c141353,141354 < udbytte/70,10,73,976 < udbytte/939,947 < udbyttede --- > udbytte/6,143,148 > udbytte/70,10,73,976,941,947 147703,147706d141355 < udbyttedes < udbyttende < udbyttendes < udbytter 147709,147711d141357 < udbyttes < udbyttet < udbyttets 147901,147904c141547 < udeluk < udelukke < udelukkede < udelukkedes --- > udelukke/6,143,148 147909,147912d141551 < udelukkendes < udelukker < udelukkes < udelukket 147914d141552 < udelukkets 148056,148065c141694 < udfaldsvinkel/70,976 < udfaldsvinkelen/976 < udfaldsvinkelens/976 < udfaldsvinkels/976 < udfaldsvinklen/976 < udfaldsvinklens/976 < udfaldsvinkler/976 < udfaldsvinklerne/976 < udfaldsvinklernes < udfaldsvinklers/976 --- > udfaldsvinkel/815,822,70,944 148085,148086c141714 < udflyt < udflytning/70,73,7,976 --- > udflytning/70,73,7,976,939,947 148088,148093c141716 < udflytte < udflyttede < udflyttedes < udflyttende < udflyttendes < udflytter --- > udflytte/6,143,148 148097,148099d141719 < udflyttes < udflyttet < udflyttets 148123d141742 < udfrit 148125,148133c141744 < udfritte < udfrittede < udfrittedes < udfrittende < udfrittendes < udfritter < udfrittes < udfrittet < udfrittets --- > udfritte/6,143,148 148156,148159c141767 < udførsel/70,976 < udførselen/976 < udførselens/976 < udførsels/976 --- > udførsel/815,822,70,944,939,947 148163,148168d141770 < udførslen/976 < udførslens/976 < udførsler/976 < udførslerne/976 < udførslernes < udførslers/976 148227d141828 < udglat 148229,148237c141830 < udglatte < udglattede < udglattedes < udglattende < udglattendes < udglatter < udglattes < udglattet < udglattets --- > udglatte/6,143,148 148289c141882 < udholdenhed/193,70,976 --- > udholdenhed/193,70,976,939,947 148372d141964 < udklas 148374,148382c141966 < udklasse < udklassede < udklassedes < udklassende < udklassendes < udklasser < udklasses < udklasset < udklassets --- > udklasse/6,143,148 148399,148408c141983 < udklæk < udklække < udklækkede < udklækkedes < udklækkende < udklækkendes < udklækker < udklækkes < udklækket < udklækkets --- > udklække/6,143,148 148453,148462c142028 < udkørsel/70,976 < udkørselen/976 < udkørselens/976 < udkørsels/976 < udkørslen/976 < udkørslens/976 < udkørsler/976 < udkørslerne/976 < udkørslernes < udkørslers/976 --- > udkørsel/815,822,70,944,939,947 148531,148540c142097 < udlod < udlodde < udloddede < udloddedes < udloddende < udloddendes < udlodder < udloddes < udloddet < udloddets --- > udlodde/6,143,148 148570,148579c142127 < udlængsel/70,976 < udlængselen/976 < udlængselens/976 < udlængsels/976 < udlængslen/976 < udlængslens/976 < udlængsler/976 < udlængslerne/976 < udlængslernes < udlængslers/976 --- > udlængsel/815,822,70,944 148644,148647c142192 < udnyt < udnytte < udnyttede < udnyttedes --- > udnytte/6,143,148 148651,148653d142195 < udnyttende < udnyttendes < udnytter 148655,148657d142196 < udnyttes < udnyttet < udnyttets 148795,148798c142334 < udryd < udrydde < udryddede < udryddedes --- > udrydde/6,143,148 148802,148807d142337 < udryddende < udryddendes < udrydder < udryddes < udryddet < udryddets 148913c142443 < udskoling/70,73,7,976 --- > udskoling/70,73,7,976,939,947 148979,148988c142509 < udskyl < udskylle < udskyllede < udskylledes < udskyllende < udskyllendes < udskyller < udskylles < udskyllet < udskyllets --- > udskylle/6,143,148 149137c142658 < udspille --- > udspille/6,143,148 149427,149436c142948 < udtryksmiddel/70,976 < udtryksmiddelet/976 < udtryksmiddelets/976 < udtryksmiddels/976 < udtryksmidler/976 < udtryksmidlerne/976 < udtryksmidlernes < udtryksmidlers/976 < udtryksmidlet/976 < udtryksmidlets/976 --- > udtryksmiddel/815,70,944,828 149490c143002,143003 < udtømning/70,73,7,976 --- > udtømning/70,73,7,976,939,947 > udtømningsventil/70,73,7,976 149552a143066 > udviklingsforløb/70,252,10,976 149719,149724c143233,143234 < 'uendelig/976 < uendelig/976 < uendelige/976 < uendeligere/976 < uendeligeres/976 < uendeliges/976 --- > uendelig > uendelig/913,70,366,976 149726,149729d143235 < uendeligs/976 < uendeligst/976 < uendeligste/976 < uendeligstes/976 149731d143236 < uendeligts/976 150288a143794 > uigenkendelig/913,70,366,976 150451,150460c143957 < ukrudtsmiddel/70,976 < ukrudtsmiddelet/976 < ukrudtsmiddelets/976 < ukrudtsmiddels/976 < ukrudtsmidler/976 < ukrudtsmidlerne/976 < ukrudtsmidlernes < ukrudtsmidlers/976 < ukrudtsmidlet/976 < ukrudtsmidlets/976 --- > ukrudtsmiddel/815,70,944,828 150613c144110 < ultralyd/20,7,70,976 --- > ultralyd/20,7,70,976,947 150913a144411 > underben/70,252,10,976 150941a144440 > undercover 151087a144587 > underkørsel/815,822,70,944 151255a144756,144757 > undersøgelsestidspunkt/70,10,73,976 > undersøger/20,7,70,976 151349,151358c144851 < undervisningsmiddel/70,976 < undervisningsmiddelet/976 < undervisningsmiddelets/976 < undervisningsmiddels/976 < undervisningsmidler/976 < undervisningsmidlerne/976 < undervisningsmidlernes < undervisningsmidlers/976 < undervisningsmidlet/976 < undervisningsmidlets/976 --- > undervisningsmiddel/815,70,944,828 151384a144878 > undervisningsuge/70,73,7,976 151402d144895 < undfaldende 151551,151560c145044 < undtagelsesregel/70,976 < undtagelsesregelen/976 < undtagelsesregelens/976 < undtagelsesregels/976 < undtagelsesreglen/976 < undtagelsesreglens/976 < undtagelsesregler/976 < undtagelsesreglerne/976 < undtagelsesreglernes < undtagelsesreglers/976 --- > undtagelsesregel/815,822,70,944 151618a145103 > ungdomsbande/70,73,7,976 151629a145115 > ungdomsfilm/70,7,252,976 151632,151641c145118 < ungdomsfængsel/70,976 < ungdomsfængselet/976 < ungdomsfængselets/976 < ungdomsfængsels/976 < ungdomsfængsler/976 < ungdomsfængslerne/976 < ungdomsfængslernes < ungdomsfængslers/976 < ungdomsfængslet/976 < ungdomsfængslets/976 --- > ungdomsfængsel/815,70,944,828 151649a145127 > ungdomslandshold/70,252,10,976 151773,151782c145251 < universalmiddel/70,976 < universalmiddelet/976 < universalmiddelets/976 < universalmiddels/976 < universalmidler/976 < universalmidlerne/976 < universalmidlernes < universalmidlers/976 < universalmidlet/976 < universalmidlets/976 --- > universalmiddel/815,70,944,828 151784,151791c145253 < universalrengøringsmiddel/70,976 < universalrengøringsmiddels/976 < universalrengøringsmidler/976 < universalrengøringsmidlerne/976 < universalrengøringsmidlernes < universalrengøringsmidlers/976 < universalrengøringsmidlet/976 < universalrengøringsmidlets/976 --- > universalrengøringsmiddel/815,70,944,828 151857c145319 < unøjagtighed/193,70,976 --- > unøjagtighed/70,73,7,976 151990,151991c145452,145457 < upload/6,143,148 < uploade --- > upload/194,70,976,941,947 > uploade/6,143,148 > uploadene/976 > uploadenes > uploads/976 > uploads'/976 152162a145629 > urinprøve/70,73,7,976 152176,152185c145643 < urkapsel/70,976 < urkapselen/976 < urkapselens/976 < urkapsels/976 < urkapslen/976 < urkapslens/976 < urkapsler/976 < urkapslerne/976 < urkapslernes < urkapslers/976 --- > urkapsel/815,822,70,944 152254a145713 > urovarsel/815,70,944,828 152830,152841c146289,146290 < vabel/70,976 < vabelen/976 < vabelens/976 < vabels/976 < vable/976 < vablen/976 < vablens/976 < vabler/976 < vablerne/976 < vablernes < vablers/976 < vables/976 --- > vabel/815,822,70,944 > vable/70,73,7,976 152869c146318 < vaffel/70,976 --- > vaffel/815,822,70,944,941,947 152871,152872d146319 < vaffelen/976 < vaffelens/976 152875d146321 < vaffels/976 152877,152882d146322 < vaflen/976 < vaflens/976 < vafler/976 < vaflerne/976 < vaflernes < vaflers/976 153170c146610 < validering/70,73,7,976 --- > validering/70,73,7,976,939,947 153203,153212c146643 < valmuekapsel/70,976 < valmuekapselen/976 < valmuekapselens/976 < valmuekapsels/976 < valmuekapslen/976 < valmuekapslens/976 < valmuekapsler/976 < valmuekapslerne/976 < valmuekapslernes < valmuekapslers/976 --- > valmuekapsel/815,822,70,944 153286a146718 > valutapukkel/815,822,70,944 153290a146723 > valutaspekulation/70,73,7,976 153292a146726 > valutauro/193,70,976 153311c146745 < vampyr/70,73,7,976 --- > vampyr/70,73,7,976,941,947 153343,153362c146777,146778 < vandbøffel/70,976 < vandbøffelen/976 < vandbøffelens/976 < vandbøffels/976 < vandbøflen/976 < vandbøflens/976 < vandbøfler/976 < vandbøflerne/976 < vandbøflernes < vandbøflers/976 < vandcykel/70,976 < vandcykelen/976 < vandcykelens/976 < vandcykels/976 < vandcyklen/976 < vandcyklens/976 < vandcykler/976 < vandcyklerne/976 < vandcyklernes < vandcyklers/976 --- > vandbøffel/815,822,70,944 > vandcykel/815,822,70,944 153382c146798 < vandforsyning/70,73,7,976 --- > vandforsyning/70,73,7,976,939,947 153422,153431c146838 < vandkedel/70,976 < vandkedelen/976 < vandkedelens/976 < vandkedels/976 < vandkedlen/976 < vandkedlens/976 < vandkedler/976 < vandkedlerne/976 < vandkedlernes < vandkedlers/976 --- > vandkedel/815,822,70,944 153460,153469c146867 < vandmangel/70,976 < vandmangelen/976 < vandmangelens/976 < vandmangels/976 < vandmanglen/976 < vandmanglens/976 < vandmangler/976 < vandmanglerne/976 < vandmanglernes < vandmanglers/976 --- > vandmangel/815,822,70,944 153585,153594c146983 < vandtilførsel/70,976 < vandtilførselen/976 < vandtilførselens/976 < vandtilførsels/976 < vandtilførslen/976 < vandtilførslens/976 < vandtilførsler/976 < vandtilførslerne/976 < vandtilførslernes < vandtilførslers/976 --- > vandtilførsel/815,822,70,944 153752,153757c147141 < vantrivsel/70,976 < vantrivselen/976 < vantrivselens/976 < vantrivsels/976 < vantrivslen/976 < vantrivslens --- > vantrivsel/822,70 153815,153824c147199 < varemangel/70,976 < varemangelen/976 < varemangelens/976 < varemangels/976 < varemanglen/976 < varemanglens/976 < varemangler/976 < varemanglerne/976 < varemanglernes < varemanglers/976 --- > varemangel/815,822,70,944 153848,153851c147223 < varetægtsfængsel/70,976 < varetægtsfængselet/976 < varetægtsfængselets/976 < varetægtsfængsels/976 --- > varetægtsfængsel/815,70,944,828 153853,153858c147225 < varetægtsfængsler/976 < varetægtsfængslerne/976 < varetægtsfængslernes < varetægtsfængslers/976 < varetægtsfængslet/976 < varetægtsfængslets/976 --- > varetægtsfængsling/70,73,7,976 153878c147245 < variation/70,73,7,976 --- > variation/70,73,7,976,939,947 153945,153954c147312 < varmetilførsel/70,976 < varmetilførselen/976 < varmetilførselens/976 < varmetilførsels/976 < varmetilførslen/976 < varmetilførslens/976 < varmetilførsler/976 < varmetilførslerne/976 < varmetilførslernes < varmetilførslers/976 --- > varmetilførsel/815,822,70,944 153988,153991c147346 < varsel/70,976 < varselet/976 < varselets/976 < varsels/976 --- > varsel/815,70,944,828,947 153995,154000d147349 < varsler/976 < varslerne/976 < varslernes < varslers/976 < varslet/976 < varslets/976 154039,154048c147388 < vaskemiddel/70,976 < vaskemiddelet/976 < vaskemiddelets/976 < vaskemiddels/976 < vaskemidler/976 < vaskemidlerne/976 < vaskemidlernes < vaskemidlers/976 < vaskemidlet/976 < vaskemidlets/976 --- > vaskemiddel/815,70,944,828 154174a147515 > vedlagdes 154205a147547 > vedligeholdsafdeling/70,73,7,976 154209a147552 > vedlæg 154211a147555,147558 > vedlæggen > vedlæggende > vedlægger > vedlægges 154270a147618 > vegetariansk/917,976 154287,154294c147635 < vehikel/70,976 < vehikels/976 < vehikler/976 < vehiklerne/976 < vehiklernes < vehiklers/976 < vehiklet/976 < vehiklets/976 --- > vehikel/815,70,944,828 154325,154334c147666 < vejgaffel/70,976 < vejgaffelen/976 < vejgaffelens/976 < vejgaffels/976 < vejgaflen/976 < vejgaflens/976 < vejgafler/976 < vejgaflerne/976 < vejgaflernes < vejgaflers/976 --- > vejgaffel/815,822,70,944 154443c147775 < veksel/70,976,941,947 --- > veksel/815,822,70,944,941,947 154445,154446d147776 < vekselen/976 < vekselens/976 154456d147785 < veksels/976 154468d147796 < vekslen/976 154470d147797 < vekslens/976 154472,154475d147798 < veksler/976 < vekslerne/976 < vekslernes < vekslers/976 154601a147925 > veldrejet/70,915,976 154640a147965 > velfærdsteknologi/70,73,7,976 154655a147981 > velholdt/913,70,366,976 154664a147991 > velkendt/913,70,366,976 154765a148093 > velstandsniveau/70,10,73,976 154887a148216 > Vendsyssel/699,55 154991,155000c148320 < venstrekørsel/70,976 < venstrekørselen/976 < venstrekørselens/976 < venstrekørsels/976 < venstrekørslen/976 < venstrekørslens/976 < venstrekørsler/976 < venstrekørslerne/976 < venstrekørslernes < venstrekørslers/976 --- > venstrekørsel/815,822,70,944 155243,155250c148563 < vermouth/70,976,941,947 < vermouthen/976 < vermouthens/976 < vermouther/976 < vermoutherne/976 < vermouthernes/976 < vermouthers/976 < vermouths/976 --- > vermouth/70,73,7,976,941,947 155252,155259d148564 < vermut/976 < vermuts/976 < vermutten/976 < vermuttens/976 < vermutter/976 < vermutterne/976 < vermutternes < vermutters/976 155621a148927 > vid/194,70,976 155639c148945 < videndeling/193,70,976 --- > videndeling/193,70,976,939,947 155652c148958 < vidensdeling/193,70,976 --- > vidensdeling/193,70,976,939,947 155722a149029 > videospil/70,254,976 155743,155752d149049 < videreførsel/70,976 < videreførselen/976 < videreførselens/976 < videreførsels/976 < videreførslen/976 < videreførslens/976 < videreførsler/976 < videreførslerne/976 < videreførslernes < videreførslers/976 155824,155833c149121 < vidneførsel/70,976,939,947 < vidneførselen/976 < vidneførselens/976 < vidneførsels/976 < vidneførslen/976 < vidneførslens/976 < vidneførsler/976 < vidneførslerne/976 < vidneførslernes < vidneførslers/976 --- > vidneførsel/815,822,70,944,939,947 155904,155916c149192,149193 < vidundermiddel/70,976 < vidundermiddelet/976 < vidundermiddelets/976 < vidundermiddels/976 < vidundermidler/976 < vidundermidlerne/976 < vidundermidlernes < vidundermidlers/976 < vidundermidlet/976 < vidundermidlets/976 < vidvinkel/70,976 < vidvinkelen/976 < vidvinkelens/976 --- > vidundermiddel/815,70,944,828 > vidvinkel/815,822,70,944,941,947 155918,155924d149194 < vidvinkels/976 < vidvinklen/976 < vidvinklens/976 < vidvinkler/976 < vidvinklerne/976 < vidvinklernes < vidvinklers/976 156030c149300 < vikingeskib/10,70,20,976 --- > vikingeskib/10,70,20,976,939,947 156036,156039c149306 < vikkel/70,976 < vikkelen/976 < vikkelens/976 < vikkels/976 --- > vikkel/815,822,70,944 156042,156043d149308 < viklen/976 < viklens/976 156046,156049d149310 < vikler/976 < viklerne/976 < viklernes < viklers/976 156204,156213c149465 < vildæsel/70,976 < vildæselet/976 < vildæselets/976 < vildæsels/976 < vildæsler/976 < vildæslerne/976 < vildæslernes < vildæslers/976 < vildæslet/976 < vildæslets/976 --- > vildæsel/815,70,944,828 156321,156330c149573 < vimpel/70,976 < vimpelen/976 < vimpelens/976 < vimpels/976 < vimplen/976 < vimplens/976 < vimpler/976 < vimplerne/976 < vimplernes < vimplers/976 --- > vimpel/815,822,70,944 156426c149669 < vindmølle/70,73,7,976 --- > vindmølle/70,73,7,976,941,947 156427a149671 > vindmøllelav/70,252,10,976 156428a149673 > vindmølleprojekt/70,10,73,976 156475,156484c149720 < vindueshængsel/70,976 < vindueshængselet/976 < vindueshængselets/976 < vindueshængsels/976 < vindueshængsler/976 < vindueshængslerne/976 < vindueshængslernes < vindueshængslers/976 < vindueshængslet/976 < vindueshængslets/976 --- > vindueshængsel/815,70,944,828 156584c149820 < vinkel/70,976,941,947 --- > vinkel/815,822,70,944,941,947 156598d149833 < vinkels/976 156607,156612d149841 < vinklen/976 < vinklens/976 < vinkler/976 < vinklerne/976 < vinklernes < vinklers/976 156634a149864 > vintage/193,70,976 156728c149958 < vintersport/193,70,976 --- > vintersport/193,70,976,939,947 156874,156883c150104 < virkemiddel/70,976 < virkemiddelet/976 < virkemiddelets/976 < virkemiddels/976 < virkemidler/976 < virkemidlerne/976 < virkemidlernes < virkemidlers/976 < virkemidlet/976 < virkemidlets/976 --- > virkemiddel/815,70,944,828 156941d150161 < vis 157071c150291 < visker/20,7,70,976 --- > visker/20,7,70,976,941,947 157102a150323 > visse/6,143,148 157104,157106d150324 < visse/941,947 < vissede < vissedes 157112,157113d150329 < vissende < vissendes 157119,157122d150334 < visser < visses < visset < vissets 157167,157176c150379 < vitaminmangel/70,976 < vitaminmangelen/976 < vitaminmangelens/976 < vitaminmangels/976 < vitaminmanglen/976 < vitaminmanglens/976 < vitaminmangler/976 < vitaminmanglerne/976 < vitaminmanglernes < vitaminmanglers/976 --- > vitaminmangel/822,70 157280a150484 > vognaksel/815,822,70,944 157290c150494 < vognmand/70,976 --- > vognmand/70,976,939,947 157375c150579 < voksenpædagogik/193,70,976 --- > voksenpædagogik/737,70,976 157457a150662 > voldsepisode/70,73,7,976 157490a150696 > voldspise/140,143,148 157781a150988 > vrimle 157783d150989 < vrimle/976 157785,157786c150991 < vrimlen/976 < vrimlene/976 --- > vrimlene 157788,157793c150993,150994 < vrimlens/976 < vrimles/976 < vrimmel/70,976 < vrimmelen/976 < vrimmelens/976 < vrimmels/976 --- > vrimles > vrimmel/822,70 157957,157966c151158 < væddekørsel/70,976 < væddekørselen/976 < væddekørselens/976 < væddekørsels/976 < væddekørslen/976 < væddekørslens/976 < væddekørsler/976 < væddekørslerne/976 < væddekørslernes < væddekørslers/976 --- > væddekørsel/815,822,70,944 158005a151198 > væglampe/70,73,7,976 158246,158255c151439 < værnemiddel/70,976 < værnemiddelet/976 < værnemiddelets/976 < værnemiddels/976 < værnemidler/976 < værnemidlerne/976 < værnemidlernes < værnemidlers/976 < værnemidlet/976 < værnemidlets/976 --- > værnemiddel/815,70,944,828 158643a151828 > webbutik/46,70,976 158645a151831 > webhotel/70,9,976 158650a151837 > webshop/46,70,976 158684a151872 > weekendophold/70,252,10,976 158737a151926 > whistleblower/20,7,70,976,941,947 159207,159209c152396 < yngel/70,976 < yngelen/976 < yngelens/976 --- > yngel/822,70 159212d152398 < yngels/976 159217,159218c152403,152404 < ynglen/976 < ynglens --- > yngleområde/70,10,73,976 > yngleperiode/70,73,7,976 159220a152407 > ynglesæson/70,73,7,976 159253c152440,152441 < yoga/193,70,976 --- > yoga/193,70,976,941,947 > yogaøvelse/70,73,7,976 159541,159550c152729 < zeustempel/70,976 < zeustempelet/976 < zeustempelets/976 < zeustempels/976 < zeustempler/976 < zeustemplerne/976 < zeustemplernes < zeustemplers/976 < zeustemplet/976 < zeustemplets/976 --- > zeustempel/815,70,944,828 159835c153014 < ægløsning/70,73,7,976 --- > ægløsning/70,73,7,976,939,947 159899a153079 > ægvinkel/815,822,70,944 159987a153168 > ældre/942,946 160008,160009d153188 < ældres < ældre's/976 160111a153291 > ærindekørsel/815,822,70,944 160120,160126c153300,153302 < ærkeengel/70,976 < ærkeengelen/976 < ærkeengelens/976 < ærkeengels/976 < ærkeengle/976 < ærkeenglen/976 < ærkeenglene/976 --- > ærkeengel/822,70 > ærkeengle > ærkeenglene 160128,160129c153304 < ærkeenglens/976 < ærkeengles/976 --- > ærkeengles 160159c153334 < æsel/70,976 --- > æsel/815,70,944,828,941,947 160161,160162d153335 < æselet/976 < æselets/976 160166d153338 < æsels/976 160180,160185d153351 < æsler/976 < æslerne/976 < æslernes < æslers/976 < æslet/976 < æslets/976 160227,160236c153393 < ætsemiddel/70,976 < ætsemiddelet/976 < ætsemiddelets/976 < ætsemiddels/976 < ætsemidler/976 < ætsemidlerne/976 < ætsemidlernes < ætsemidlers/976 < ætsemidlet/976 < ætsemidlets/976 --- > ætsemiddel/815,70,944,828 160245d153401 < æventyr/70,252,10,976 160531,160540c153687 < ølkapsel/70,976 < ølkapselen/976 < ølkapselens/976 < ølkapsels/976 < ølkapslen/976 < ølkapslens/976 < ølkapsler/976 < ølkapslerne/976 < ølkapslernes < ølkapslers/976 --- > ølkapsel/815,822,70,944 160619a153767,153769 > ønskejob/70,254,976 > ønskejobs' > ønskejobs/976 160621,160630c153771,153772 < ønskeseddel/70,976 < ønskeseddelen/976 < ønskeseddelens/976 < ønskeseddels/976 < ønskesedlen/976 < ønskesedlens/976 < ønskesedler/976 < ønskesedlerne/976 < ønskesedlernes < ønskesedlers/976 --- > ønskeliste/70,73,7,976 > ønskeseddel/815,822,70,944 160843a153986 > østarbejder/20,7,70,976 161095c154238 < ådsel/70,976 --- > ådsel/815,70,944,828,941,947 161097,161098d154239 < ådselet/976 < ådselets/976 161101d154241 < ådsels/976 161104,161109d154243 < ådsler/976 < ådslerne/976 < ådslernes < ådslers/976 < ådslet/976 < ådslets/976 161352,161361c154486 < åregaffel/70,976 < åregaffelen/976 < åregaffelens/976 < åregaffels/976 < åregaflen/976 < åregaflens/976 < åregafler/976 < åregaflerne/976 < åregaflernes < åregaflers/976 --- > åregaffel/815,822,70,944 161390c154515 < årgang/20,7,70,976 --- > årgang/20,7,70,976,939,947 161432a154558 > aarhusiansk/917,976 161456a154583 > årsafgift/70,73,7,976 161492c154619 < årsregnskab/70,10,73,976 --- > årsregnskab/70,10,73,976,939,947 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/da/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/da/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/da/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/da/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/da/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/da/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/da/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/da/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/da/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/da/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,8d3 < remove "Contents/Resources/searchplugins/wikipedia-da.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/amazon-co-uk.xml" 56,58c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d108 < rmdir "Contents/Resources/searchplugins/" 121d112 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 34c34 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 38c38 < OQ+l2UWAFf6vIvhqRRzQVUETFy0= --- > 0PGFQhBOabiKkOOs68u4xpzGdQ0= 42c42 < GDVvdvpzwmZxBJXthcqnr0kjU6c= --- > uoxzVPRVtAR3/GimImw2cQE7Tkg= 46c46 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 50c50 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 54c54 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 58c58 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 62c62 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 66c66 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 70c70 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 74c74 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 78c78 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 82c82 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 86c86 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 90c90 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 94c94 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 98c98 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 102c102 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 106c106 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 110c110 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 114c114 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 118c118 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 122c122 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 126c126 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 130c130 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 134c134 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 138c138 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 142c142 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 146c146 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 150c150 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 154c154 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 158c158 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 162c162 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 166c166 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 170c170 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 174c174 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 178c178 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 182c182 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 186c186 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 190c190 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 194c194 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 198c198 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 202c202 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 206c206 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 210c210 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 214c214 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 218c218 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 226c226 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 230c230 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 234c234 < sR1yZ1g/Qq6o9ndglNBPloRufUQ= --- > jHX72Ky29HDzx57Med0BQvBS8I0= 238c238 < 98Mld+8RY9BaNnCHGyioTYKi1kg= --- > uZX4tvhJ8/Ibn2vBMz3tCIWfTQw= 242c242 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 246c246 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 250c250 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 254c254 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 258c258 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 262c262 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 266c266 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 270c270 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 274c274 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 278c278 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 282c282 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 286c286 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 290c290 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 294c294 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 298c298 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 310c310 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 314c314 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 322c322 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 326c326 < sZriypFfAo2XdJ+33FYX6/ujevo= --- > yDc77ixYoK4jgwhBZ6EB+aYcjUA= 330c330 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 334c334 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 338c338 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 342c342 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 346c346 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 350c350 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 354c354 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 358c358 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 362c362 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 366c366 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 370c370 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 374c374 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 378c378 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 386c386 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 390c390 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 394c394 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 398c398 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 402c402 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 404c404 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 406c406 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 408c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 410c410 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 412c412 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 414c414 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 416c416 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 418c418 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 446c446 < JBVT5mIufSiYOFQm4xKC7ApFc1o= --- > uvC3gLS6GdRaiZ4vUl22yIQVlPE= 450c450 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 454c454 < Znt4bzarbu7seU/iBXcj1n2FV4E= --- > Vk9WU5Cmg3DtqAOKiQ2n5Lvdreg= 458c458 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,627d607 < Resources/searchplugins/amazon-co-uk.xml < < QVoEK/OaPbZvX8N8bMN+KM8CQw8= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/wikipedia-da.xml < < ack28Pn6jYcUZdczaSUwWLUQLA0= < 656c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c645 < SLtoKBoiD/4G2pH35RvfOg4dUnU= --- > Qd+z3pfO7QjOZLw5exBweBhlXvk= 674c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 823c803 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 827c807 < OQ+l2UWAFf6vIvhqRRzQVUETFy0= --- > 0PGFQhBOabiKkOOs68u4xpzGdQ0= 831c811 < GDVvdvpzwmZxBJXthcqnr0kjU6c= --- > uoxzVPRVtAR3/GimImw2cQE7Tkg= 835c815 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 839c819 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 843c823 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 847c827 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 851c831 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 855c835 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 859c839 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 863c843 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 867c847 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 871c851 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 875c855 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 879c859 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 883c863 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 887c867 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 891c871 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 895c875 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 899c879 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 903c883 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 907c887 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 911c891 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 915c895 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 919c899 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 923c903 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 927c907 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 931c911 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 935c915 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 939c919 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 943c923 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 947c927 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 951c931 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 955c935 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 959c939 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 963c943 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 967c947 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 971c951 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 975c955 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 979c959 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 983c963 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 987c967 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 991c971 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 995c975 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 999c979 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 1003c983 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1007c987 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1015c995 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1019c999 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1023c1003 < sR1yZ1g/Qq6o9ndglNBPloRufUQ= --- > jHX72Ky29HDzx57Med0BQvBS8I0= 1027c1007 < 98Mld+8RY9BaNnCHGyioTYKi1kg= --- > uZX4tvhJ8/Ibn2vBMz3tCIWfTQw= 1031c1011 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1035c1015 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1039c1019 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1043c1023 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1047c1027 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1051c1031 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1055c1035 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1059c1039 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1063c1043 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1067c1047 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1071c1051 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1075c1055 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1079c1059 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1083c1063 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1087c1067 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1099c1079 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1103c1083 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1111c1091 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1115c1095 < sZriypFfAo2XdJ+33FYX6/ujevo= --- > yDc77ixYoK4jgwhBZ6EB+aYcjUA= 1119c1099 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1123c1103 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1127c1107 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1131c1111 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1135c1115 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1139c1119 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1143c1123 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1147c1127 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1151c1131 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1155c1135 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1159c1139 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1163c1143 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1167c1147 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1175c1155 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1179c1159 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1183c1163 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1187c1167 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1191c1171 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1193c1173 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1195c1175 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1197c1177 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1199c1179 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1201c1181 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1203c1183 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1205c1185 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1207c1187 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1235c1215 < JBVT5mIufSiYOFQm4xKC7ApFc1o= --- > uvC3gLS6GdRaiZ4vUl22yIQVlPE= 1239c1219 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1243c1223 < Znt4bzarbu7seU/iBXcj1n2FV4E= --- > Vk9WU5Cmg3DtqAOKiQ2n5Lvdreg= 1247c1227 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1397,1416d1376 < Resources/searchplugins/amazon-co-uk.xml < < QVoEK/OaPbZvX8N8bMN+KM8CQw8= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/wikipedia-da.xml < < ack28Pn6jYcUZdczaSUwWLUQLA0= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48029239 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:53 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48029238 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:53 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48029237 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:53 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48029189 8 -rw-r--r-- 1 cltbld staff 1688 May 9 17:53 source/Thunderbird.app/Contents/Resources/searchplugins/amazon-co-uk.xml 48029188 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:53 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48029187 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:53 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48029186 8 -rw-r--r-- 1 cltbld staff 2371 May 9 17:53 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48029185 8 -rw-r--r-- 1 cltbld staff 1341 May 9 17:53 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-da.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:53:20-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:53:20 GMT Keep-Alive: timeout=5, max=992 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 17:53:20 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/de/thunderbird-38.8.0.complete.mar' from cache... Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/de/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/de/Thunderbird 38.6.0.dmg'] --2016-05-09 17:53:21-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/de/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69844618 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:53:22 GMT ETag: "2b79097f875710aaadf6ddd72f741138" Last-Modified: Fri, 12 Feb 2016 21:49:03 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 2ZzQJWJ_WIkW1fHn8VqNZfUMLGnVqUKn X-Cache: Miss from cloudfront Via: 1.1 f46e4d7bc5419470a70eb57aa9c935c8.cloudfront.net (CloudFront) X-Amz-Cf-Id: 73jrRRV6Kbsd7LF_SyDwNqXBbI2PR1a9fPbkpr4jLLOAoUT3EPw_VA== Length: 69844618 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.73M 37s 3072K ........ ........ ........ ........ ........ ........ 9% 3.88M 25s 6144K ........ ........ ........ ........ ........ ........ 13% 3.94M 21s 9216K ........ ........ ........ ........ ........ ........ 18% 3.45M 19s 12288K ........ ........ ........ ........ ........ ........ 22% 3.66M 17s 15360K ........ ........ ........ ........ ........ ........ 27% 3.52M 16s 18432K ........ ........ ........ ........ ........ ........ 31% 3.43M 15s 21504K ........ ........ ........ ........ ........ ........ 36% 3.76M 13s 24576K ........ ........ ........ ........ ........ ........ 40% 3.76M 12s 27648K ........ ........ ........ ........ ........ ........ 45% 4.81M 11s 30720K ........ ........ ........ ........ ........ ........ 49% 7.01M 10s 33792K ........ ........ ........ ........ ........ ........ 54% 7.83M 8s 36864K ........ ........ ........ ........ ........ ........ 58% 9.23M 7s 39936K ........ ........ ........ ........ ........ ........ 63% 9.54M 6s 43008K ........ ........ ........ ........ ........ ........ 67% 11.3M 5s 46080K ........ ........ ........ ........ ........ ........ 72% 12.7M 4s 49152K ........ ........ ........ ........ ........ ........ 76% 12.1M 3s 52224K ........ ........ ........ ........ ........ ........ 81% 14.3M 3s 55296K ........ ........ ........ ........ ........ ........ 85% 13.9M 2s 58368K ........ ........ ........ ........ ........ ........ 90% 15.0M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 14.9M 1s 64512K ........ ........ ........ ........ ........ ........ 99% 15.6M 0s 67584K ........ . 100% 29.8M=12s 2016-05-09 17:53:34 (5.49 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69844618/69844618] Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/de/Thunderbird 45.1.0.dmg' from cache... installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-de.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-de.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter-de.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay-de.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom-de.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/de.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/de.lproj/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo-de.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-de.xml PREPARE ADD Contents/Resources/searchplugins/twitter-de.xml PREPARE ADD Contents/Resources/searchplugins/eBay-de.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom-de.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/de.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-de.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-de.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter-de.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay-de.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom-de.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/de.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/de.lproj/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo-de.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-de.xml EXECUTE ADD Contents/Resources/searchplugins/twitter-de.xml EXECUTE ADD Contents/Resources/searchplugins/eBay-de.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom-de.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/de.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-de.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-de.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter-de.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay-de.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom-de.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/de.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/de.lproj/ non-fatal error removing directory: Contents/Resources/de.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo-de.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-de.xml FINISH ADD Contents/Resources/searchplugins/twitter-de.xml FINISH ADD Contents/Resources/searchplugins/eBay-de.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom-de.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/de.lproj/InfoPlist.strings FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/l10n/de/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,9d3 < remove "Contents/Resources/searchplugins/yahoo-de.xml" < remove "Contents/Resources/searchplugins/wikipedia-de.xml" < remove "Contents/Resources/searchplugins/twitter-de.xml" < remove "Contents/Resources/searchplugins/eBay-de.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/amazondotcom-de.xml" 57,59c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 89c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 115d106 < rmdir "Contents/Resources/searchplugins/" 120d110 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 34c34 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 38c38 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 42c42 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 46c46 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 50c50 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 54c54 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 58c58 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 62c62 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 66c66 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 70c70 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 74c74 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 78c78 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 82c82 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 86c86 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 90c90 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 94c94 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 98c98 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 102c102 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 106c106 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 110c110 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 114c114 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 118c118 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 122c122 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 126c126 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 130c130 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 134c134 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 138c138 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 142c142 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 146c146 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 150c150 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 154c154 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 158c158 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 162c162 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 166c166 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 170c170 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 174c174 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 178c178 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 182c182 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 186c186 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 190c190 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 194c194 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 198c198 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 202c202 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 206c206 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 210c210 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 218c218 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 222c222 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 226c226 < RnyHJ/RR6vPG3ztKb7IYV9XnWNw= --- > AxB1lgFdUjxd787pZU1uDnun6kw= 230c230 < 06K7RM+B6YYr19N0npI09hJwsYA= --- > 1UVkACQqTdXbSwIczKoEw7j9+jk= 234c234 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 238c238 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 242c242 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 246c246 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 250c250 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 254c254 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 258c258 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 262c262 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 266c266 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 270c270 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 274c274 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 278c278 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 282c282 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 286c286 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 290c290 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 302c302 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 306c306 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 314c314 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 318c318 < fImjwMhmZAnvSZ8y3sfHBLrAsp8= --- > 0giR105dPTDya/zJ71RFAuqUAX8= 322c322 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 326c326 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 330c330 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 334c334 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 338c338 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 342c342 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 346c346 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 350c350 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 354c354 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 358c358 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 362c362 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 366c366 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 370c370 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 378c378 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 382c382 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 386c386 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 390c390 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 394c394 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 396c396 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 398c398 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 400c400 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 402c402 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 404c404 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 406c406 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 408c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 410c410 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < K+JYnQgsC3UO6xPnSuonu6AcAro= --- > bwXqtvrQirE8S0nt9M/i4LfOe30= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < 8tOK5zGFTQ1AeqBNROlz0erOTqg= --- > 19TqbLGdtCvnAUH20rheEucP3Ck= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,623d599 < Resources/searchplugins/amazondotcom-de.xml < < ukLbNJ4zXBSobkwp8N3Xgy4+HNQ= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay-de.xml < < H+aNvr8b2PjQ4OR4osIHYLyI0x0= < < Resources/searchplugins/twitter-de.xml < < Bb5Gh4oWJInLJSXBD2D8oSf11TQ= < < Resources/searchplugins/wikipedia-de.xml < < 2j1icJe4JYwCF6VOrtG5TfHO7cE= < < Resources/searchplugins/yahoo-de.xml < < I/kLrxke3gGjPzpvZI4wsyTf2X8= < 652c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 661c637 < VRC1V26jvlyKJFqNdshuLSc1qtU= --- > poY/SX7VlJKV86Qnv87Z7ScyiUs= 670c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 679c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 688c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 693c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 697c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 706c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 715c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 724c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 733c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 742c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 751c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 760c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 769c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 778c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 787c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 794c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 798c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 819c795 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 823c799 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 827c803 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 831c807 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 835c811 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 839c815 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 843c819 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 847c823 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 851c827 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 855c831 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 859c835 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 863c839 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 867c843 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 871c847 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 875c851 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 879c855 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 883c859 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 887c863 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 891c867 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 895c871 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 899c875 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 903c879 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 907c883 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 911c887 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 915c891 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 919c895 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 923c899 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 927c903 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 931c907 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 935c911 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 939c915 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 943c919 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 947c923 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 951c927 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 955c931 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 959c935 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 963c939 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 967c943 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 971c947 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 975c951 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 979c955 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 983c959 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 987c963 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 991c967 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 995c971 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1003c979 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1007c983 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1011c987 < RnyHJ/RR6vPG3ztKb7IYV9XnWNw= --- > AxB1lgFdUjxd787pZU1uDnun6kw= 1015c991 < 06K7RM+B6YYr19N0npI09hJwsYA= --- > 1UVkACQqTdXbSwIczKoEw7j9+jk= 1019c995 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1023c999 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1027c1003 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1031c1007 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1035c1011 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1039c1015 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1043c1019 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1047c1023 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1051c1027 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1055c1031 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1059c1035 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1063c1039 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1067c1043 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1071c1047 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1075c1051 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1087c1063 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1091c1067 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1099c1075 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1103c1079 < fImjwMhmZAnvSZ8y3sfHBLrAsp8= --- > 0giR105dPTDya/zJ71RFAuqUAX8= 1107c1083 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1111c1087 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1115c1091 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1119c1095 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1123c1099 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1127c1103 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1131c1107 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1135c1111 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1139c1115 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1143c1119 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1147c1123 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1151c1127 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1155c1131 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1163c1139 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1167c1143 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1171c1147 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1175c1151 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1179c1155 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1181c1157 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1183c1159 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1185c1161 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1187c1163 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1189c1165 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1191c1167 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1193c1169 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1195c1171 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1223c1199 < K+JYnQgsC3UO6xPnSuonu6AcAro= --- > bwXqtvrQirE8S0nt9M/i4LfOe30= 1227c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1231c1207 < 8tOK5zGFTQ1AeqBNROlz0erOTqg= --- > 19TqbLGdtCvnAUH20rheEucP3Ck= 1235c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1385,1408d1360 < Resources/searchplugins/amazondotcom-de.xml < < ukLbNJ4zXBSobkwp8N3Xgy4+HNQ= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay-de.xml < < H+aNvr8b2PjQ4OR4osIHYLyI0x0= < < Resources/searchplugins/twitter-de.xml < < Bb5Gh4oWJInLJSXBD2D8oSf11TQ= < < Resources/searchplugins/wikipedia-de.xml < < 2j1icJe4JYwCF6VOrtG5TfHO7cE= < < Resources/searchplugins/yahoo-de.xml < < I/kLrxke3gGjPzpvZI4wsyTf2X8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48029986 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:54 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48029985 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:54 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48029984 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:54 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48029936 8 -rw-r--r-- 1 cltbld staff 1298 May 9 17:54 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom-de.xml 48029935 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:54 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48029934 8 -rw-r--r-- 1 cltbld staff 1153 May 9 17:54 source/Thunderbird.app/Contents/Resources/searchplugins/eBay-de.xml 48029933 8 -rw-r--r-- 1 cltbld staff 890 May 9 17:54 source/Thunderbird.app/Contents/Resources/searchplugins/twitter-de.xml 48029932 8 -rw-r--r-- 1 cltbld staff 1128 May 9 17:54 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-de.xml 48029931 8 -rw-r--r-- 1 cltbld staff 1046 May 9 17:54 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-de.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/dsb/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/dsb/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/dsb/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:54:29-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/dsb/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:54:29 GMT Keep-Alive: timeout=5, max=994 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 594 Length: 594 [text/xml] Saving to: 'update.xml' 0K 100% 94.4M=0s 2016-05-09 17:54:29 (94.4 MB/s) - 'update.xml' saved [594/594] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/dsb/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/dsb/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:54:29-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/dsb/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67852719 Connection: keep-alive Date: Tue, 10 May 2016 00:47:44 GMT x-amz-replication-status: COMPLETED x-amz-version-id: TKdQGG704gkI93HgwWiEw9jaHFdRHqYA Last-Modified: Tue, 03 May 2016 16:32:34 GMT ETag: "ee9c117bf1d1f1baa2c33f2b494719ad" Accept-Ranges: bytes Server: AmazonS3 Age: 407 X-Cache: Hit from cloudfront Via: 1.1 aa89533ad2ec5e0edba466c9920bd000.cloudfront.net (CloudFront) X-Amz-Cf-Id: 8f2YHdvtfyTfQrWmRHWQ16TWYi9sg8yuMaHXRhC-p-sXJXLFDEWP_A== Length: 67852719 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 21.5M 3s 3072K ........ ........ ........ ........ ........ ........ 9% 59.9M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 75.0M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 41.5M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 53.5M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 55.3M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 45.8M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 55.6M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 47.6M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 55.0M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 56.3M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 41.5M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 49.9M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 50.6M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 56.7M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 57.0M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 43.3M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 32.5M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 40.3M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 45.6M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 31.9M 0s 64512K ........ ........ ........ ... 100% 49.3M=1.4s 2016-05-09 17:54:31 (45.2 MB/s) - 'update/complete.mar' saved [67852719/67852719] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/dsb/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/dsb/Thunderbird 38.6.0.dmg'] --2016-05-09 17:54:32-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/dsb/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69867708 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:54:33 GMT ETag: "be9e3ff9ee4166c9b5e038672d1164ce" Last-Modified: Fri, 12 Feb 2016 21:49:09 GMT x-amz-replication-status: COMPLETED x-amz-version-id: GcW01EjcT8tmuOujfKlYzx6hVcY_.9HP X-Cache: Miss from cloudfront Via: 1.1 95da1452a75435200220a7075ca3893f.cloudfront.net (CloudFront) X-Amz-Cf-Id: sSeVX29kzZEqJTl0dvl1tnkIXYS6Rl6TBYVk8oC2ZTcIJV8nZ41QpQ== Length: 69867708 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 2.09M 30s 3072K ........ ........ ........ ........ ........ ........ 9% 6.27M 19s 6144K ........ ........ ........ ........ ........ ........ 13% 8.13M 15s 9216K ........ ........ ........ ........ ........ ........ 18% 10.5M 12s 12288K ........ ........ ........ ........ ........ ........ 22% 11.4M 10s 15360K ........ ........ ........ ........ ........ ........ 27% 14.0M 8s 18432K ........ ........ ........ ........ ........ ........ 31% 16.9M 7s 21504K ........ ........ ........ ........ ........ ........ 36% 13.4M 6s 24576K ........ ........ ........ ........ ........ ........ 40% 9.37M 6s 27648K ........ ........ ........ ........ ........ ........ 45% 23.3M 5s 30720K ........ ........ ........ ........ ........ ........ 49% 13.4M 4s 33792K ........ ........ ........ ........ ........ ........ 54% 13.6M 4s 36864K ........ ........ ........ ........ ........ ........ 58% 13.7M 3s 39936K ........ ........ ........ ........ ........ ........ 63% 11.8M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 13.8M 2s 46080K ........ ........ ........ ........ ........ ........ 72% 13.1M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 14.0M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 14.1M 1s 55296K ........ ........ ........ ........ ........ ........ 85% 10.5M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 13.0M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 9.18M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 8.92M 0s 67584K ........ .. 100% 20.8M=6.9s 2016-05-09 17:54:40 (9.66 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69867708/69867708] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/dsb/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/dsb/Thunderbird 45.1.0.dmg'] --2016-05-09 17:54:40-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/dsb/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77234956 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:47:57 GMT ETag: "b3b90ae706df1dae0c313a327d84e157" Last-Modified: Mon, 09 May 2016 22:38:46 GMT x-amz-replication-status: COMPLETED x-amz-version-id: DNArffz_9gwfX3.N5BNpsXGdD.LqhAgI Age: 403 X-Cache: Hit from cloudfront Via: 1.1 0576b942ae9f4fc9c0b62b0736e9bfd6.cloudfront.net (CloudFront) X-Amz-Cf-Id: 7wkR981APvSuLBwSmmghtns0LLpoHeDnCqhJOPhsM6RsNQ6jFalAtA== Length: 77234956 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 24.7M 3s 3072K ........ ........ ........ ........ ........ ........ 8% 71.7M 2s 6144K ........ ........ ........ ........ ........ ........ 12% 36.5M 2s 9216K ........ ........ ........ ........ ........ ........ 16% 39.3M 2s 12288K ........ ........ ........ ........ ........ ........ 20% 57.0M 1s 15360K ........ ........ ........ ........ ........ ........ 24% 31.5M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 22.1M 2s 21504K ........ ........ ........ ........ ........ ........ 32% 33.4M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 48.7M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 48.5M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 41.5M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 32.4M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 32.4M 1s 39936K ........ ........ ........ ........ ........ ........ 57% 46.9M 1s 43008K ........ ........ ........ ........ ........ ........ 61% 54.9M 1s 46080K ........ ........ ........ ........ ........ ........ 65% 48.9M 1s 49152K ........ ........ ........ ........ ........ ........ 69% 44.8M 1s 52224K ........ ........ ........ ........ ........ ........ 73% 50.4M 1s 55296K ........ ........ ........ ........ ........ ........ 77% 56.4M 0s 58368K ........ ........ ........ ........ ........ ........ 81% 31.1M 0s 61440K ........ ........ ........ ........ ........ ........ 85% 31.7M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 40.0M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 26.7M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 23.3M 0s 73728K ........ ........ ........ .. 100% 29.6M=2.0s 2016-05-09 17:54:42 (36.9 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77234956/77234956] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dsb.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dsb.lproj/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/dsb.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dsb.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dsb.lproj/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/dsb.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dsb.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dsb.lproj/ non-fatal error removing directory: Contents/Resources/dsb.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/dsb.lproj/InfoPlist.strings FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/dsb/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/dsb/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 5,6c5,6 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/dsb/calendar/lightning-l10n.js" < pref("calendar.week.start", 1); --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" > pref("calendar.week.start", 0); 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/dsb/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 19,20c19,20 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_2-00000/l10n/dsb/calendar/lightning-l10n.js" < pref("calendar.categories.names", "Dary,Dowol,Drogowanje,Fawority,Ideje,Klienty,Kupc,Librowarje,Narodny źeÅ„,Problemy,Projekty,Prozniny,SlÄ›dowanje,Status,SwěźeÅ„,Telefonaty,Wobchad,Wósobinske,WroÅ›enica,WÅ¡ake,Wuběźowanje,Zmakanje"); --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_2-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" > pref("calendar.categories.names", "Anniversary,Birthday,Business,Calls,Clients,Competition,Customer,Favorites,Follow up,Gifts,Holidays,Ideas,Issues,Meeting,Miscellaneous,Personal,Projects,Public Holiday,Status,Suppliers,Travel,Vacation"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 58,60c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d106 < rmdir "Contents/Resources/searchplugins/" 121d110 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < /+EqGmG0s86v/61KUiXVedddJgU= --- > bxjVL71dOSWe4uyRNxopWKlog2c= 221c221 < EMNhj1TmZ+8rb4DRhlA+blS0Bcs= --- > 1zpy3dyCfzmDmPRs7L3t4/hYXV4= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < x67WEMOrJnuu878wQlLirMoHULU= --- > yCiqa2lezmU+VLYb5Df4tbzPMTk= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385,393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 400,404c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 406,410c410 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < LwqeoyG6RLv+i5CXPA8XzdezzeE= --- > Sqj3LOS30tzyB3O/ZM3WK74ybAU= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < pfLKURID5/c4K21vQibvNzKK1+Y= --- > r4BPpJbzwA9yp20u97UWi+VzgaQ= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,627d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < cE5K7YI7oWFk9/yNKwAIzEx14AE= --- > riIUUrCOObbwUZFeQfJa3cDdNto= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c978 < /+EqGmG0s86v/61KUiXVedddJgU= --- > bxjVL71dOSWe4uyRNxopWKlog2c= 1010c982 < EMNhj1TmZ+8rb4DRhlA+blS0Bcs= --- > 1zpy3dyCfzmDmPRs7L3t4/hYXV4= 1014c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1070 < x67WEMOrJnuu878wQlLirMoHULU= --- > yCiqa2lezmU+VLYb5Df4tbzPMTk= 1102c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1146,1154 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1189,1193c1169 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1195,1199c1171 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1227c1199 < LwqeoyG6RLv+i5CXPA8XzdezzeE= --- > Sqj3LOS30tzyB3O/ZM3WK74ybAU= 1231c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1235c1207 < pfLKURID5/c4K21vQibvNzKK1+Y= --- > r4BPpJbzwA9yp20u97UWi+VzgaQ= 1239c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1389,1416d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48030734 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:55 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48030733 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:55 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48030732 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:55 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48030684 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:55 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48030683 8 -rw-r--r-- 1 cltbld staff 1670 May 9 17:55 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48030682 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:55 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48030681 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:55 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48030680 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:55 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48030679 8 -rw-r--r-- 1 cltbld staff 1338 May 9 17:55 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48030678 8 -rw-r--r-- 1 cltbld staff 1363 May 9 17:55 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/dsb/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/dsb/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/dsb/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:55:36-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:55:36 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 17:55:36 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/el/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/el/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:55:36-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/el/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67879088 Connection: keep-alive Date: Tue, 10 May 2016 00:50:07 GMT x-amz-replication-status: COMPLETED x-amz-version-id: WcVvLXyUZ_QURSdKU9m7RJvQ4zevo88J Last-Modified: Tue, 03 May 2016 15:24:31 GMT ETag: "4c5101c88a08cd10fefc67c717dd0115" Accept-Ranges: bytes Server: AmazonS3 Age: 331 X-Cache: Hit from cloudfront Via: 1.1 ccf10d437e3b13a9b947840075a4df94.cloudfront.net (CloudFront) X-Amz-Cf-Id: np7pKmPl1hSLOW1F9jfVGVN-1z2qp122XzePklAZkYhFMilrUPBG9g== Length: 67879088 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 21.6M 3s 3072K ........ ........ ........ ........ ........ ........ 9% 55.8M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 56.6M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 47.3M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 39.9M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 42.6M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 52.4M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 44.1M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 41.7M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 51.0M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 51.4M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 60.9M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 38.4M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 55.6M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 46.6M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 49.8M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 41.9M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 51.2M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 55.0M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 45.4M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 36.5M 0s 64512K ........ ........ ........ ... 100% 36.9M=1.5s 2016-05-09 17:55:38 (44.5 MB/s) - 'update/complete.mar' saved [67879088/67879088] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/el/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/el/Thunderbird 38.6.0.dmg'] --2016-05-09 17:55:39-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/el/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69889021 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:55:40 GMT ETag: "a7d973651ae4a33b71698ccb0eabeaf5" Last-Modified: Fri, 12 Feb 2016 21:49:11 GMT x-amz-replication-status: COMPLETED x-amz-version-id: vKNImDJBdDTKuKWOW_d8bwGX0bhsO43g X-Cache: Miss from cloudfront Via: 1.1 0ffb9964022445351e635c66ad0176ff.cloudfront.net (CloudFront) X-Amz-Cf-Id: oo9tWB2wppRuBWDT9cy1_QPsSHHY6SbNVxffBEnMlTWb2m7mU-TH7g== Length: 69889021 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 2.07M 31s 3072K ........ ........ ........ ........ ........ ........ 9% 4.05M 22s 6144K ........ ........ ........ ........ ........ ........ 13% 4.99M 18s 9216K ........ ........ ........ ........ ........ ........ 18% 5.00M 15s 12288K ........ ........ ........ ........ ........ ........ 22% 4.85M 14s 15360K ........ ........ ........ ........ ........ ........ 27% 5.01M 12s 18432K ........ ........ ........ ........ ........ ........ 31% 4.93M 11s 21504K ........ ........ ........ ........ ........ ........ 36% 4.98M 10s 24576K ........ ........ ........ ........ ........ ........ 40% 5.02M 9s 27648K ........ ........ ........ ........ ........ ........ 45% 5.02M 9s 30720K ........ ........ ........ ........ ........ ........ 49% 5.04M 8s 33792K ........ ........ ........ ........ ........ ........ 54% 5.30M 7s 36864K ........ ........ ........ ........ ........ ........ 58% 6.09M 6s 39936K ........ ........ ........ ........ ........ ........ 63% 7.53M 5s 43008K ........ ........ ........ ........ ........ ........ 67% 8.97M 5s 46080K ........ ........ ........ ........ ........ ........ 72% 8.25M 4s 49152K ........ ........ ........ ........ ........ ........ 76% 9.92M 3s 52224K ........ ........ ........ ........ ........ ........ 81% 10.1M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 12.2M 2s 58368K ........ ........ ........ ........ ........ ........ 90% 11.0M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 11.6M 1s 64512K ........ ........ ........ ........ ........ ........ 99% 13.2M 0s 67584K ........ .. 100% 18.9M=11s 2016-05-09 17:55:51 (5.85 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69889021/69889021] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/el/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/el/Thunderbird 45.1.0.dmg'] --2016-05-09 17:55:52-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/el/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77264803 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:50:33 GMT ETag: "5969a37f4261618b02c1642baa5a9c8b" Last-Modified: Mon, 09 May 2016 20:36:34 GMT x-amz-replication-status: COMPLETED x-amz-version-id: MNehV.PhL4qkzIQ_RZvliEQOLr7hDfLz Age: 319 X-Cache: Hit from cloudfront Via: 1.1 aa89533ad2ec5e0edba466c9920bd000.cloudfront.net (CloudFront) X-Amz-Cf-Id: NYSJ-Vsz_SGFS2Gqm80BZdMSzEoBBWcILGvOGd2n4KvyHMxL_wSnRg== Length: 77264803 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 36.6M 2s 3072K ........ ........ ........ ........ ........ ........ 8% 20.4M 3s 6144K ........ ........ ........ ........ ........ ........ 12% 66.7M 2s 9216K ........ ........ ........ ........ ........ ........ 16% 58.2M 2s 12288K ........ ........ ........ ........ ........ ........ 20% 31.4M 2s 15360K ........ ........ ........ ........ ........ ........ 24% 51.4M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 41.4M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 48.5M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 38.2M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 28.4M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 35.8M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 36.2M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 36.0M 1s 39936K ........ ........ ........ ........ ........ ........ 56% 35.0M 1s 43008K ........ ........ ........ ........ ........ ........ 61% 38.1M 1s 46080K ........ ........ ........ ........ ........ ........ 65% 37.8M 1s 49152K ........ ........ ........ ........ ........ ........ 69% 37.7M 1s 52224K ........ ........ ........ ........ ........ ........ 73% 37.7M 1s 55296K ........ ........ ........ ........ ........ ........ 77% 44.1M 0s 58368K ........ ........ ........ ........ ........ ........ 81% 54.4M 0s 61440K ........ ........ ........ ........ ........ ........ 85% 53.5M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 45.5M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 36.1M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 43.7M 0s 73728K ........ ........ ........ .. 100% 42.3M=1.9s 2016-05-09 17:55:54 (39.0 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77264803/77264803] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/el.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/el.lproj/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/el.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/el.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/el.lproj/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/el.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/el.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/el.lproj/ non-fatal error removing directory: Contents/Resources/el.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/el.lproj/InfoPlist.strings FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 58,60c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d106 < rmdir "Contents/Resources/searchplugins/" 121d110 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < +kmp6J125dUA2vHCfVa49960CKc= --- > jD1Vl76hOK25O+ogFUDvNjmrIWA= 221c221 < 9tNMkJ4NSEyRFspQ3djsKSj2luw= --- > N5fOAis1U2DicH0laiurfhrYxC0= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < +/T32074sBtPSgxOBLDdC5LJ0YA= --- > ffxbravcQvQex/CrIonT9cVGWGI= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385,393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 400,404c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 406,410c410 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < hV7LY/5In5aLm1RTWt1hG2bk6HQ= --- > AzuHG7CBFi319Jo8kI9t0KxhnHo= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < ILI70ZE6nNQ7DncdWiBvJNSApgE= --- > eGz7Njzxt9jASsxacJMuMFpWqD4= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,627d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < fbJdMnElLWqfxPGsDXBm/cxEQ40= --- > K8MSYzbA0g1ieyS2r7ElFzBwab8= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c978 < +kmp6J125dUA2vHCfVa49960CKc= --- > jD1Vl76hOK25O+ogFUDvNjmrIWA= 1010c982 < 9tNMkJ4NSEyRFspQ3djsKSj2luw= --- > N5fOAis1U2DicH0laiurfhrYxC0= 1014c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1070 < +/T32074sBtPSgxOBLDdC5LJ0YA= --- > ffxbravcQvQex/CrIonT9cVGWGI= 1102c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1146,1154 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1189,1193c1169 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1195,1199c1171 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1227c1199 < hV7LY/5In5aLm1RTWt1hG2bk6HQ= --- > AzuHG7CBFi319Jo8kI9t0KxhnHo= 1231c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1235c1207 < ILI70ZE6nNQ7DncdWiBvJNSApgE= --- > eGz7Njzxt9jASsxacJMuMFpWqD4= 1239c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1389,1416d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48031483 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:56 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48031482 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:56 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48031481 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:56 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48031433 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:56 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48031432 8 -rw-r--r-- 1 cltbld staff 1670 May 9 17:56 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48031431 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:56 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48031430 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:56 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48031429 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:56 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48031428 8 -rw-r--r-- 1 cltbld staff 1338 May 9 17:56 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48031427 8 -rw-r--r-- 1 cltbld staff 1363 May 9 17:56 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:56:48-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:56:48 GMT Keep-Alive: timeout=5, max=996 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 17:56:49 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-GB/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-GB/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:56:49-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-GB/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67806461 Connection: keep-alive Date: Tue, 10 May 2016 00:52:33 GMT x-amz-replication-status: COMPLETED x-amz-version-id: gdAukx6SH3eNBdqzhqAEpZSfg_v7ThMn Last-Modified: Tue, 03 May 2016 15:37:40 GMT ETag: "5fe0e64edc4800ad11c791209e623ba1" Accept-Ranges: bytes Server: AmazonS3 Age: 257 X-Cache: Hit from cloudfront Via: 1.1 296faebadd40feee8b2eb0e10d5786d2.cloudfront.net (CloudFront) X-Amz-Cf-Id: zlTiwJJqI-_hWiotdHvtdg4UkIN6JFSDROVnmdY2dzmLDnwp5-YDhg== Length: 67806461 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 35.7M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 47.4M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 42.7M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 45.1M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 42.5M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 43.3M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 52.5M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 51.1M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 50.4M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 32.9M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 42.1M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 40.4M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 38.6M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 47.7M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 37.7M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 49.4M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 39.8M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 47.6M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 49.0M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 37.8M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 25.3M 0s 64512K ........ ........ ........ .. 100% 33.0M=1.6s 2016-05-09 17:56:51 (41.3 MB/s) - 'update/complete.mar' saved [67806461/67806461] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/en-GB/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/en-GB/Thunderbird 38.6.0.dmg'] --2016-05-09 17:56:52-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/en-GB/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69819725 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:56:53 GMT ETag: "c903240ee56cd9a001668fa1af3aa150" Last-Modified: Fri, 12 Feb 2016 21:49:15 GMT x-amz-replication-status: COMPLETED x-amz-version-id: Uasl.Nw6R27LaI1YlR69.DB5q1L1jVmh X-Cache: Miss from cloudfront Via: 1.1 9767e262e4af15c8d83a726bb0f44fa5.cloudfront.net (CloudFront) X-Amz-Cf-Id: eypfx_ntybDLOn0ExKuO7RoXfI_DuMveXKx51w9ZSrAq8UONcLS-Tg== Length: 69819725 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.79M 36s 3072K ........ ........ ........ ........ ........ ........ 9% 6.75M 21s 6144K ........ ........ ........ ........ ........ ........ 13% 10.3M 15s 9216K ........ ........ ........ ........ ........ ........ 18% 12.6M 12s 12288K ........ ........ ........ ........ ........ ........ 22% 13.2M 10s 15360K ........ ........ ........ ........ ........ ........ 27% 12.7M 8s 18432K ........ ........ ........ ........ ........ ........ 31% 19.0M 7s 21504K ........ ........ ........ ........ ........ ........ 36% 17.4M 6s 24576K ........ ........ ........ ........ ........ ........ 40% 20.3M 5s 27648K ........ ........ ........ ........ ........ ........ 45% 17.4M 5s 30720K ........ ........ ........ ........ ........ ........ 49% 17.9M 4s 33792K ........ ........ ........ ........ ........ ........ 54% 26.6M 3s 36864K ........ ........ ........ ........ ........ ........ 58% 27.0M 3s 39936K ........ ........ ........ ........ ........ ........ 63% 40.0M 2s 43008K ........ ........ ........ ........ ........ ........ 67% 13.8M 2s 46080K ........ ........ ........ ........ ........ ........ 72% 12.3M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 7.97M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 12.2M 1s 55296K ........ ........ ........ ........ ........ ........ 85% 14.8M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 18.1M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 20.0M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 24.4M 0s 67584K ........ . 100% 32.6M=6.0s 2016-05-09 17:56:59 (11.2 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69819725/69819725] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/en-GB/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/en-GB/Thunderbird 45.1.0.dmg'] --2016-05-09 17:56:59-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/en-GB/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77169948 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:52:57 GMT ETag: "5255c7944674008713413117d98e7f19" Last-Modified: Mon, 09 May 2016 21:00:27 GMT x-amz-replication-status: COMPLETED x-amz-version-id: GxJkx7nfk0yXyoWl0_OnsdCFwjXxeHBl Age: 242 X-Cache: Hit from cloudfront Via: 1.1 aa96a51fedae85199c643eb5c8eca4e4.cloudfront.net (CloudFront) X-Amz-Cf-Id: zpwVsMbg3c-opp05u9bzKW0UT1iL9QvUJUg4ZMiSSHIkAEo0abGU0w== Length: 77169948 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 48.6M 1s 3072K ........ ........ ........ ........ ........ ........ 8% 60.0M 1s 6144K ........ ........ ........ ........ ........ ........ 12% 58.4M 1s 9216K ........ ........ ........ ........ ........ ........ 16% 10.4M 2s 12288K ........ ........ ........ ........ ........ ........ 20% 51.1M 2s 15360K ........ ........ ........ ........ ........ ........ 24% 67.1M 2s 18432K ........ ........ ........ ........ ........ ........ 28% 111M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 59.6M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 50.0M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 54.7M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 46.2M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 38.3M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 40.1M 1s 39936K ........ ........ ........ ........ ........ ........ 57% 40.2M 1s 43008K ........ ........ ........ ........ ........ ........ 61% 39.8M 1s 46080K ........ ........ ........ ........ ........ ........ 65% 50.7M 1s 49152K ........ ........ ........ ........ ........ ........ 69% 55.0M 1s 52224K ........ ........ ........ ........ ........ ........ 73% 57.5M 0s 55296K ........ ........ ........ ........ ........ ........ 77% 57.7M 0s 58368K ........ ........ ........ ........ ........ ........ 81% 50.1M 0s 61440K ........ ........ ........ ........ ........ ........ 85% 49.9M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 31.9M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 59.0M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 59.4M 0s 73728K ........ ........ ........ . 100% 60.5M=1.7s 2016-05-09 17:57:01 (43.9 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77169948/77169948] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-en-GB.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay-en-GB.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-en-GB.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazon-en-GB.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/en.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/en.lproj/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo-en-GB.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/eBay-en-GB.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-en-GB.xml PREPARE ADD Contents/Resources/searchplugins/amazon-en-GB.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/en.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-en-GB.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay-en-GB.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-en-GB.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazon-en-GB.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/en.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/en.lproj/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo-en-GB.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/eBay-en-GB.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-en-GB.xml EXECUTE ADD Contents/Resources/searchplugins/amazon-en-GB.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/en.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-en-GB.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay-en-GB.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-en-GB.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazon-en-GB.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/en.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/en.lproj/ non-fatal error removing directory: Contents/Resources/en.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo-en-GB.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/eBay-en-GB.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-en-GB.xml FINISH ADD Contents/Resources/searchplugins/amazon-en-GB.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/en.lproj/InfoPlist.strings FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/en-GB/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/en-GB/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/en-GB/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/en-GB/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/en-GB/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/en-GB/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/en-GB/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/en-GB/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/en-GB/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/en-GB/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,11d3 < remove "Contents/Resources/searchplugins/yahoo-en-GB.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/eBay-en-GB.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-en-GB.xml" < remove "Contents/Resources/searchplugins/amazon-en-GB.xml" 59,61c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 91c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 117d106 < rmdir "Contents/Resources/searchplugins/" 122d110 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < zxSp1IR84A7w4NWeYwNRnvsWBTI= --- > yfuCS/sYpwkJugYG7KzzfZY0SUI= 221c221 < qn5uooskEaSZ7CVilepLGLiUJlQ= --- > 2Se04CqkWJsbdO0kBMmBNaNEQgk= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < BmCDEYMu8U7emsdedMH7w529VAc= --- > fklq45W3ejYSqbpoh1hrTQI77yE= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385,393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 400,404c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 406,410c410 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < wP4hnpU+MCNoWEcLp0YcsYRQvxE= --- > wIoDRDdXiC5OBby/HHgpwoIbGgc= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < tgwmFQDo7hEvJ0mThDcSCKdrQ90= --- > d3V+fW5Xu4CvNeBua7JhwHNdQkw= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,631d599 < Resources/searchplugins/amazon-en-GB.xml < < QVoEK/OaPbZvX8N8bMN+KM8CQw8= < < Resources/searchplugins/aol-en-GB.xml < < ffbNOxuoWPha6UiKYukMYkNHw9E= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay-en-GB.xml < < ZxDSkUAlM3witsr8EumDGEHhfW0= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo-en-GB.xml < < sIG8YCfcYU6kUVGQ8X4c9FB+RPk= < 660c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 669c637 < AkjNaujpoR7EofKyIAnIf1nzSdE= --- > EVb24WsAWd1jGBOWv237IRlQKHk= 678c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 687c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 696c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 701c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 705c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 714c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 723c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 732c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 741c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 750c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 759c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 768c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 777c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 786c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 795c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 802c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 806c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 818c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 822c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 826c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 830c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 834c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 838c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 842c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 846c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 850c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 854c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 858c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 862c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 866c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 870c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 874c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 878c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 882c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 886c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 890c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 894c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 898c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 902c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 906c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 910c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 914c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 918c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 922c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 926c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 930c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 934c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 938c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 942c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 946c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 950c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 954c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 958c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 962c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 966c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 970c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 974c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 978c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 982c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 986c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 990c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 994c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1002c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1006c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1010c978 < zxSp1IR84A7w4NWeYwNRnvsWBTI= --- > yfuCS/sYpwkJugYG7KzzfZY0SUI= 1014c982 < qn5uooskEaSZ7CVilepLGLiUJlQ= --- > 2Se04CqkWJsbdO0kBMmBNaNEQgk= 1018c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1022c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1026c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1030c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1034c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1038c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1042c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1046c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1050c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1054c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1058c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1062c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1066c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1070c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1074c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1086c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1090c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1098c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1102c1070 < BmCDEYMu8U7emsdedMH7w529VAc= --- > fklq45W3ejYSqbpoh1hrTQI77yE= 1106c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1110c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1114c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1118c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1122c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1126c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1130c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1134c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1138c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1142c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1146c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1150c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1154c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1162c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1166c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1170c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1174c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1178c1146,1154 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1193,1197c1169 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1199,1203c1171 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1231c1199 < wP4hnpU+MCNoWEcLp0YcsYRQvxE= --- > wIoDRDdXiC5OBby/HHgpwoIbGgc= 1235c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1239c1207 < tgwmFQDo7hEvJ0mThDcSCKdrQ90= --- > d3V+fW5Xu4CvNeBua7JhwHNdQkw= 1243c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1393,1424d1360 < Resources/searchplugins/amazon-en-GB.xml < < QVoEK/OaPbZvX8N8bMN+KM8CQw8= < < Resources/searchplugins/aol-en-GB.xml < < ffbNOxuoWPha6UiKYukMYkNHw9E= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay-en-GB.xml < < ZxDSkUAlM3witsr8EumDGEHhfW0= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo-en-GB.xml < < sIG8YCfcYU6kUVGQ8X4c9FB+RPk= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48032236 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:57 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48032235 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:57 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48032234 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:57 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48032186 8 -rw-r--r-- 1 cltbld staff 1688 May 9 17:57 source/Thunderbird.app/Contents/Resources/searchplugins/amazon-en-GB.xml 48032185 8 -rw-r--r-- 1 cltbld staff 2245 May 9 17:57 source/Thunderbird.app/Contents/Resources/searchplugins/aol-en-GB.xml 48032184 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:57 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48032183 8 -rw-r--r-- 1 cltbld staff 1379 May 9 17:57 source/Thunderbird.app/Contents/Resources/searchplugins/eBay-en-GB.xml 48032182 8 -rw-r--r-- 1 cltbld staff 2371 May 9 17:57 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48032181 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:57 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48032180 8 -rw-r--r-- 1 cltbld staff 1338 May 9 17:57 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48032179 8 -rw-r--r-- 1 cltbld staff 1276 May 9 17:57 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-en-GB.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:57:56-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:57:56 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 17:57:56 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-US/thunderbird-38.8.0.complete.mar' from cache... Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/en-US/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/en-US/Thunderbird 38.6.0.dmg'] --2016-05-09 17:57:58-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/en-US/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70058838 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:57:58 GMT ETag: "45843f68c5c8a2b8da5c9bc8b18b3290" Last-Modified: Fri, 12 Feb 2016 21:49:17 GMT x-amz-replication-status: COMPLETED x-amz-version-id: kv.5hcZvevtYUbDUzGBHv05lo74dvK1R X-Cache: Miss from cloudfront Via: 1.1 939ea9d62ec616846d41b16cea0dc65b.cloudfront.net (CloudFront) X-Amz-Cf-Id: fD3WU5OlYMXouN0ceJR_hP0dFDT4RckhSvSRSpYCLd5XfK2hE012Jg== Length: 70058838 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.32M 48s 3072K ........ ........ ........ ........ ........ ........ 8% 4.84M 29s 6144K ........ ........ ........ ........ ........ ........ 13% 7.76M 21s 9216K ........ ........ ........ ........ ........ ........ 17% 10.2M 16s 12288K ........ ........ ........ ........ ........ ........ 22% 11.1M 13s 15360K ........ ........ ........ ........ ........ ........ 26% 13.8M 11s 18432K ........ ........ ........ ........ ........ ........ 31% 14.6M 9s 21504K ........ ........ ........ ........ ........ ........ 35% 14.7M 8s 24576K ........ ........ ........ ........ ........ ........ 40% 16.7M 7s 27648K ........ ........ ........ ........ ........ ........ 44% 15.4M 6s 30720K ........ ........ ........ ........ ........ ........ 49% 21.7M 5s 33792K ........ ........ ........ ........ ........ ........ 53% 21.1M 4s 36864K ........ ........ ........ ........ ........ ........ 58% 22.6M 4s 39936K ........ ........ ........ ........ ........ ........ 62% 16.1M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 11.2M 3s 46080K ........ ........ ........ ........ ........ ........ 71% 5.67M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 9.69M 2s 52224K ........ ........ ........ ........ ........ ........ 80% 11.6M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 14.4M 1s 58368K ........ ........ ........ ........ ........ ........ 89% 17.7M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 14.9M 0s 64512K ........ ........ ........ ........ ........ ........ 98% 5.09M 0s 67584K ........ ..... 100% 8.18M=8.1s 2016-05-09 17:58:06 (8.27 MB/s) - 'Thunderbird 38.6.0.dmg' saved [70058838/70058838] Retrieving 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/en-US/Thunderbird 45.1.0.dmg' from cache... installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/en.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/dictionaries/en-US.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/en-US.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/en.lproj/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/en.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/en-US.dic PREPARE ADD Contents/Resources/dictionaries/en-US.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/en.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/dictionaries/en-US.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/en-US.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/en.lproj/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/en.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/en-US.dic EXECUTE ADD Contents/Resources/dictionaries/en-US.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/en.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/dictionaries/en-US.dic FINISH REMOVEFILE Contents/Resources/dictionaries/en-US.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/en.lproj/ non-fatal error removing directory: Contents/Resources/en.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/en.lproj/InfoPlist.strings FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/en-US.dic FINISH ADD Contents/Resources/dictionaries/en-US.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/dictionaries/en-US.aff target/Thunderbird.app/Contents/Resources/dictionaries/en-US.aff 1,4d0 < # This Source Code Form is subject to the terms of the Mozilla Public < # License, v. 2.0. If a copy of the MPL was not distributed with this < # file, You can obtain one at http://mozilla.org/MPL/2.0/. < diff -r source/Thunderbird.app/Contents/Resources/dictionaries/en-US.dic target/Thunderbird.app/Contents/Resources/dictionaries/en-US.dic 1c1 < 57246 --- > 52283 34c34 < ACLU --- > ACLU/M 42c42 < AFAIK/S --- > AFAIK 44c44 < AFC --- > AFC/M 50d49 < AIDSes 54a54 > AMD/M 56c56 < ANZUS --- > ANZUS/M 58c58 < AP --- > AP/M 60c60,61 < API/MS --- > APC > API/SM 74c75,76 < AWACS --- > AVI > AWACS/M 78c80 < Aachen --- > Aachen/M 80,85c82,83 < Aaren/M < Aarika/M < Aaron < Ab/M < Abagael/M < Abagail/M --- > Aaron/M > Ab's 88,91c86 < Abbasid < Abbe/M < Abbey/M < Abbi/M --- > Abbasid/M 93d87 < Abbot/M 96d89 < Abbye/M 102c95 < Abelard --- > Abelard/M 106,107d98 < Abeu/M < Abey/M 110,113c101,102 < Abigael/M < Abigail < Abigale/M < Abilene --- > Abigail/M > Abilene/M 118d106 < Abrahan/M 121,123c109,111 < Abran/M < Absalom < Abuja --- > Abrams/M > Absalom/M > Abuja/M 134c122 < Achernar --- > Achernar/M 141c129 < Actaeon --- > Actaeon/M 143,144c131,132 < Acton < Acts --- > Acton/M > Acts/M 146,147c134 < Acura/MS < Ad/MN --- > Acura/M 153a141 > Adams/M 155c143 < Adana --- > Adana/M 157d144 < Adara/M 160c147 < Addams --- > Addams/M 163d149 < Addia/M 165c151 < Addison --- > Addison/M 175d160 < Adelice/M 177d161 < Adelind/M 179d162 < Adella/M 183c166 < Adenauer --- > Adenauer/M 188d170 < Adiana/M 191c173 < Adirondack/MS --- > Adirondack/SM 195c177 < Adler --- > Adler/M 198d179 < Ado/M 203d183 < Adolpho/M 206,210c186 < Adora/M < Adore/M < Adoree/M < Adorne/M < Adrea/M --- > Adore's 212,213c188,189 < Adria/MX < Adrian --- > Adria/M > Adrian/M 221d196 < Adriena/M 231,233d205 < Aeriel/M < Aeriela/M < Aeriell/M 238a211 > Afghani/M 247c220 < Afrocentrism --- > Afrocentrism/M 250d222 < Agace/M 258,260c230 < Aggi/M < Aggie < Aggy/M --- > Aggie/M 262,265c232,233 < Aglaia < Agna/M < Agnella/M < Agnes --- > Aglaia/M > Agnes/M 267,268d234 < Agnesse/M < Agneta/M 271d236 < Agnola/M 273,275c238,239 < Agra < Agretha/M < Agricola --- > Agra/M > Agricola/M 279d242 < Aguie/M 283,284d245 < Aguistin/M < Aguste/M 289c250 < Ahmadabad --- > Ahmadabad/M 295,296c256 < Aigneis/M < Aiken --- > Aiken/M 298,300d257 < Ailbert/M < Aile/M < Ailee/M 302d258 < Ailene/M 304,307d259 < Aili/SM < Ailina/M < Ailsun/M < Ailyn/M 310,312d261 < Aimil/M < Aindrea/M < Ainslee/M 315c264 < Ainu --- > Ainu/M 317c266,267 < Aisha --- > Aires/M > Aisha/M 320c270 < Akbar --- > Akbar/M 322c272 < Akihito --- > Akihito/M 324c274 < Akita --- > Akita/M 326c276 < Akkad --- > Akkad/M 328d277 < Aksel/M 336,337d284 < Alaine/M < Alair/M 343d289 < Alanah/M 345d290 < Alane/M 347d291 < Alano/M 350,351c294 < Alard/M < Alaric --- > Alaric/M 356,359c299 < Alasteir/M < Alaster/M < Alayne/M < Alba --- > Alba/M 363,364c303 < Albee < Alberik/M --- > Albee/M 366c305 < Albert --- > Albert/M 373c312 < Albigensian --- > Albigensian/M 375c314 < Albion --- > Albion/M 379,381c318,320 < Alcatraz < Alcestis < Alcibiades --- > Alcatraz/M > Alcestis/M > Alcibiades/M 385,388c324,327 < Alcott < Alcuin < Alcyone < Aldan --- > Alcott/M > Alcuin/M > Alcyone/M > Aldan/M 390c329 < Alden --- > Alden/M 397d335 < Aldric/M 402d339 < Aldwin/M 404,407d340 < Alecia/M < Aleda/M < Aleece/M < Aleen/M 410d342 < Alejandrina/M 412d343 < Alejoa/M 420d350 < Aleta/M 428c358 < Alexandra --- > Alexandra/M 433c363 < Alexandro/MS --- > Alexandros 438,439c368 < Alexine/M < Alexio/M --- > Alexis/M 441d369 < Alfi/M 448c376 < Alfred --- > Alfred/M 450,451c378 < Alfredo < Alfy/M --- > Alfredo/M 453c380 < Alger --- > Alger/M 462c389 < Alhambra --- > Alhambra/M 464c391 < Ali/S --- > Ali/SM 466,468d392 < Alibaba < Alic/M < Alica/M 470d393 < Alicea/M 474,475d396 < Alidia/M < Alie/M 477,478d397 < Alika/M < Alikee/M 483d401 < Alisander/M 489d406 < Alisun/M 491d407 < Aliza/M 495c411 < Allahabad --- > Allahabad/M 498,499d413 < Allayne/M < Alleen/M 501c415 < Allegheny/S --- > Allegheny/SM 503c417 < Allen --- > Allen/M 506,507c420 < Allentown < Alley/M --- > Allentown/M 512d424 < Allissa/M 514,515d425 < Allistir/M < Allix/M 517,520d426 < Allsun/M < Allx/M < Ally/SM < Allyce/M 526d431 < Almeda/M 528d432 < Almeta/M 531d434 < Almire/M 536,538d438 < Aloin/M < Aloise/M < Aloisia/M 542d441 < Aloysia/M 550c449 < Alpine --- > Alpine/M 558c457 < Alta --- > Alta/M 561,562c460,461 < Altair < Altamira --- > Altair/M > Altamira/M 569,571c468 < Aluin/M < Aluino/M < Alva --- > Alva/M 576,578d472 < Alvera/M < Alverta/M < Alvie/M 581,582d474 < Alvinia/M < Alvira/M 588d479 < Alyda/M 591,593d481 < Alysa/M < Alyse/M < Alysia/M 600d487 < Amabelle/M 603,605d489 < Amalea/M < Amalee/M < Amaleta/M 608,609d491 < Amalita/M < Amalle/M 611,613d492 < Amandi/M < Amandie/M < Amandy/M 615,616c494 < Amargo/M < Amarillo --- > Amarillo/M 620c498 < Amati --- > Amati/M 623,625c501 < Amber/MY < Amberly/M < Amble/M --- > Amber/M 628d503 < Ambrosi/M 631,632d505 < Ambur/M < Amby/M 636,638d508 < Amelina/M < Ameline/M < Amelita/M 641c511 < Amerasian --- > Amerasian/M 645,647c515,517 < Americanism/SM < Americanization/SM < Americanize/DSG --- > Americanism/MS > Americanization/MS > Americanize/GDS 650c520 < Amerindian/SM --- > Amerindian/MS 654c524 < Amherst --- > Amherst/M 658d527 < Amii/M 661,663d529 < Amitie/M < Amity/M < Ammamaria/M 667c533 < Amos --- > Amos/M 670c536 < Amritsar --- > Amritsar/M 672,673c538,539 < Amtrak < Amundsen --- > Amtrak/M > Amundsen/M 677d542 < Amye/M 679d543 < Anabal/M 682,683d545 < Anabella/M < Anabelle/M 685,686c547,548 < Anacreon < Anaheim --- > Anacreon/M > Anaheim/M 688d549 < Analiese/M 690,691d550 < Anallese/M < Anallise/M 693,696c552,553 < Anasazi < Anastasia < Anastasie/M < Anastassia/M --- > Anasazi/M > Anastasia/M 698d554 < Anatola/M 702,704c558 < Anatollo/M < Anaxagoras < Ancell/M --- > Anaxagoras/M 707,712c561,563 < Andalusian < Andaman < Andean < Andee/M < Andeee/M < Anderea/M --- > Andalusian/M > Andaman/M > Andean/M 715c566 < Anderson --- > Anderson/M 719d569 < Andonis/M 725d574 < Andreana/M 728a578 > Andres/M 730a581 > Andrews/M 733d583 < Andriana/M 735,737c585,586 < Andriette/M < Andris < Andromache --- > Android/M > Andromache/M 739c588 < Andropov --- > Andropov/M 743d591 < Anestassia/M 745,748c593 < Anett/M < Anetta/M < Anette/M < Angara --- > Angara/M 752c597,598 < Angele/M --- > Angele/SM > Angeles/M 755,756c601,602 < Angelica < Angelico --- > Angelica/M > Angelico/M 762d607 < Angelle/M 764c609 < Angelou --- > Angelou/M 767,768c612 < Angil/M < Angkor --- > Angkor/M 770c614 < Anglia --- > Anglia/M 775,778c619,621 < Anglicize/DSG < Anglo < Anglophil < Anglophile --- > Anglicize > Anglo/M > Anglophile/M 783c626 < Angstrom --- > Angstrom/M 786d628 < Angy/M 790,791d631 < Anica/M < Anissa/M 793,795d632 < Anitra/M < Anjanette/M < Anjela/M 798,799c635 < Anna < Annabal/M --- > Anna/M 801,802d636 < Annabela/M < Annabell/M 805,808d638 < Annadiana/M < Annadiane/M < Annalee/M < Annaliese/M 811,812d640 < Annamaria/M < Annamarie/M 815,816c643 < Anne < Annecorinne/M --- > Anne/M 820d646 < Annetta/M 823d648 < Annice/M 825,826d649 < Annissa/M < Annmaria/M 828,830c651 < Annnora/M < Annora/M < Annunciation/MS --- > Annunciation/SM 832c653 < Anouilh --- > Anouilh/M 835,836c656 < Anselm < Anselma/M --- > Anselm/M 842c662 < Antaeus --- > Antaeus/M 847d666 < Anthe/M 849,853c668,671 < Anthia/M < Anthiathia/M < Anthony < Antichrist/MS < Antietam --- > Anthony/M > Anthropocene > Antichrist/SM > Antietam/M 859c677 < Antioch --- > Antioch/M 864,865c682,683 < Antoinette < Anton/MS --- > Antoinette/M > Anton/M 868d685 < Antonetta/M 876c693 < Antoninus --- > Antoninus/M 878c695 < Antonius --- > Antonius/M 883c700 < Any/M --- > Any's 885c702 < Anzac --- > Anzac/M 888c705,706 < Apennines --- > Apatosaurus > Apennines/M 890c708 < Apia --- > Apia/M 893c711 < Apollinaire --- > Apollinaire/M 895c713 < Apollonian --- > Apollonian/M 897c715,716 < Appalachian/S --- > Appalachian/SM > Appalachians/M 900,903c719,721 < Appleseed < Appleton < Appolonia/M < Appomattox --- > Appleseed/M > Appleton/M > Appomattox/M 906,907c724 < Aprilette/M < Apuleius --- > Apuleius/M 908a726 > Aquarian 910c728 < Aquila --- > Aquila/M 917,919d734 < Arabel/M < Arabela/M < Arabele/M 921d735 < Arabelle/M 927c741 < Araby --- > Araby/M 929a744 > Aragon 932d746 < Araldo/M 936c750 < Arapahoe/SM --- > Arapahoes 938c752 < Araucanian --- > Araucanian/M 944,945d757 < Arch/R < Archaimbaud/M 947c759 < Archean --- > Archean/M 949,950d760 < Archibaldo/M < Archibold/M 952c762 < Archimedes --- > Archimedes/M 956c766 < Arda/MH --- > Arda/M 958,968c768 < Ardath/M < Ardebil < Ardeen/M < Ardelia/M < Ardelis/M < Ardella/M < Ardelle/M < Arden < Ardene/M < Ardenia/M < Ardine/M --- > Arden/M 970,978c770,771 < Ardisj/M < Ardith/M < Ardra/M < Ardyce/M < Ardys < Ardyth/M < Arel/M < Arequipa < Ares --- > Arequipa/M > Ares/M 981c774 < Argentine --- > Argentine/M 984c777 < Argo/S --- > Argo/SM 986a780 > Argos/M 993d786 < Aridatha/M 995,997c788 < Ariel < Ariela/M < Ariella/M --- > Ariel/M 1001,1002c792 < Ario/M < Ariosto --- > Ariosto/M 1004c794 < Aristides --- > Aristides/M 1013,1014c803,804 < Arjuna < Ark --- > Arjuna/M > Ark/M 1017,1022c807,808 < Arkhangelsk < Arkwright < Arlan/M < Arlana/M < Arlee/M < Arleen/M --- > Arkhangelsk/M > Arkwright/M 1024d809 < Arlena/M 1026d810 < Arleta/M 1029d812 < Arleyne/M 1031d813 < Arliene/M 1033,1034d814 < Arlina/M < Arlinda/M 1036,1037c816 < Arlington < Arluene/M --- > Arlington/M 1039,1040d817 < Arlyn/M < Arlyne/M 1057,1058c834 < Arney/M < Arnhem --- > Arnhem/M 1062c838 < Arnold --- > Arnold/M 1064d839 < Arnuad/M 1066d840 < Arny/M 1068,1069c842 < Arrhenius < Arri/M --- > Arrhenius/M 1072d844 < Artair/M 1078d849 < Arther/M 1080c851 < Arthurian --- > Arthurian/M 1085c856 < Arty/M --- > Arty's 1088d858 < Arvie/M 1090d859 < Arvy/M 1092c861 < Aryn/M --- > As/M 1098,1101c867,868 < Asgard < Ash/MRY < Ashanti < Ashbey/M --- > Asgard/M > Ashanti/M 1103,1105c870,871 < Ashcroft < Ashe/Y < Ashely/M --- > Ashcroft/M > Ashe/RM 1107,1108d872 < Ashia/M < Ashien/M 1110,1111c874 < Ashil/M < Ashkenazim --- > Ashkenazim/M 1113,1114d875 < Ashla/M < Ashlan/M 1117d877 < Ashlen/M 1119,1122d878 < Ashli/M < Ashlie/M < Ashlin/M < Ashly/M 1125c881 < Ashurbanipal --- > Ashurbanipal/M 1126a883 > Asiago 1129,1131c886,888 < Asimov < Asmara < Asoka --- > Asimov/M > Asmara/M > Asoka/M 1133a891 > Asperger/M 1135c893 < Asquith --- > Asquith/M 1140c898 < Assisi --- > Assisi/M 1143c901 < Astaire --- > Astaire/M 1146,1148c904,906 < Aston < Astor < Astoria --- > Aston/M > Astor/M > Astoria/M 1150c908 < Astrakhan --- > Astrakhan/M 1152,1154c910,911 < Astrix/M < AstroTurf < Asturias --- > AstroTurf/M > Asturias/M 1155a913 > Asunción/M 1159,1160c917,918 < Atahualpa < Atalanta --- > Atahualpa/M > Atalanta/M 1162a921 > Atatürk/M 1164d922 < Athabascan/MS 1166c924,925 < Athabaskan/MS --- > Athabaskan/SM > Athanasius 1171c930 < Athlon/MS --- > Athlon/M 1173c932 < Atkinson --- > Atkinson/M 1175c934 < Atlante/SM --- > Atlantes 1179,1180c938,939 < Atman < Atreus --- > Atman/M > Atreus/M 1186c945 < Attlee --- > Attlee/M 1188c947 < Attucks --- > Attucks/M 1192d950 < Auberon/M 1194,1199c952 < Auberta/M < Aubine/M < Aubree/M < Aubrette/M < Aubrey < Aubrie/M --- > Aubrey/M 1201c954 < Auckland --- > Auckland/M 1209,1213c962 < Audrie/M < Audry/M < Audrye/M < Audubon < Audy/M --- > Audubon/M 1215c964 < Augean --- > Augean/M 1217c966 < Augsburg --- > Augsburg/M 1220c969 < Augustan --- > Augustan/M 1223d971 < Augustina/M 1228,1231c976 < Augy/M < Aundrea/M < Aura/M < Aurangzeb --- > Aurangzeb/M 1234d978 < Aurelea/M 1238c982 < Aurelius --- > Aurelius/M 1240,1241d983 < Auria/M < Aurie/M 1243,1245d984 < Aurilia/M < Aurlie/M < Auroora/M 1248,1249c987 < Aurthur/M < Auschwitz --- > Auschwitz/M 1251c989 < Austen --- > Austen/M 1254,1255d991 < Austina/M < Austine/M 1259,1260c995,996 < Australian/MS < Australoid --- > Australian/SM > Australoid/M 1268,1269c1004,1005 < Avalon < Ave --- > Avalon/M > Ave/M 1271c1007 < Aventine --- > Aventine/M 1275,1276c1011,1012 < Avernus < Averroes --- > Avernus/M > Averroes/M 1278d1013 < Averyl/M 1280,1282c1015 < Avicenna < Avictor/M < Avie/M --- > Avicenna/M 1284c1017 < Avignon --- > Avignon/M 1287c1020 < Avis --- > Avis/M 1289,1291c1022,1023 < Avivah/M < Avogadro < Avon --- > Avogadro/M > Avon/M 1294,1296d1025 < Avrit/M < Avrom/M < Ax/M 1300c1029 < Axum --- > Axum/M 1302,1303c1031 < Ayers < Aylmar/M --- > Ayers/M 1305c1033 < Aymara --- > Aymara/M 1309c1037 < Ayurveda --- > Ayurveda/M 1313c1041 < Azazel --- > Azazel/M 1317c1045 < Azov --- > Azov/M 1321c1049 < B/MNT --- > B/MNRT 1325,1326c1053,1054 < BBB < BBC --- > BBB/M > BBC/M 1330a1059 > BFF 1333c1062 < BITNET/S --- > BITNET 1338c1067 < BP --- > BP/M 1343c1072 < BSD/S --- > BSD/SM 1350c1079 < Baathist --- > Baathist/M 1352,1353d1080 < Babar/M < Babara/M 1355,1356c1082 < Babbage < Babbette/M --- > Babbage/M 1358c1084 < Babbitt --- > Babbitt/M 1361,1362d1086 < Babita/M < Babur 1367c1091 < Bacardi --- > Bacardi/M 1374,1375c1098,1099 < Bactria < Baden --- > Bactria/M > Baden/M 1378c1102 < Baez --- > Baez/M 1380c1104 < Baggies --- > Baggies/M 1382,1384c1106,1108 < Baguio < Baha'i < Baha'ullah --- > Baguio/M > Baha'i/M > Baha'ullah/M 1389c1113 < Bahia --- > Bahia/M 1391,1392c1115 < Baikal < Bail/M --- > Baikal/M 1397c1120 < Baird --- > Baird/M 1399,1400c1122,1123 < Baker < Bakersfield --- > Baker/M > Bakersfield/M 1402,1406c1125,1129 < Bakunin < Balanchine < Balaton < Balboa < Bald/MR --- > Bakunin/M > Balanchine/M > Balaton/M > Balboa/M > Bald's 1408d1130 < Balduin/M 1410d1131 < Bale/M 1412c1133 < Balfour --- > Balfour/M 1415,1417c1136,1139 < Balkan/S < Balkhash < Ball --- > Balkan/MS > Balkans/M > Balkhash/M > Ball/M 1419c1141 < Balthazar --- > Balthazar/M 1422c1144 < Baluchistan --- > Baluchistan/M 1426,1428d1147 < Bambie/M < Bamby/M < Ban/M 1433c1152 < Bangalore --- > Bangalore/M 1436,1437c1155,1156 < Bangladeshi/MS < Bangor --- > Bangladeshi/SM > Bangor/M 1440,1442c1159,1160 < Banjul < Bank/SM < Banky/M --- > Banjul/M > Banks/M 1444,1445c1162,1163 < Bannister < Banting --- > Bannister/M > Banting/M 1450,1451c1168 < Bar/H < Barabbas --- > Barabbas/M 1453,1455d1169 < Barb/MR < Barbabas/M < Barbabra/M 1459d1172 < Barbaraanne/M 1463c1176 < Barbe/M --- > Barbe/MR 1465c1178 < Barber --- > Barber/M 1468,1469c1181 < Barbi/M < Barbie --- > Barbie/M 1473d1184 < Barby/M 1475,1476c1186,1187 < Barclay/M < Bard/M --- > Barclay/SM > Barclays/M 1484,1486c1195 < Barn/M < Barnabas < Barnabe/M --- > Barnabas/M 1488,1491c1197,1199 < Barnard < Barnaul < Barnebas/M < Barnes --- > Barnard/M > Barnaul/M > Barnes/M 1494,1500c1202,1204 < Barnie/M < Barnum < Barny/M < Baroda < Baron/M < Baroque < Barquisimeto --- > Barnum/M > Baroda/M > Barquisimeto/M 1502c1206 < Barranquilla --- > Barranquilla/M 1509,1511c1213,1215 < Barry < Barrymore < Bart --- > Barry/M > Barrymore/M > Bart/M 1513c1217 < Barth/S --- > Barth/MS 1516,1520c1220 < Bartholemy/M < Bartholomeo/M < Bartholomeus/M < Bartholomew < Bartie/M --- > Bartholomew/M 1522,1524c1222,1223 < Bartlett < Bartok < Bartolemo/M --- > Bartlett/M > Bartok/M 1526c1225 < Barton --- > Barton/M 1529c1228,1229 < Baruch --- > Bartók/M > Baruch/M 1531,1533c1231 < Baryram/M < Baryshnikov < Base/M --- > Baryshnikov/M 1538,1539c1236,1237 < Basie < Basil --- > Basie/M > Basil/M 1544c1242 < Basra --- > Basra/M 1551d1248 < Bat/M 1553,1556c1250,1252 < Bates < Batholomew/M < Bathsheba < Batista --- > Bates/M > Bathsheba/M > Batista/M 1558d1253 < Batsheva/M 1564c1259,1260 < Bauer --- > Baudrillard/M > Bauer/M 1566c1262 < Baum --- > Baum/M 1568c1264 < Bavarian --- > Bavarian/M 1570d1265 < Baxie/M 1572,1573d1266 < Baxy/M < Bay/MR 1577,1578c1270,1271 < Bayes < Bayesian --- > Bayes/M > Bayesian/M 1582c1275 < Bayreuth --- > Bayreuth/M 1587c1280 < Beadle --- > Beadle/M 1589d1281 < Bealle/M 1591d1282 < Bear/M 1594c1285 < Beardsley --- > Beardsley/M 1596d1286 < Bearnard/M 1601d1290 < Beatrisa/M 1603a1293 > Beatty/M 1605c1295 < Beaufort --- > Beaufort/M 1607,1608c1297,1298 < Beaumarchais < Beaumont --- > Beaumarchais/M > Beaumont/M 1610c1300 < Beauvoir --- > Beauvoir/M 1620d1309 < Becki/M 1623,1624c1312,1313 < Becquerel < Bede --- > Becquerel/M > Bede/M 1626d1314 < Bee/M 1628c1316 < Beecher --- > Beecher/M 1631c1319 < Beerbohm --- > Beerbohm/M 1634,1637c1322,1325 < Begin < Behan < Behring < Beiderbecke --- > Begin/M > Behan/M > Behring/M > Beiderbecke/M 1639d1326 < Beilul/M 1641d1327 < Beitris/M 1643d1328 < Bekki/M 1654,1655d1338 < Belia/M < Belicia/M 1657d1339 < Belita/M 1663d1344 < Bellanca/M 1665,1666c1346 < Belle/M < Belleek --- > Belleek/M 1668,1670c1348,1349 < Bellina/M < Bellini < Bellow --- > Bellini/M > Bellow/M 1672,1673c1351 < Belmopan < Belorussia/M --- > Belmopan/M 1676c1354 < Beltane --- > Beltane/M 1680d1357 < Belvia/M 1683c1360 < Benares --- > Benares/M 1686,1688d1362 < Bendick/M < Bendicty/M < Bendite/M 1695c1369 < Benedictine/SM --- > Benedictine/MS 1698d1371 < Benedikta/M 1700,1701c1373 < Benet < Benetta/M --- > Benet/M 1707d1378 < Beniamino/M 1712,1713c1383 < Benjamen/M < Benjamin --- > Benjamin/M 1718,1719c1388 < Bennett < Benni/M --- > Bennett/M 1723d1391 < Benoite/M 1725,1731c1393,1396 < Bent/M < Bentham < Bentlee/M < Bentley < Benton < Benyamin/M < Benz --- > Bentham/M > Bentley/M > Benton/M > Benz/M 1733c1398 < Beowulf --- > Beowulf/M 1737d1401 < Beret 1739c1403 < Berg/NR --- > Berg/MNR 1742,1748c1406,1411 < Bergerac < Berget/M < Bergman < Bergson < Beria < Bering < Berk/MY --- > Bergerac/M > Bergman/M > Bergson/M > Beria/M > Bering/M > Berk/M 1751d1413 < Berkie/M 1753d1414 < Berkly/M 1755c1416 < Berky/M --- > Berkshires/M 1759c1420 < Berlioz --- > Berlioz/M 1765,1768c1426 < Berna/M < Bernadene/M < Bernadette < Bernadina/M --- > Bernadette/M 1771,1772c1429 < Bernard < Bernardina/M --- > Bernard/M 1775d1431 < Bernarr/M 1778d1433 < Bernelle/M 1780,1782d1434 < Bernete/M < Bernetta/M < Bernette/M 1784c1436 < Bernhardt --- > Bernhardt/M 1788,1792c1440,1442 < Bernini < Bernita/M < Bernoulli < Bernstein < Berny/M --- > Bernini/M > Bernoulli/M > Bernstein/M 1795,1796c1445 < Berrie/M < Berry --- > Berry/M 1799d1447 < Berte/M 1806,1807d1453 < Bertina/M < Bertine/M 1811,1812d1456 < Bertrando/M < Berty/M 1814,1815c1458 < Beryle/M < Berzelius --- > Berzelius/M 1817,1818c1460,1461 < Bess < Bessel --- > Bess/M > Bessel/M 1820c1463 < Bessie --- > Bessie/M 1825,1832c1468,1472 < Bethanne/M < Bethany < Bethe < Bethena/M < Bethesda < Bethina/M < Bethlehem < Bethune --- > Bethany/M > Bethe/M > Bethesda/M > Bethlehem/M > Bethune/M 1837,1838d1476 < Betteann/M < Betteanne/M 1842d1479 < Bettine/M 1845c1482 < Beulah --- > Beulah/M 1847,1848c1484 < Beverie/M < Beverlee/M --- > Beveridge 1850d1485 < Beverlie/M 1853,1856c1488,1491 < Bevon/M < Bevvy/M < Beyer < Bhopal --- > Bevvy's > Beyer/M > Bharat/M > Bhopal/M 1861c1496 < Bialystok --- > Bialystok/M 1863d1497 < Bianka/M 1867d1500 < Bibbie/M 1869d1501 < Bibbye/M 1872c1504 < Biblical --- > Biblical/M 1874,1876c1506 < Biddie/M < Biddle < Biddy/M --- > Biddle/M 1878,1879c1508 < Bidget/M < Bierce --- > Bierce/M 1884c1513 < Bilbao --- > Bilbao/M 1888d1516 < Billi/M 1892d1519 < Billye/M 1896d1522 < Binni/M 1898d1523 < Binny/M 1900,1902c1525 < Birch/M < Bird < Birdie/M --- > Bird/M 1907c1530 < Birkenstock --- > Birkenstock/M 1911c1534 < Biscay --- > Biscay/M 1913c1536 < Bishkek --- > Bishkek/M 1918a1542 > BitTorrent/M 1920c1544 < Bizet --- > Bizet/M 1929c1553 < Blackfeet --- > Blackfeet/M 1933,1934c1557,1558 < Blackstone < Blackwell --- > Blackstone/M > Blackwell/M 1937,1939c1561 < Blaire/M < Blake < Blakelee/M --- > Blake/M 1942,1943c1564 < Blanch/M < Blancha/M --- > Blanch's 1950,1951c1571 < Blavatsky < Blayne/M --- > Blavatsky/M 1956,1962c1576,1577 < Blinni/M < Blinnie/M < Blinny/M < Bliss < Blisse/M < Blithe/M < Bloch --- > Blithe's > Bloch/M 1965d1579 < Bloglines/M 1967,1968d1580 < Blondell/M < Blondelle/M 1970d1581 < Blondy/M 1973c1584,1585 < Bloomfield --- > Bloomer/M > Bloomfield/M 1975c1587,1588 < Bloomsbury --- > Bloomsbury/M > Blu 1985,1987d1597 < Bobbe/M < Bobbee/M < Bobbette/M 1992,1997c1602 < Bobbye/M < Bobette/M < Bobina/M < Bobine/M < Bobinette/M < Boccaccio --- > Boccaccio/M 1999a1605 > Bodleian 2002,2004c1608,1610 < Boeotian < Boer/SM < Boethius --- > Boeotian/M > Boer/M > Boethius/M 2006d1611 < Bogey/M 2008c1613,1614 < Bohemia --- > Bogotá/M > Bohemia/M 2010,2011c1616 < Bohr < Boigie/M --- > Bohr/M 2021,2022c1626,1627 < Bolshevism < Bolshevist --- > Bolshevism/M > Bolshevist/M 2024,2025c1629,1630 < Bolton < Boltzmann --- > Bolton/M > Boltzmann/M 2027,2028c1632,1633 < Bonaparte < Bonaventure --- > Bonaparte/M > Bonaventure/M 2030,2031d1634 < Bondie/M < Bondon/M 2033d1635 < Bone/M 2035c1637 < Boniface --- > Boniface/M 2038d1639 < Bonnee/M 2041,2042d1641 < Bonni/M < Bonnibelle/M 2044d1642 < Bonny 2049c1647 < Boolean --- > Boolean/M 2051,2054d1648 < Boonie/M < Boony/M < Boot/M < Boote/MS 2056c1650 < Booth --- > Booth/M 2061d1654 < Bordie/M 2063d1655 < Bordy/M 2066,2069c1658,1661 < Borges < Borgia < Borglum < Boris --- > Borges/M > Borgia/M > Borglum/M > Boris/M 2072c1664 < Born --- > Born/M 2075c1667 < Borodin --- > Borodin/M 2077,2078c1669,1670 < Bosch < Bose --- > Bosch/M > Bose/M 2083,2084c1675,1677 < Bostonian < Boswell --- > Bostonian/M > Boswell/M > Botox 2086,2088c1679,1680 < Botticelli < Boudicca < Boulder --- > Botticelli/M > Boulder/M 2093c1685 < Bournemouth --- > Bournemouth/M 2098c1690 < Bowers --- > Bowers/M 2100c1692 < Bowie --- > Bowie/M 2102d1693 < Boy/MR 2104,2106c1695 < Boycey/M < Boycie/M < Boyd --- > Boyd/M 2108c1697,1698 < Boyle --- > Boyle/M > Boötes/M 2110,2112c1700,1701 < Brad/MY < Bradan/M < Bradbury --- > Brad/MNY > Bradbury/M 2114d1702 < Brade/M 2116,2117c1704,1705 < Bradford < Bradley --- > Bradford/M > Bradley/M 2119d1706 < Bradney/M 2122c1709 < Brady --- > Brady/M 2124c1711 < Brahe --- > Brahe/M 2128d1714 < Brahmanee 2132d1717 < Brahmin/MS 2139d1723 < Brana/M 2141,2145c1725,1726 < Brand/MNR < Brandais/M < Brande/M < Brandea/M < Brandeis --- > Brande/MR > Brandeis/M 2147c1728 < Brandenburg --- > Brandenburg/M 2150d1730 < Brandice/M 2152,2153c1732 < Brandise/M < Brando --- > Brando/M 2155,2156c1734 < Brandt < Brandtr/M --- > Brandt/M 2158d1735 < Brandyn/M 2162c1739 < Braque --- > Braque/M 2164c1741 < Bratislava --- > Bratislava/M 2172,2173d1748 < Breanne/M < Brear/M 2175c1750 < Brecht --- > Brecht/M 2178,2179c1753 < Breena/M < Bremen --- > Bremen/M 2181d1754 < Brena/M 2185,2186d1757 < Brendin/M < Brendis/M 2188d1758 < Brenn/MNR 2191d1760 < Brennen/M 2194a1764 > Brest/M 2198,2199d1767 < Breughel < Brew/MR 2201,2203c1769,1770 < Brewster < Brezhnev < Bria/M --- > Brewster/M > Brezhnev/M 2208d1774 < Briano/M 2212d1777 < Bride/M 2215c1780 < Bridges --- > Bridges/M 2217c1782 < Bridgetown --- > Bridgetown/M 2220c1785 < Bridgman --- > Bridgman/M 2222c1787 < Brie/RSM --- > Brie/SM 2224,2227c1789 < Brier/M < Brietta/M < Brig < Brigadoon --- > Brigadoon/M 2228a1791 > Briggs/M 2230c1793 < Bright --- > Bright/M 2237,2239c1800 < Brillo < Brina/M < Briney/M --- > Brillo/M 2241,2243c1802 < Brinn/M < Brinna/M < Briny/M --- > Briny's 2250,2251c1809,1810 < Britannia < Britannic --- > Britannia/M > Britannic/M 2257d1815 < Britni/M 2262,2263d1819 < Brittaney/M < Brittani/M 2265,2267c1821 < Britte/M < Britteny/M < Brittne/M --- > Britten/M 2269,2272c1823 < Brittni/M < Brnaba/M < Brnaby/M < Brno --- > Brno/M 2275c1826 < Brobdingnagian --- > Brobdingnagian/M 2277,2278d1827 < Brockie/M < Brocky/M 2280,2282d1828 < Broddie/M < Broddy/M < Broderic/M 2286d1831 < Brok/M 2289,2290d1833 < Bronnie/M < Bronny/M 2292c1835,1836 < Bronte --- > Bronte/M > Brontosaurus 2294,2295c1838 < Brook/MS < Brooke --- > Brooke/MS 2296a1840 > Brooks/M 2299,2300c1843,1844 < Brown/G < Browne --- > Brown/MG > Browne/M 2303,2305c1847,1850 < Brownshirt < Brownsville < Brubeck --- > Browning/M > Brownshirt/M > Brownsville/M > Brubeck/M 2307,2308c1852 < Brucie/M < Bruckner --- > Bruckner/M 2310,2311d1853 < Brueghel < Bruis/M 2315,2316c1857 < Brunelleschi < Brunhilda/M --- > Brunelleschi/M 2318c1859 < Bruno --- > Bruno/M 2323,2326c1864,1865 < Bryan < Bryana/M < Bryant < Bryanty/M --- > Bryan/M > Bryant/M 2329d1867 < Bryna/M 2331,2332d1868 < Brynna/M < Brynne/M 2337c1873 < Buber --- > Buber/M 2340c1876 < Buchenwald --- > Buchenwald/M 2342,2344c1878,1879 < Buck < Buckie/M < Buckingham --- > Buck/M > Buckingham/M 2354d1888 < Buddie/M 2363d1896 < Buiron/M 2365,2370c1898,1903 < Bukhara < Bukharin < Bulawayo < Bulfinch < Bulganin < Bulgar --- > Bukhara/M > Bukharin/M > Bulawayo/M > Bulfinch/M > Bulganin/M > Bulgar/M 2378c1911 < Bunche --- > Bunche/M 2380,2381c1913,1914 < Bundestag < Bunin --- > Bundestag/M > Bunin/M 2383,2386c1916 < Bunni/M < Bunnie/M < Bunny/M < Bunsen --- > Bunsen/M 2389c1919 < Burbank --- > Burbank/M 2392d1921 < Burg/MR 2394c1923 < Burgess --- > Burgess/M 2396c1925 < Burgundian --- > Burgundian/M 2399c1928 < Burke --- > Burke/M 2400a1930 > Burks/M 2402d1931 < Burlie/M 2408,2411c1937,1940 < Burnett < Burns < Burnside < Burr --- > Burnett/M > Burns/M > Burnside/M > Burr/M 2413,2414c1942,1943 < Burroughs < Bursa --- > Burroughs/M > Bursa/M 2416d1944 < Burtie/M 2418d1945 < Burty/M 2423c1950 < Bushido --- > Bushido/M 2425,2426c1952 < Butch/M < Butler --- > Butler/M 2428c1954,1955 < Buxtehude --- > Buxtehude/M > Buñuel/M 2430d1956 < Byelorussia/M 2433,2436c1959 < Byran/M < Byrann/M < Byrd < Byrle/M --- > Byrd/M 2438,2439c1961,1962 < Byron < Byronic --- > Byron/M > Byronic/M 2442c1965 < C/SMDY --- > C/SMD 2452c1975 < CBS --- > CBS/M 2458c1981 < CEO/MS --- > CEO/SM 2460c1983 < CFC/MS --- > CFC/SM 2461a1985 > CGI 2464c1988 < CNN --- > CNN/M 2479a2004 > CVS/M 2483,2485c2008,2009 < Cabinet < Cabot < Cabral --- > Cabot/M > Cabral/M 2487,2489c2011 < Cabrini < Cacilia/M < Cacilie/M --- > Cabrini/M 2491d2012 < Caddric/M 2493c2014 < Cadillac --- > Cadillac/M 2496c2017 < Caerphilly --- > Caerphilly/M 2498,2499c2019 < Caesarean < Cage --- > Cage/M 2502,2503c2022 < Cahra/M < Caiaphas --- > Caiaphas/M 2506d2024 < Cairistiona/M 2509,2510d2026 < Caitrin/M < Cajan 2512,2513c2028,2029 < Cal/Y < Calais --- > Cal/MY > Calais/M 2515c2031 < Calder --- > Calder/M 2517c2033 < Caldwell --- > Caldwell/M 2520c2036 < Caledonia --- > Caledonia/M 2522,2525c2038,2040 < Calhoun < Cali < Caliban < Calida/M --- > Calhoun/M > Cali/M > Caliban/M 2528,2531c2043,2045 < Californian/MS < Caligula < Calla/MS < Callaghan --- > Californian/SM > Caligula/M > Callaghan/M 2533,2534c2047,2048 < Callao < Callean/M --- > Callao/M > Callas/M 2537d2050 < Callida/M 2543d2055 < Calv/M 2545c2057 < Calvert --- > Calvert/M 2550,2551d2061 < Calypso < Cam 2553d2062 < Camala/M 2561,2563c2070 < Camella/M < Camellia/M < Camelopardalis --- > Camelopardalis/M 2568,2569c2075 < Cameroonian/SM < Camey/M --- > Cameroonian/MS 2572d2077 < Camile/M 2576d2080 < Cammi/M 2581,2583c2085,2087 < Campbell < Campinas < Campos --- > Campbell/M > Campinas/M > Campos/M 2585,2586c2089,2090 < Camus < Can --- > Camus/M > Can/M 2593c2097 < Canaletto --- > Canaletto/M 2595c2099 < Canaveral --- > Canaveral/M 2600c2104 < Candi/MS --- > Candi/M 2604d2107 < Candie/M 2610c2113 < Canopus --- > Canopus/M 2612c2115 < Canterbury --- > Canterbury/M 2618,2619c2121,2122 < Canute < Capablanca --- > Canute/M > Capablanca/M 2622,2623c2125,2126 < Capet < Capetian --- > Capet/M > Capetian/M 2628,2630c2131,2133 < Capitoline < Capone < Capote --- > Capitoline/M > Capone/M > Capote/M 2633d2135 < Caprice/M 2636c2138 < Capuchin --- > Capuchin/M 2638d2139 < Car/MNY 2640c2141 < Caracalla --- > Caracalla/M 2642,2643c2143 < Caralie/M < Caravaggio --- > Caravaggio/M 2646,2647c2146 < Carborundum < Carce/M --- > Carborundum/M 2652d2150 < Care/M 2655,2659c2153 < Carena/M < Caresa/M < Caressa/M < Caresse/M < Carey --- > Carey/M 2664,2666d2157 < Carie/M < Caril/M < Carilyn/M 2668c2159 < Carina --- > Carina/M 2670d2160 < Cariotta/M 2673d2162 < Caritta/M 2676,2677d2164 < Carlee/M < Carleen/M 2684,2685d2170 < Carlina/M < Carline/M 2688d2172 < Carlita/M 2689a2174 > Carlos/M 2692c2177 < Carlsbad --- > Carlsbad/M 2694c2179 < Carlton --- > Carlton/M 2696,2701c2181 < Carlye/M < Carlyle < Carlyn/M < Carlynn/M < Carlynne/M < Carma/M --- > Carlyle/M 2704,2705d2183 < Carmelia/M < Carmelina/M 2708d2185 < Carmelle/M 2711d2187 < Carmencita/M 2715,2717c2191 < Carmita/M < Carmon/M < Carnap --- > Carnap/M 2721,2722c2195 < Carnot < Carny/M --- > Carnot/M 2727d2199 < Carolann/M 2729,2733c2201,2203 < Carolee/M < Carolin/M < Carolina < Caroline < Carolingian --- > Carolina/M > Caroline/M > Carolingian/M 2735d2204 < Caroljean/M 2739d2207 < Carolynn/M 2741,2742c2209,2211 < Carpathian/MS < Carpenter --- > Carpathian/SM > Carpathians/M > Carpenter/M 2745,2747c2214 < Carree/M < Carri/MR < Carrie/M --- > Carrie/RM 2750d2216 < Carrissa/M 2753,2755c2219 < Carry/M < Carson < Cart/MR --- > Carson/M 2757c2221 < Cartesian --- > Cartesian/M 2760,2764c2224,2228 < Cartier < Cartwright < Caruso < Carver < Cary --- > Cartier/M > Cartwright/M > Caruso/M > Carver/M > Cary/M 2768c2232 < Casals --- > Casals/M 2775c2239 < Cash --- > Cash/M 2777d2240 < Casie/M 2779c2242 < Caspar --- > Caspar/M 2781c2244 < Caspian --- > Caspian/M 2784,2788c2247 < Cassandre/M < Cassandry/M < Cassatt < Cassaundra/M < Cassey/M --- > Cassatt/M 2789a2249 > Cassidy/M 2794d2253 < Cassondra/M 2797a2257 > Castilian 2799c2259 < Castlereagh --- > Castlereagh/M 2802c2262 < Castro --- > Castro/M 2811d2270 < Catha/M 2815,2818c2274 < Cathe/MR < Cathee/M < Catherin/M < Catherina/M --- > Cather/M 2820d2275 < Cathi/M 2823d2277 < Cathlene/M 2825,2827c2279 < Catholicism/SM < Cathrin/M < Cathrine/M --- > Catholicism/MS 2830d2281 < Cathyleen/M 2833,2836c2284 < Catiline < Catina/M < Catlaina/M < Catlee/M --- > Catiline/M 2838c2286 < Cato --- > Cato/M 2843,2845c2291,2292 < Catt < Catullus < Caty/M --- > Catt/M > Catullus/M 2849,2852c2296,2299 < Cauchy < Cavendish < Cavour < Caxton --- > Cauchy/M > Cavendish/M > Cavour/M > Caxton/M 2854,2855c2301 < Cayenne < Cayla/M --- > Cayenne/M 2860d2305 < Cazzie/M 2862d2306 < Cchaddie/M 2870c2314 < Cecil --- > Cecil/M 2872,2873c2316 < Ceciley/M < Cecilia --- > Cecilia/M 2875,2876d2317 < Cecilius/M < Cecilla/M 2883,2884d2323 < Celene/M < Celesta/M 2889,2890d2327 < Celestyn/M < Celestyna/M 2894d2330 < Celinda/M 2896,2898d2331 < Celinka/M < Celisse/M < Celka/M 2900,2902c2333,2334 < Cellini < Cello/M < Celsius --- > Cellini/M > Celsius/M 2910c2342 < Cepheid --- > Cepheid/M 2913c2345 < Cerenkov --- > Cerenkov/M 2919,2921c2351 < Cesarean < Cesarian < Cesaro/M --- > Cesarean/M 2923,2924c2353 < Cesya/M < Cetus --- > Cetus/M 2927c2356 < Cezanne --- > Cezanne/M 2929c2358 < Ch'in --- > Ch'in/M 2933,2935d2361 < Chadd/M < Chaddie/M < Chaddy/M 2937,2938c2363,2364 < Chadwick < Chagall --- > Chadwick/M > Chagall/M 2943c2369 < Chaldean --- > Chaldean/M 2946,2949c2372,2375 < Chamberlain < Chambers < Champlain < Champollion --- > Chamberlain/M > Chambers/M > Champlain/M > Champollion/M 2955,2957c2381,2382 < Chandal/M < Chandigarh < Chandler --- > Chandigarh/M > Chandler/M 2960c2385 < Chandragupta --- > Chandragupta/M 2963c2388 < Chanel --- > Chanel/M 2966,2967c2391,2392 < Changchun < Changsha --- > Changchun/M > Changsha/M 2970,2975c2395,2398 < Chantalle/M < Chantilly < Chanukah/M < Chanukahs < Chaplin < Chapman --- > Chantilly/M > Chaplin/M > Chaplinesque > Chapman/M 2981,2983d2403 < Charil/M < Charin/M < Chariot/M 2985d2404 < Charissa/M 2987d2405 < Charita/M 2989,2991d2406 < Charla/M < Charlean/M < Charleen/M 2993d2407 < Charlena/M 2997,2999c2411,2412 < Charley < Charlie < Charline/M --- > Charley/M > Charlie/M 3005d2417 < Charmain/M 3007d2418 < Charmane/M 3010,3012d2420 < Charmine/M < Charmion/M < Charo/M 3016c2424 < Chartres --- > Chartres/M 3018d2425 < Charyl/M 3020c2427 < Chase --- > Chase/M 3022d2428 < Chastity/M 3029c2435 < Chatterton --- > Chatterton/M 3031d2436 < Chaunce/M 3033c2438 < Chautauqua --- > Chautauqua/M 3037c2442 < Chechen --- > Chechen/M 3039c2444 < Cheddar --- > Cheddar/M 3043c2448 < Cheever --- > Cheever/M 3046,3050c2451 < Chelsae/M < Chelsea < Chelsey/M < Chelsie/M < Chelsy/M --- > Chelsea/M 3054c2455 < Chengdu --- > Chengdu/M 3056c2457 < Cheops --- > Cheops/M 3058d2458 < Cherey/M 3060,3062d2459 < Cherianne/M < Cherice/M < Cherida/M 3064,3066d2460 < Cherilyn/M < Cherilynn/M < Cherin/M 3068,3069c2462 < Cherish/M < Cherlyn/M --- > Cherish's 3074,3075d2466 < Cherri/M < Cherrita/M 3077,3078d2467 < Chery/M < Cherye/M 3080,3082c2469,2470 < Chesapeake < Cheshire < Cheslie/M --- > Chesapeake/M > Cheshire/M 3084,3086c2472,2473 < Chesterfield < Chesterton < Cheston/M --- > Chesterfield/M > Chesterton/M 3089c2476 < Chevalier --- > Chevalier/M 3097,3100c2484,2485 < Chiarra/M < Chiba < Chibcha < Chic/M --- > Chiba/M > Chibcha/M 3102,3105c2487,2489 < Chicagoan < Chicana < Chicano < Chick/M --- > Chicagoan/M > Chicana/M > Chicano/M 3107,3108d2490 < Chickie/M < Chicky/M 3120c2502 < Chinatown --- > Chinatown/M 3123d2504 < Chip/M 3127d2507 < Chiquia/M 3129c2509 < Chirico --- > Chirico/M 3132c2512 < Chittagong --- > Chittagong/M 3134,3136c2514 < Chlo/M < Chloe < Chloette/M --- > Chloe/M 3140,3141c2518,2519 < Chomsky < Chongqing --- > Chomsky/M > Chongqing/M 3144c2522 < Chou --- > Chou/M 3147d2524 < Chrisse/M 3150c2527 < Christ/MNS --- > Christ/MS 3153,3158c2530 < Christabella/M < Christal/M < Christalle/M < Christan/M < Christchurch < Christean/M --- > Christchurch/M 3160,3161c2532,2533 < Christen/M < Christendom/SM --- > Christen's > Christendom/MS 3168,3172c2540,2542 < Christianize/DSG < Christiano/M < Christie < Christin/M < Christina --- > Christianize/DG > Christie/M > Christina/M 3178,3179d2547 < Christoffer/M < Christoforo/M 3184d2551 < Christophorus/M 3186,3188d2552 < Christye/M < Christyna/M < Chrisy/M 3190,3191d2553 < Chrotoem/M < Chrysa/M 3193c2555 < Chrysostom --- > Chrysostom/M 3195,3197d2556 < Chryste/M < Chrystel/M < Chucho/M 3199,3200c2558,2559 < Chukchi < Chumash --- > Chukchi/M > Chumash/M 3202,3203c2561 < Chungking/M < Church --- > Church/M 3207c2565 < Ci --- > Ci/M 3210,3211c2568 < Cicily/M < Cid --- > Cid/M 3213d2569 < Cilka/M 3215,3218c2571 < Cincinnati < Cinda/M < Cindee/M < Cindelyn/M --- > Cincinnati/M 3221,3222d2573 < Cindie/M < Cindra/M 3225c2576 < Cinerama --- > Cinerama/M 3227d2577 < Cinnamon/M 3231d2580 < Cirilo/M 3234d2582 < Cissiee/M 3239d2586 < Citysearch/M 3241d2587 < Claiborn/M 3250,3252c2596 < Clarabelle/M < Clarance/M < Clare --- > Clare/M 3254,3259c2598 < Clarendon < Claresta/M < Clareta/M < Claretta/M < Clarette/M < Clarey/M --- > Clarendon/M 3263d2601 < Clarie/M 3265d2602 < Clarine/M 3269c2606 < Clark --- > Clark/M 3274,3276d2610 < Claudell/M < Claudelle/M < Claudetta/M 3280,3282d2613 < Claudianus/M < Claudie/M < Claudina/M 3287,3290c2618,2620 < Clausewitz < Clausius < Clay < Clayborn/M --- > Clausewitz/M > Clausius/M > Clay/M 3292,3293d2621 < Claybourne/M < Clayson/M 3297d2624 < Cleavland/M 3300c2627,2628 < Clemenceau --- > Clemenceau/M > Clemens/M 3303d2630 < Clementia/M 3306c2633 < Clementius/M --- > Clements/M 3308,3309c2635 < Clemmy/M < Clemons --- > Clemons/M 3315,3316d2640 < Clerissa/M < Cletis 3320,3321d2643 < Clevey/M < Clevie/M 3324c2646 < Clifford --- > Clifford/M 3326d2647 < Clim/M 3330a2652 > Clive/M 3332d2653 < Cloe/M 3334d2654 < Cloris/M 3335a2656 > Closure/M 3340,3341c2661 < Cly/M < Clyde --- > Clyde/M 3343,3345c2663 < Clytemnestra < Clyve/M < Clywd/M --- > Clytemnestra/M 3348,3349c2666 < Co/SM < Cob/M --- > Co/M 3351,3356c2668,2671 < Cobb < Cobbie/M < Cobby/M < Cochabamba < Cochin < Cochise --- > Cobb/M > Cochabamba/M > Cochin/M > Cochise/M 3359c2674 < Cocteau --- > Cocteau/M 3361,3364c2676 < Codee/M < Codi/M < Codie/M < Cody --- > Cody/M 3367,3371c2679,2682 < Cohan < Cohen < Coimbatore < Cointon/M < Cointreau --- > Cohan/M > Cohen/M > Coimbatore/M > Cointreau/M 3373,3375c2684 < Col < Colan/M < Colas --- > Col/M 3377c2686 < Colby --- > Colby/M 3379c2688 < Cole --- > Cole/M 3382d2690 < Colene/M 3386c2694 < Colette --- > Colette/M 3392d2699 < Collete/M 3394d2700 < Collie/M 3398c2704 < Colly/RM --- > Collins/M 3406d2711 < Colonial 3410c2715 < Colosseum --- > Colosseum/M 3412c2717 < Coltrane --- > Coltrane/M 3414c2719 < Columbine --- > Columbine/M 3416d2720 < Colver/M 3422,3423c2726,2727 < Comintern < Commons --- > Comintern/M > Commons/M 3428c2732 < Como --- > Como/M 3433c2737 < Compton --- > Compton/M 3436,3437c2740 < Comte < Con --- > Comte/M 3441c2744,2745 < Concepcion --- > Concepcion/M > Concepción/M 3443d2746 < Concettina/M 3446c2749 < Concorde --- > Concorde/M 3448,3449c2751,2752 < Condillac < Condorcet --- > Condillac/M > Condorcet/M 3456c2759 < Cong --- > Cong/M 3463c2766 < Congreve --- > Congreve/M 3465c2768 < Conn/R --- > Conn/MR 3467c2770 < Connemara --- > Connemara/M 3470,3471d2772 < Conney/M < Conni/M 3475c2776 < Connotea/M --- > Connors/M 3477,3478c2778 < Conrad < Conrade/M --- > Conrad/M 3482d2781 < Consalve/M 3484,3486c2783,2784 < Consolata/M < Constable < Constance --- > Constable/M > Constance/M 3488d2785 < Constancy/M 3492,3493c2789 < Constantina/M < Constantine --- > Constantine/M 3500c2796 < Continental --- > Continental/M 3502,3503c2798,2799 < Conway < Cook --- > Conway/M > Cook/M 3505d2800 < Cookie/M 3508c2803 < Coop/MR --- > Cooper/M 3514c2809 < Copernican --- > Copernican/M 3516,3517c2811,2812 < Copland < Copley --- > Copland/M > Copley/M 3523,3526d2817 < Corabel/M < Corabella/M < Corabelle/M < Coral/M 3528,3529d2818 < Coraline/M < Coralyn/M 3535d2823 < Cord/M 3537d2824 < Cordelie/M 3539,3542c2826 < Cordey/M < Cordi/M < Cordie/M < Cordilleras --- > Cordilleras/M 3544d2827 < Cordula/M 3546,3549d2828 < Coreen/M < Corella/M < Corenda/M < Corene/M 3551d2829 < Corette/M 3553c2831 < Corfu --- > Corfu/M 3555,3556d2832 < Corie/M < Corilla/M 3562,3563c2838,2840 < Corinthian/SM < Coriolanus --- > Corinthian/MS > Corinthians/M > Coriolanus/M 3565,3566d2841 < Coriss/M < Corissa/M 3570d2844 < Corly/M 3572,3574c2846 < Cornall/M < Corneille < Cornela/M --- > Corneille/M 3578d2849 < Cornelle/M 3580d2850 < Cornie/M 3584,3587c2854,2857 < Cornwallis < Corny/M < Coronado < Corot --- > Cornwallis/M > Corny's > Coronado/M > Corot/M 3589,3593c2859 < Correggio < Correna/M < Correy/M < Corri/M < Corrianne/M --- > Correggio/M 3595d2860 < Corrina/M 3597d2861 < Corrinne/M 3600c2864 < Corsican --- > Corsican/M 3603,3604d2866 < Cortez/M < Cortie/M 3606,3607d2867 < Cortney/M < Corty/M 3613d2872 < Cosetta/M 3618c2877 < Cossack --- > Cossack/M 3625c2884 < Cotonou --- > Cotonou/M 3629c2888 < Coulomb --- > Coulomb/M 3632,3634c2891,2892 < Couperin < Courbet < Court/M --- > Couperin/M > Courbet/M 3636d2893 < Courtnay/M 3638c2895 < Cousteau --- > Cousteau/M 3640,3643c2897,2901 < Coward < Cowley < Cowper < Cox --- > Coward/M > Cowell/M > Cowley/M > Cowper/M > Cox/M 3645d2902 < Cozmo/M 3649c2906 < Crabbe --- > Crabbe/M 3651,3653c2908,2909 < Craggie/M < Craggy/M < Craig --- > Craggy's > Craig/M 3655,3657c2911,2913 < Cranach < Crane < Cranmer --- > Cranach/M > Crane/M > Cranmer/M 3667,3668d2922 < Creigh/M < Creight/M 3671c2925,2926 < Creon --- > Creon/M > Cressida/M 3676,3677c2931,2932 < Crichton < Crick --- > Crichton/M > Crick/M 3679,3681c2934,2935 < Crimean < Crin/M < Criollo --- > Crimean/M > Criollo/M 3684d2937 < Crissie/M 3687d2939 < Cristabel/M 3689,3690d2940 < Cristen/M < Cristi/M 3693,3694d2942 < Cristie/M < Cristin/M 3696,3697d2943 < Cristine/M < Cristionna/M 3699d2944 < Cristy/M 3703,3705c2948,2950 < Croce < Crockett < Croesus --- > Croce/M > Crockett/M > Croesus/M 3707c2952 < Cromwellian --- > Cromwellian/M 3711,3713c2956,2958 < Crookes < Crosby < Cross --- > Crookes/M > Crosby/M > Cross/M 3717c2962 < Cruikshank --- > Cruikshank/M 3719c2964 < Crusades --- > Crusades's 3724d2968 < Crysta/M 3726d2969 < Crystie/M 3729,3730c2972 < Ctesiphon < Cthrine/M --- > Ctesiphon/M 3736,3739c2978,2979 < Cuisinart < Culbertson < Cull/MN < Cullan/M --- > Cuisinart/M > Culbertson/M 3742,3743d2981 < Cullie/M < Cullin/M 3748c2986 < Cummings --- > Cummings/M 3754,3755c2992,2993 < Curie < Curitiba --- > Curie/M > Curitiba/M 3759c2997 < Currie/MR --- > Currie/M 3761c2999 < Curry --- > Curry/RM 3765c3003 < Custer --- > Custer/M 3767c3005 < Cuzco --- > Cuzco/M 3769d3006 < Cyb/M 3772d3008 < Cybill/M 3778,3779d3013 < Cymbre/M < Cynde/M 3781,3784d3014 < Cyndia/M < Cyndie/M < Cyndy/M < Cynthea/M 3786d3015 < Cynthie/M 3792,3793c3021 < Cyril < Cyrill/M --- > Cyril/M 3796,3797c3024 < Cyrillus/M < Cyrus --- > Cyrus/M 3801c3028 < Czechoslovakian/MS --- > Czechoslovakian/SM 3803c3030 < Czerny --- > Czerny/M 3805c3032 < D/MN --- > D/M 3816c3043 < DEC/SDG --- > DEC/SD 3817a3045 > DHS 3819a3048 > DMCA 3835,3837c3064,3065 < DVD < DVDs < DVR/S --- > DVD/S > DVR/SM 3839d3066 < Dacca/M 3843d3069 < Dacie/M 3845d3070 < Dacy/M 3849,3853c3074,3075 < Dael/M < Daffi/M < Daffie/M < Daffy/M < Dag/M --- > Daffy's > Dag's 3856,3858c3078,3079 < Daguerre < Dagwood < Dahlia/M --- > Daguerre/M > Dagwood/M 3860d3080 < Daile/M 3862,3865c3082 < Daisey/M < Daisi/M < Daisie/M < Daisy --- > Daisy/M 3868c3085 < Dakotan --- > Dakotan/M 3870,3871c3087,3088 < Dale < Dalenna/M --- > Dalai > Dale/M 3873c3090 < Dali/S --- > Dali/M 3879,3880d3095 < Dalli/MS < Dallon/M 3883,3885d3097 < Daloris/M < Dalston/M < Dalt/M 3890c3102 < Dame/N --- > Dame/MN 3893c3105 < Damien --- > Damien/M 3895,3896c3107 < Damita/M < Damocles --- > Damocles/M 3898c3109 < Dan --- > Dan/M 3900c3111,3112 < Danae --- > Danae/M > Danaë/M 3902,3904c3114 < Danelaw < Danell/M < Danella/M --- > Danelaw/M 3911,3912d3120 < Danice/M < Danie/M 3918,3919c3126 < Danika/M < Danila/M --- > Daniels/M 3921,3922d3127 < Danit/M < Danita/M 3924d3128 < Dannel/M 3928d3131 < Dannye/M 3931c3134 < Danton --- > Danton/M 3933,3938c3136 < Danubian < Danya/M < Danyelle/M < Danyette/M < Daphene/M < Daphna/M --- > Danubian/M 3942,3944d3139 < Darb/M < Darbee/M < Darbie/M 3946d3140 < Darcee/M 3951d3144 < Darda/M 3953,3956c3146 < Dare < Dareen/M < Darell/M < Darelle/M --- > Dare/M 3958c3148 < Darfur --- > Darfur/M 3961,3962d3150 < Darice/M < Darill/M 3965,3966c3153,3154 < Darius < Darjeeling --- > Darius/M > Darjeeling/M 3968d3155 < Darleen/M 3970d3156 < Darline/M 3972,3974d3157 < Darlleen/M < Darn/M < Darnall/M 3979d3161 < Darrelle/M 3981d3162 < Darrick/M 3983c3164 < Darrow --- > Darrow/M 3985d3165 < Darsey/M 3988,3989c3168,3169 < Dartmoor < Dartmouth --- > Dartmoor/M > Dartmouth/M 3992c3172 < Darwinian --- > Darwinian/M 3997,3998d3176 < Daryle/M < Daryn/M 4000,4004c3178 < Dasi/M < Dasie/M < Dasya/M < Datamation/S < Datha/M --- > Datamation 4006,4009c3180,3182 < Daumier < Daune/M < Dav/MN < Davao --- > Daumier/M > Dav/M > Davao/M 4011,4014c3184 < Daveen/M < Daven/M < Davenport < Daveta/M --- > Davenport/M 4018d3187 < Davidde/M 4021c3190,3191 < Davie/MS --- > Davie/M > Davies/M 4024,4027c3194,3197 < Davine/M < Davis < Davy/S < Dawes --- > Davis/M > Davy/SM > Dawes/M > Dawkins 4029,4031c3199,3200 < Dawna/M < Dawson < Day --- > Dawson/M > Day/M 4033d3201 < Dayle/M 4035c3203 < Dayton --- > Dayton/M 4037d3204 < Ddene/M 4043c3210 < Dean --- > Dean/M 4054,4055d3220 < Debee/M < Debera/M 4058d3222 < Debor/M 4060c3224 < Deborah --- > Deborah/M 4063,4064c3227,3228 < Debs < Debussy --- > Debs/M > Debussy/M 4066d3229 < Decalog 4068c3231 < Decatur --- > Decatur/M 4070c3233 < Deccan --- > Deccan/M 4072c3235 < Deck/MR --- > Decker/M 4075,4079c3238 < Dedie/M < Dedra/M < Dee < Deeann/M < Deeanne/M --- > Dee/M 4082d3240 < Deerdre/M 4084,4087c3242,3243 < Deeyn/M < Defoe < Degas < Dehlia/M --- > Defoe/M > Degas/M 4089,4091c3245,3246 < Deimos < Deina/M < Deirdre --- > Deimos/M > Deirdre/M 4094c3249 < Del/Y --- > Del/M 4096c3251 < Delacroix --- > Delacroix/M 4098d3252 < Delainey/M 4102c3256 < Delawarean/MS --- > Delawarean/SM 4104,4105d3257 < Delcina/M < Delcine/M 4107c3259 < Delgado --- > Delgado/M 4110c3262 < Delibes --- > Delibes/M 4112d3263 < Delila/M 4115,4116c3266 < Delinda/M < Delius --- > Delius/M 4119d3268 < Delly/M 4123,4124c3272 < Delmonico < Delmor/M --- > Delmonico/M 4127d3274 < Delora/M 4132c3279 < Delphic --- > Delphic/M 4134d3280 < Delphinia/M 4136c3282 < Delta --- > Delta/M 4141,4143c3287 < Demetra/M < Demetre/M < Demetri/SM --- > Demetri/M 4149c3293 < Democritus --- > Democritus/M 4152c3296 < Dempsey --- > Dempsey/M 4156c3300 < Deneb --- > Deneb/M 4160c3304 < Denice/M --- > Denis/M 4163,4164d3306 < Denna/M < Dennet/M 4166d3307 < Denni/MS 4167a3309 > Dennis/M 4172c3314 < Deny/M --- > Deny's 4174d3315 < Denyse/M 4176d3316 < Deonne/M 4179c3319 < Derby --- > Derby/M 4184d3323 < Derrek/M 4187,4189d3325 < Derrik/M < Derril/M < Derron/M 4191,4192d3326 < Derward/M < Derwin/M 4197d3330 < Desirae/M 4199d3331 < Desiri/M 4201d3332 < Desmund/M 4204c3335 < Deutschmark/MS --- > Deutschmark/SM 4212,4215d3342 < Devina/M < Devinne/M < Devland/M < Devlen/M 4218d3344 < Devondra/M 4220,4225d3345 < Devonna/M < Devonne/M < Devora/M < Devy/M < Dew/M < Dewain/M 4229d3348 < Dewie/M 4233c3352 < Dexter --- > Dexter/M 4237c3356 < Di/S --- > Di/SM 4239,4241c3358,3359 < DiMaggio < Diaghilev < Diahann/M --- > DiMaggio/M > Diaghilev/M 4245d3362 < Diandra/M 4247d3363 < Dianemarie/M 4251,4252d3366 < Diannne/M < Diarmid/M 4255,4256c3369,3370 < Diaz < Dick/X --- > Dick/XM > Dickens/M 4260c3374 < Dickinson --- > Dickinson/M 4264c3378 < Diderot --- > Diderot/M 4268c3382 < Diefenbaker --- > Diefenbaker/M 4271d3384 < Diena/M 4273d3385 < Diesel/M 4275,4276c3387,3388 < Dietrich < Digg/MS --- > Dietrich/M > Digg/SM 4278,4279c3390 < Dijon < Dilan/M --- > Dijon/M 4281d3391 < Dill/M 4283d3392 < Dillie/M 4286d3394 < Dilly/M 4288d3395 < Dimitry/M 4290,4291c3397 < Dinah < Dinnie/M --- > Dinah/M 4294,4295c3400,3401 < Diocletian < Diogenes --- > Diocletian/M > Diogenes/M 4298d3403 < Dionis/M 4301c3406 < Dionysian --- > Dionysian/M 4304c3409 < Dior --- > Dior/M 4307,4308c3412,3413 < Dirac < Dirichlet --- > Dirac/M > Dirichlet/M 4311,4313c3416,3418 < Disney < Disneyland < Disraeli --- > Disney/M > Disneyland/M > Disraeli/M 4318c3423 < Dix --- > Dix/M 4320c3425 < Dixiecrat --- > Dixiecrat/M 4323d3427 < Djakarta/M 4327,4330c3431,3433 < Dnepropetrovsk < Dnieper < Dniester < Dniren/M --- > Dnepropetrovsk/M > Dnieper/M > Dniester/M 4333c3436 < Dobro --- > Dobro/M 4336d3438 < Dode/M 4343,4344c3445 < Dody/M < Doe --- > Doe/M 4346c3447 < Dolby --- > Dolby/M 4349d3449 < Doll/M 4351d3450 < Dolli/M 4355d3453 < Dolorita/SM 4360d3457 < Domeniga/M 4362d3458 < Dominga/M 4366c3462 < Dominic --- > Dominic/M 4373,4374c3469 < Domitian < Don't --- > Domitian/M 4376c3471 < Dona --- > Dona/M 4381,4387c3476 < Donall/M < Donalt/M < Donatello < Donaugh/M < Donavon/M < Donella/M < Donelle/M --- > Donatello/M 4389,4392d3477 < Donetta/M < Donia/M < Donica/M < Donielle/M 4395,4396c3480 < Donna < Donnamarie/M --- > Donna/M 4400d3483 < Donni/M 4405c3488 < Doolittle --- > Doolittle/M 4407c3490 < Doppler --- > Doppler/M 4409,4414c3492 < Doralia/M < Doralin/M < Doralyn/M < Doralynn/M < Doralynne/M < Dorcas --- > Dorcas/M 4417,4423d3494 < Dorelia/M < Dorella/M < Dorelle/M < Dorena/M < Dorene/M < Doretta/M < Dorette/M 4429d3499 < Dorice/M 4431d3500 < Dorine/M 4433d3501 < Dorisa/M 4435d3502 < Dorita/M 4438,4439d3504 < Dorolice/M < Dorolisa/M 4441d3505 < Doroteya/M 4445,4446d3508 < Dorree/M < Dorri/SM 4448,4449c3510,3511 < Dorry/M < Dorset --- > Dorris > Dorset/M 4451d3512 < Dorthea/M 4453,4454c3514 < Dortmund < Dory/M --- > Dortmund/M 4457d3516 < Dostoyevsky/M 4459d3517 < Doti/M 4461d3518 < Dotti/M 4463c3520 < Dotty/M --- > Dotty's 4469,4472c3526,3528 < Douglas < Douglass < Dougy/M < Douro --- > Douglas/M > Douglass/M > Douro/M 4475,4476c3531,3532 < Dow < Downs --- > Dow/M > Downs/M 4479c3535 < Doyle --- > Doyle/M 4482c3538 < Draconian --- > Draconian/M 4484c3540 < Drake --- > Drake/M 4486c3542 < Drambuie --- > Drambuie/M 4491,4493c3547 < Dreddy/M < Dredi/M < Dreiser --- > Dreiser/M 4498a3553 > Dropbox/M 4500,4504d3554 < Druci/M < Drucie/M < Drucill/M < Drucy/M < Drud/M 4506,4509c3556 < Drugi/M < Druid < Drusi/M < Drusie/M --- > Druid/M 4511,4512c3558 < Drusy/M < Dryden --- > Dryden/M 4515c3561 < DuPont --- > DuPont/M 4517c3563 < Dubai --- > Dubai/M 4522,4524c3568,3569 < Duchamp < Dud/M < Dudley --- > Duchamp/M > Dudley/M 4529c3574 < Duisburg --- > Duisburg/M 4531,4533d3575 < Dukey/M < Dukie/M < Duky/M 4535,4538d3576 < Dulcea/M < Dulci/M < Dulcia/M < Dulciana/M 4540d3577 < Dulcine/M 4542,4546c3579,3581 < Dulcy/M < Dulles < Dulsea/M < Duluth < Dumas --- > Dulles/M > Duluth/M > Dumas/M 4549,4554c3584,3587 < Dumpster < Dun/M < Dunant < Dunbar < Dunc/M < Duncan --- > Dumpster/M > Dunant/M > Dunbar/M > Duncan/M 4556c3589 < Dunedin --- > Dunedin/M 4566c3599 < Durant --- > Durant/M 4568,4569c3601,3602 < Durban < Durer --- > Durban/M > Durer/M 4572,4573c3605,3606 < Durkheim < Duroc --- > Durkheim/M > Duroc/M 4584c3617 < Dutchmen --- > Dutchmen/M 4586,4589c3619,3622 < Duvalier < Dvina < Dvorak < Dwain/M --- > Duvalier/M > Dvina/M > Dvorak/M > Dvorák/M 4594,4598d3626 < Dyana/M < Dyane/M < Dyann/M < Dyanna/M < Dyanne/M 4602d3629 < Dynah/M 4605c3632,3634 < Dzungaria --- > Dzungaria/M > Dürer/M > Düsseldorf/M 4630c3659,3660 < ESPN --- > ESPN/M > ESR 4636,4637c3666 < Eachelle/M < Eada/M --- > EULA/S 4639,4641c3668 < Eadith/M < Eadmund/M < Eakins --- > Eakins/M 4643d3669 < Ealasaid/M 4645c3671 < Earhart --- > Earhart/M 4649d3674 < Earlie/M 4651c3676 < Early/M --- > Early's 4656,4658d3680 < Earth/M < Eartha/M < Earvin/M 4662c3684 < Eastman --- > Eastman/M 4671d3692 < Ebeneser/M 4674,4677c3695,3696 < Ebert < Eberto/M < Ebola < Ebonee/M --- > Ebert/M > Ebola/M 4681c3700 < Ecclesiastes --- > Ecclesiastes/M 4688c3707 < Ecuadorian/MS --- > Ecuadorian/SM 4692d3710 < Edan/M 4694,4695c3712 < Edda < Eddi/M --- > Edda/M 4700,4701d3716 < Edee/M < Edeline/M 4703c3718 < Edgar --- > Edgar/M 4708d3722 < Edik/M 4712d3725 < Edita/M 4715,4716d3727 < Edithe/M < Ediva/M 4718d3728 < Edmon/M 4724c3734 < Edsel --- > Edsel/M 4727d3736 < Eduino/M 4732c3741,3742 < Edwin --- > Edwards/M > Edwin/M 4735d3744 < Edyth/M 4751,4753c3760,3762 < Ehrlich < Eichmann < Eiffel --- > Ehrlich/M > Eichmann/M > Eiffel/M 4755,4756d3763 < Eilis/M < Eimile/M 4759d3765 < Eirena/M 4761c3767 < Eisenstein --- > Eisenstein/M 4766,4767c3772,3773 < Elaine < Elam --- > Elaine/M > Elam/M 4769d3774 < Elane/M 4773c3778 < Elba --- > Elba/M 4775,4779c3780,3781 < Elbert < Elberta/M < Elbertina/M < Elbertine/M < Elbrus --- > Elbert/M > Elbrus/M 4783d3784 < Eldorado 4791d3791 < Eleen/M 4795d3794 < Elenore/M 4798d3796 < Elfie/M 4801,4804c3799,3800 < Elfrieda/M < Elga/M < Elgar < Eli --- > Elgar/M > Eli/M 4806,4808c3802 < Elianora/M < Elianore/M < Elicia/M --- > Elias/M 4813,4814c3807 < Elinore/M < Eliot --- > Eliot/M 4817c3810 < Elisabeth --- > Elisabeth/M 4821c3814 < Elisha --- > Elisha/M 4823d3815 < Elita/M 4825d3816 < Elizabet/M 4827,4828c3818 < Elizabethan/MS < Elka/M --- > Elizabethan/SM 4831,4832d3820 < Elladine/M < Ellary/M 4835,4836d3822 < Ellene/M < Ellerey/M 4839d3824 < Ellette/M 4842c3827 < Ellington --- > Ellington/M 4845c3830 < Ellis --- > Ellis/M 4847,4848d3831 < Ellissa/M < Ellswerth/M 4853d3835 < Ellynn/M 4859,4860d3840 < Elna/MH < Elnar/M 4863,4864c3843 < Elnore/M < Elohim --- > Elohim/M 4867,4868d3845 < Elonore/M < Elora/M 4873,4874c3850 < Else/M < Elset/M --- > Else's 4877d3852 < Elsi/M 4879c3854 < Elsinore --- > Elsinore/M 4882,4883d3856 < Elsworth/M < Elsy/M 4888d3860 < Elvera/M 4891d3862 < Elvina/M 4894d3864 < Elvyn/M 4897d3866 < Elwira/M 4900d3868 < Elyn/M 4903,4905c3871 < Elysha/M < Elysia < Elysian --- > Elysian/M 4908c3874 < Em/M --- > Elysée/M 4911,4912d3876 < Emalee/M < Emalia/M 4915,4918d3878 < Emelda/M < Emelen/M < Emelia/M < Emelina/M 4920,4923c3880 < Emelita/M < Emelyne/M < Emera/M < Emerson --- > Emerson/M 4927,4928d3883 < Emilee/M < Emili/M 4931d3885 < Emiline/M 4938,4939d3891 < Emlynn/M < Emlynne/M 4941d3892 < Emmalee/M 4943,4946c3894 < Emmalyn/M < Emmalynn/M < Emmalynne/M < Emmanuel --- > Emmanuel/M 4949d3896 < Emmery/M 4952,4953d3898 < Emmey/M < Emmi/M 4955,4959c3900 < Emmit/M < Emmott/M < Emmy < Emmye/M < Emogene/M --- > Emmy/M 4961,4962d3901 < Emyle/M < Emylee/M 4965,4967c3904,3905 < Endymion < Eng < Engadget/M --- > Endymion/M > Eng/M 4971d3908 < Englebert/M 4974c3911 < Englishmen --- > Englishmen/M 4976,4978c3913,3914 < Englishwomen < Engracia/M < Enid --- > Englishwomen/M > Enid/M 4983,4984c3919,3920 < Enoch < Enos --- > Enoch/M > Enos/M 4986d3921 < Enrichetta/M 4988d3922 < Enrika/M 4990d3923 < Enriqueta/M 4994,4995d3926 < Eolanda/M < Eolande/M 4997,5000c3928,3930 < Ephesian/S < Ephesus < Ephraim < Ephrayim/M --- > Ephesian/MS > Ephesus/M > Ephraim/M 5002,5003c3932,3933 < Epictetus < Epicurean --- > Epictetus/M > Epicurean/M 5006d3935 < Epinions/M 5011c3940 < Epsom --- > Epsom/M 5013,5014c3942,3943 < Epstein < Equuleus --- > Epstein/M > Equuleus/M 5023,5025c3952 < Erector < Erek/M < Erena/M --- > Erector/M 5027,5028c3954 < Erhard < Erhart/M --- > Erhard/M 5032d3957 < Ericha/M 5036,5039c3961,3964 < Ericson < Ericsson < Eridanus < Erie --- > Ericson/M > Ericsson/M > Eridanus/M > Erie/M 5042,5046c3967 < Eriksson < Erin < Erina/M < Erinn/M < Erinna/M --- > Erin/M 5053,5059d3973 < Ermanno/M < Ermengarde/M < Ermentrude/M < Ermin/M < Ermina/M < Erminia/M < Erminie/M 5061d3974 < Ernaline/M 5063d3975 < Ernesta/M 5066d3977 < Ernestus/M 5068,5069c3979 < Ernst < Erny/M --- > Ernst/M 5071d3980 < Errick/M 5076d3984 < Ertha/M 5080d3987 < Eryn/M 5087,5088d3993 < Esma/M < Esmaria/M 5096d4000 < Esra/M 5099,5101c4003,4005 < Essene < Essequibo < Essex --- > Essene/M > Essequibo/M > Essex/M 5103d4006 < Essy/M 5107d4009 < Estel/M 5109,5110d4010 < Estele/M < Estell/M 5115c4015,4016 < Estes --- > Esterházy/M > Estes/M 5122,5123d4022 < Estrellita/M < Etan/M 5125d4023 < Ethe/M 5128,5131d4025 < Ethelda/M < Ethelin/M < Ethelind/M < Etheline/M 5134c4028 < Ethernet --- > Ethernet/M 5137d4030 < Ethyl/M 5140,5142c4033,4035 < Eton < Etruria < Etruscan --- > Eton/M > Etruria/M > Etruscan/M 5144d4036 < Etti/M 5152c4044 < Euclidean --- > Euclidean/M 5154d4045 < Euell/M 5156c4047 < Eugene --- > Eugene/M 5161,5162d4051 < Eugine/M < Eukaryota/MS 5165c4054 < Euler --- > Euler/M 5173,5174c4062,4063 < Euripides < Eurodollar/MS --- > Euripides/M > Eurodollar/SM 5183c4072 < Ev/MN --- > Ev/M 5185d4073 < Evaleen/M 5187d4074 < Evangelia/M 5189d4075 < Evangelin/M 5192,5195c4078,4080 < Evangelist < Evania/M < Evanne/M < Evansville --- > Evangelist/M > Evans/M > Evansville/M 5197,5198d4081 < Eveleen/M < Evelin/M 5201,5202c4084 < Evelyn < Even/M --- > Evelyn/M 5206d4087 < Evered/M 5217,5219d4097 < Evonne/M < Evvie/M < Evvy/M 5221d4098 < Evyn/M 5223d4099 < Eward/M 5232c4108 < Exercycle --- > Exercycle/M 5238,5240c4114 < Eyde/M < Eydie/M < Eyre --- > Eyre/M 5242,5243c4116 < Ezechiel/M < Ezekiel --- > Ezekiel/M 5245,5248c4118 < Eziechiele/M < Ezmeralda/M < Ezra < Ezri/M --- > Ezra/M 5266a4137 > FSF/M 5270a4142 > FWIW 5273d4144 < Fabe/RM 5275c4146,4147 < Faberge --- > Faberge/M > Fabergé/M 5277d4148 < Fabiano/M 5283c4154 < Fafnir --- > Fafnir/M 5286,5289c4157,4158 < Fahrenheit < Faina/M < Fair/M < Fairbanks --- > Fahrenheit/M > Fairbanks/M 5294,5297c4163,4165 < Faisalabad < Faith < Falasha < Falito/M --- > Faisalabad/M > Faith/M > Falasha/M 5298a4167 > Falklands/M 5304,5309d4172 < Fan < Fanchette/M < Fanchon/M < Fancie/M < Fancy/M < Fanechka/M 5311d4173 < Fanni/M 5314,5315c4176 < Fanya/M < Far/MY --- > Far's 5319d4179 < Farand/M 5321,5324d4180 < Farica/M < Farlay/M < Farlee/M < Farleigh/M 5326,5328c4182 < Farlie/M < Farly/M < Farmer --- > Farmer/M 5330,5331c4184 < Farra/M < Farragut --- > Farragut/M 5340d4192 < Fascism 5345c4197 < Fates --- > Fates/M 5347,5348c4199,4200 < Fatima < Fatimid --- > Fatima/M > Fatimid/M 5350,5352c4202 < Faulknerian < Faun/M < Faunie/M --- > Faulknerian/M 5355c4205 < Faustian --- > Faustian/M 5357d4206 < Faustine/M 5360,5365c4209 < Favorited < Fawkes < Fawn/M < Fawne/M < Fawnia/M < Fax/M --- > Fawkes/M 5367d4210 < Faydra/M 5370d4212 < Fayina/M 5372,5373d4213 < Fayth/M < Faythe/M 5378c4218 < FedEx --- > FedEx/M 5381d4220 < Federica/M 5383,5384c4222 < Fedora/M < Fee/M --- > Feds/M 5386,5387d4223 < Felic/M < Felicdad/M 5390d4225 < Felicio/M 5392,5393d4226 < Felicle/M < Felike/M 5395d4227 < Felipa/M 5397,5398d4228 < Felisha/M < Felita/M 5400,5403c4230 < Feliza/M < Felizio/M < Fellini < Fenelia/M --- > Fellini/M 5405c4232 < Fenian --- > Fenian/M 5408d4234 < Feodora/M 5412,5414c4238 < Ferdinand < Ferdinanda/M < Ferdinande/M --- > Ferdinand/M 5416c4240 < Fergus --- > Fergus/M 5420c4244 < Fermi --- > Fermi/M 5432,5433c4256,4257 < Ferris < Fey/M --- > Ferris/M > Fey's 5435,5436c4259 < Fez < Fiann/M --- > Fez/M 5439c4262 < Fiberglas --- > Fiberglas/M 5441c4264 < Fichte --- > Fichte/M 5443d4265 < Fidela/M 5446d4267 < Fidelity/M 5448,5449c4269,4270 < Fidole/M < Field/GS --- > Fielding/M > Fields/M 5451d4271 < Fifine/M 5456,5460d4275 < Filbert/M < Filberte/M < Filberto/M < Filia/M < Filide/M 5463d4277 < Filippa/M 5468,5470c4282 < Filmore/M < Filofax < Fin --- > Filofax/M 5485,5487d4296 < Fionna/M < Fionnula/M < Fiorenze/M 5490,5491c4299,4300 < Fischer < Fisher --- > Fischer/M > Fisher/M 5495c4304 < Fitzgerald --- > Fitzgerald/M 5504c4313 < Flaubert --- > Flaubert/M 5506a4316 > Fleming/M 5509a4320 > Fletcher/M 5511d4321 < Fleurette/M 5515,5516c4325,4326 < Flint < Flintstones --- > Flint/M > Flintstones/M 5520,5521c4330 < Flora < Florance/M --- > Flora/M 5523d4331 < Florella/M 5526,5529c4334,4335 < Florentia/M < Florentine < Florenza/M < Flores --- > Florentine/M > Flores/M 5531,5532d4336 < Flori/SM < Floria/M 5535c4339 < Floridan --- > Floridan/M 5537,5538d4340 < Florie/M < Florina/M 5541c4343 < Florri/M --- > Floris 5543d4344 < Florry/M 5546d4346 < Flossi/M 5548,5551c4348,4350 < Flossy/M < Flowers < Floyd < Flss/M --- > Flossy's > Flowers/M > Floyd/M 5554,5560c4353,4359 < Foch < Fokker < Foley < Folgers < Folsom < Fomalhaut < Fonda --- > Foch/M > Fokker/M > Foley/M > Folgers/M > Folsom/M > Fomalhaut/M > Fonda/M 5562,5564d4360 < Fonsie/M < Fonz/M < Fonzie/M 5566c4362 < Forbes --- > Forbes/M 5569a4366 > Forester/M 5574c4371 < Forrest/R --- > Forrest/MR 5576,5577c4373,4374 < Forster < Fortaleza --- > Forster/M > Fortaleza/M 5580c4377 < Foster --- > Foster/M 5582,5583c4379,4380 < Foucault < Fourier --- > Foucault/M > Fourier/M 5586c4383 < Fowler --- > Fowler/M 5589c4386 < Fragonard --- > Fragonard/M 5592,5593c4389,4390 < Francene/M < Francesca --- > Frances/M > Francesca/M 5595d4391 < Franchot/M 5597c4393 < Francis --- > Francis/M 5599c4395 < Franciscan/SM --- > Franciscan/MS 5601,5606c4397,4398 < Franciska/M < Franciskus/M < Franck < Francklin/M < Francklyn/M < Franco --- > Franck/M > Franco/M 5609,5610c4401,4402 < Francyne/M < Franglais --- > Francophile > Franglais/M 5613c4405 < Frankenstein --- > Frankenstein/M 5615a4408 > Frankfurter/M 5618c4411 < Franklin --- > Franklin/M 5619a4413 > Franks/M 5621d4414 < Franni/M 5625d4417 < Frants/M 5628,5629c4420 < Frasco/M < Fraser --- > Fraser/M 5631d4421 < Frasquito/M 5634,5635c4424 < Frayda/M < Fraze/RM --- > Frazer 5639d4427 < Freddi/M 5642,5643d4429 < Fredek/M < Fredelia/M 5647,5648c4433 < Frederick < Fredericka/M --- > Frederick/M 5651d4435 < Frederigo/M 5654,5656d4437 < Fredi/M < Fredia/M < Fredra/M 5660c4441 < Free/M --- > Free's 5662d4442 < Freedman/M 5667d4446 < Freemon/M 5670c4449 < Fremont --- > Fremont/M 5673c4452 < Frenchmen --- > Frenchmen/M 5675,5676c4454,4455 < Frenchwomen < Freon --- > Frenchwomen/M > Freon/M 5680c4459 < Freudian --- > Freudian/M 5686c4465 < Friedan --- > Friedan/M 5688c4467 < Friedman --- > Friedman/M 5690d4468 < Friedrick/M 5693,5695c4471,4473 < Frigidaire < Frisbee < Frisco --- > Frigidaire/M > Frisbee/M > Frisco/M 5699,5702c4477,4481 < Frobisher < Froissart < Fromm < Fronde --- > Frobisher/M > Frodo/M > Froissart/M > Fromm/M > Fronde/M 5706c4485 < Frostbelt --- > Frostbelt/M 5708c4487 < Fry --- > Fry/M 5711,5712c4490,4491 < Fuentes < Fugger --- > Fuentes/M > Fugger/M 5717a4497,4498 > Fukushima/M > Fukuyama/M 5719,5721c4500,4502 < Fulbright < Fuller < Fullerton --- > Fulbright/M > Fuller/M > Fullerton/M 5724,5725c4505,4506 < Funafuti < Fundy --- > Funafuti/M > Fundy/M 5728c4509,4510 < Fushun --- > Furtwängler/M > Fushun/M 5730c4512 < Fuzzbuster --- > Fuzzbuster/M 5735a4518 > GCC/M 5741a4525 > GIF 5743c4527 < GM --- > GM/M 5746a4531 > GNU/M 5750a4536,4537 > GPS > GPU 5757,5759d4543 < Gabbey/M < Gabbi/M < Gabbie/M 5762d4545 < Gabey/M 5764c4547 < Gabie/M --- > Gable/M 5768c4551 < Gabriel --- > Gabriel/M 5771d4553 < Gabriell/M 5774,5776d4555 < Gabriellia/M < Gabriello/M < Gabrila/M 5779d4557 < Gaddafi 5784d4561 < Gaelan/M 5786,5787c4563,4565 < Gagarin < Gage --- > Gagarin/M > Gage/M > Gaia/M 5789d4566 < Gaile/M 5793d4569 < Gal/N 5796,5798c4572,4574 < Galatea < Galatia < Galatians --- > Galatea/M > Galatia/M > Galatians/M 5800c4576 < Galbraith --- > Galbraith/M 5802,5803c4578,4579 < Galen < Galibi --- > Galen/M > Galibi/M 5805c4581 < Galilee --- > Galilee/M 5810d4585 < Gallard/M 5812c4587 < Gallic --- > Gallic/M 5816c4591 < Gallup --- > Gallup/M 5818c4593 < Galsworthy --- > Galsworthy/M 5820,5821c4595 < Galvani < Galven/M --- > Galvani/M 5826c4600 < Gamay --- > Gamay/M 5834a4609 > Gandalf/M 5836c4611 < Gandhian --- > Gandhian/M 5840d4614 < Gannie/M 5842d4615 < Ganny/M 5846,5848c4619 < Gar/MH < Garald/M < Garbo --- > Garbo/M 5851,5852d4621 < Gardener/M < Gardie/M 5855d4623 < Gardy/M 5857d4624 < Garek/M 5862c4629 < Gargantua --- > Gargantua/M 5864,5870c4631,4632 < Garik/M < Garland < Garmin/M < Garner < Garnet/M < Garnette/M < Garold/M --- > Garland/M > Garner/M 5872,5874d4633 < Garrek/M < Garret/M < Garreth/M 5876,5880c4635,4636 < Garrick < Garrik/M < Garrison < Garrot/M < Garrott/M --- > Garrick/M > Garrison/M 5883,5884c4639 < Garv/M < Garvey --- > Garvey/M 5886,5887d4640 < Garvy/M < Garwin/M 5889c4642 < Gary --- > Gary/M 5896c4649 < Gasser --- > Gasser/M 5898c4651,4652 < Gates --- > Gastroenterology > Gates/M 5906d4659 < Gaultiero/M 5908c4661 < Gaussian --- > Gaussian/M 5911c4664 < Gautier --- > Gautier/M 5916,5917d4668 < Gavra/M < Gavrielle/M 5919,5920c4670 < Gawen/M < Gay --- > Gay/M 5922,5929c4672 < Gayel/M < Gayelord/M < Gayla/M < Gayle/RM < Gayleen/M < Gaylene/M < Gayler/M < Gaylor/M --- > Gayle/M 5932,5933c4675,4676 < Gaza < Gaziantep --- > Gaza/M > Gaziantep/M 5938,5939d4680 < Gearalt/M < Gearard/M 5941d4681 < Geer/M 5944c4684 < Gehrig --- > Gehrig/M 5948d4687 < Gelya/M 5949a4689 > Gen/M 5962,5964d4701 < Genni/M < Gennie/M < Gennifer/M 5968,5970c4705 < Genovera/M < Gentile/MS < Gentoo --- > Gentoo/M 5972d4706 < Genvieve/M 5976,5977d4709 < Geoffry/M < Georas/M 5981,5984d4712 < Georgeanna/M < Georgeanne/M < Georgena/M < Georgeta/M 5986,5987c4714 < Georgetta/M < Georgette --- > Georgette/M 5993d4719 < Georgianne/M 5996d4721 < Georgine/M 5997a4723 > Ger/M 5999d4724 < Geralda/M 6005c4730 < Gerek/M --- > Gere/M 6007d4731 < Gerhardine/M 6010,6013d4733 < Gerianna/M < Gerianne/M < Gerick/M < Gerik/M 6015d4734 < Gerladina/M 6019d4737 < Germana/M 6022d4739 < Germayne/M 6024c4741 < Geronimo --- > Geronimo/M 6027,6028d4743 < Gerrie/M < Gerrilee/M 6030c4745 < Gershwin --- > Gershwin/M 6032,6033d4746 < Gerta/M < Gerti/M 6036d4748 < Gertruda/M 6042,6043c4754,4755 < Gethsemane < Getty --- > Gethsemane/M > Getty/M 6045c4757,4758 < Gewurztraminer --- > Gewurztraminer/M > Gewürztraminer/M 6048,6049c4761 < Ghanian/MS < Ghats --- > Ghats/M 6051,6056c4763,4765 < Ghent < Gherardo/M < Ghibelline < Giacinta/M < Giacobo/M < Giacometti --- > Ghent/M > Ghibelline/M > Giacometti/M 6058d4766 < Giacopo/M 6060,6061d4767 < Giana/M < Gianina/M 6066d4771 < Giavani/M 6069,6072c4774,4775 < Gibbie/M < Gibbon < Gibbs < Gibby/M --- > Gibbon/M > Gibbs/M 6074,6077c4777,4780 < Gibson < Gide < Gideon < Gielgud --- > Gibson/M > Gide/M > Gideon/M > Gielgud/M 6079c4782 < Giff/MR --- > Giff/M 6081,6082d4783 < Giffer/M < Giffie/M 6084d4784 < Giffy/M 6089d4788 < Gilberta/M 6091,6092d4789 < Gilbertina/M < Gilbertine 6094d4790 < Gilburt/M 6097,6101c4793,4796 < Gilead < Gilemette/M < Giles < Gilgamesh < Gill --- > Gilead/M > Giles/M > Gilgamesh/M > Gill/M 6104c4799 < Gillespie --- > Gillespie/M 6106d4800 < Gilli/M 6109c4803 < Gillie/M --- > Gillie's 6111a4806 > Gilman 6114d4808 < Ginelle/M 6118d4811 < Ginni/M 6120d4812 < Ginnifer/M 6123c4815 < Ginsberg --- > Ginsberg/M 6128d4819 < Giorgia/M 6130,6131c4821,4822 < Giorgione < Giotto --- > Giorgione/M > Giotto/M 6134,6136d4824 < Gipsy/SM < Giralda/M < Giraldo/M 6138c4826 < Giraudoux --- > Giraudoux/M 6140d4827 < Giselbert/M 6142d4828 < Gisella/M 6144,6145c4830,4831 < Gish < Giuditta/M --- > Gish/M > GitHub/M 6151,6152d4836 < Giustina/M < Giustino/M 6155d4838 < Gizela/M 6157,6158d4839 < Glad/M < Gladi/M 6160,6161c4841,4842 < Gladys < Glaser --- > Gladys/M > Glaser/M 6168d4848 < Gleda/M 6172d4851 < Glenden/M 6174d4852 < Glenine/M 6179,6181c4857 < Glennis/M < Glori/M < Gloria --- > Gloria/M 6183,6185c4859 < Gloriane/M < Glory/M < Gloucester --- > Gloucester/M 6189d4862 < Glynda/M 6192d4864 < Glynnis/M 6194,6195c4866 < Gnni/M < Gnostic --- > Gnostic/M 6197c4868,4869 < Goa --- > GnuPG > Goa/M 6200,6203c4872,4873 < Godard < Godart/M < Goddard < Goddart/M --- > Godard/M > Goddard/M 6205d4874 < Godfree/M 6207d4875 < Godfry/M 6212,6213c4880,4881 < Godthaab < Godunov --- > Godthaab/M > Godunov/M 6216,6217c4884,4885 < Goebbels < Goering --- > Goebbels/M > Goering/M 6221,6222c4889,4890 < Gog < Gogol --- > Gog/M > Gogol/M 6225c4893 < Golconda --- > Golconda/M 6227d4894 < Goldarina/M 6230,6231d4896 < Goldi/M < Goldia/M 6234,6235c4899 < Goldina/M < Golding --- > Golding/M 6237c4901 < Goldsmith --- > Goldsmith/M 6239c4903 < Goldwyn --- > Goldwyn/M 6241c4905 < Golgi --- > Golgi/M 6243c4907 < Goliath --- > Goliath/M 6246,6247c4910,4911 < Gompers < Gomulka --- > Gompers/M > Gomulka/M 6249c4913 < Gonzales --- > Gonzales/M 6252d4915 < Goober/M 6255c4918 < Goodman --- > Goodman/M 6259c4922 < Goodyear --- > Goodyear/M 6264,6265c4927 < Goraud/M < Gorbachev --- > Gorbachev/M 6270,6271c4932,4933 < Gordimer < Gordon --- > Gordimer/M > Gordon/M 6273c4935 < Gore --- > Gore/M 6276c4938 < Gorgas --- > Gorgas/M 6278c4940 < Gorgonzola --- > Gorgonzola/M 6283,6284c4945 < Gotham < Gothart/M --- > Gotham/M 6289,6290c4950,4951 < Gould < Gounod --- > Gould/M > Gounod/M 6292c4953 < Goya --- > Goya/M 6295,6296c4956,4957 < Gracchus < Grace --- > Gracchus/M > Grace/M 6301,6302d4961 < Gradeigh/M < Gradey/M 6304d4962 < Graehme/M 6308,6315c4966,4971 < Graham < Grahame < Graig/M < Grail < Gram/M < Grammy < Grampians < Gran/M --- > Graham/M > Grahame/M > Grail/M > Grammy/M > Grampians/M > Gran's 6319d4974 < Granny/M 6322d4976 < Granthem/M 6325c4979 < Grass --- > Grass/M 6328,6331c4982,4983 < Gratiana/M < Graves < Gray < Grayce/M --- > Graves/M > Gray/M 6333c4985 < Grecian --- > Grecian/M 6336c4988 < Greeley --- > Greeley/M 6338c4990 < Greene --- > Greene/M 6349d5000 < Greggory/M 6351d5001 < Gregoor/M 6353c5003 < Gregorian --- > Gregorian/M 6359,6361c5009,5011 < Grenadines < Grendel < Grenoble --- > Grenadines/M > Grendel/M > Grenoble/M 6363c5013 < Gresham --- > Gresham/M 6365d5014 < Gretal/M 6369d5017 < Grethel/M 6373,6374c5021,5022 < Grey < Grieg --- > Grey/M > Grieg/M 6377d5024 < Griffie/M 6379c5026 < Griffith --- > Griffith/M 6381,6382c5028 < Griffy/M < Grimes --- > Grimes/M 6385c5031 < Gris --- > Gris/M 6387d5032 < Grissel/M 6389,6390c5034 < Griz/M < Gromyko --- > Gromyko/M 6392,6395c5036,5038 < Gross < Grosz < Grotius < Grove/RM --- > Gross/M > Grosz/M > Grotius/M 6399c5042 < Grundy --- > Grundy/M 6402a5046,5047 > Gruyère/M > Grünewald/M 6405c5050 < Guadalquivir --- > Guadalquivir/M 6409d5053 < Gualterio/M 6417c5061 < Guatemalan/SM --- > Guatemalan/MS 6420,6421c5064 < Guelph < Guendolen/M --- > Guelph/M 6423d5065 < Guenna/M 6426,6429c5068,5070 < Guerrero < Guevara < Guggenheim < Guglielma/M --- > Guerrero/M > Guevara/M > Guggenheim/M 6437,6438d5077 < Guillema/M < Guillemette/M 6443d5081 < Guinna/M 6445,6446c5083,5084 < Guiyang < Guizot --- > Guiyang/M > Guizot/M 6449,6450c5087,5088 < Gujranwala < Gullah --- > Gujranwala/M > Gullah/M 6453,6454d5090 < Gun/M < Gunar/M 6456,6457d5091 < Gunner/M < Guntar/M 6459c5093 < Gunther --- > Gunther/M 6464,6466d5097 < Gusella/M < Guss < Gussi/M 6468c5099 < Gussy/M --- > Gussy's 6476,6481c5107,5109 < Gustie/M < Gusty/M < Gutenberg < Guthrey/M < Guthrie < Guthry/M --- > Gusty's > Gutenberg/M > Guthrie/M 6487c5115 < Gwalior --- > Gwalior/M 6490d5117 < Gwendolin/M 6493,6500d5119 < Gweneth/M < Gwenette/M < Gwenneth/M < Gwenni/M < Gwennie/M < Gwenny/M < Gwenora/M < Gwenore/M 6504a5124,5125 > Gödel/M > Göteborg/M 6506c5127,5129 < HBO --- > HBO/M > HDD > HDMI 6516a5140 > HPV 6528c5152 < Ha --- > Ha/M 6530c5154 < Habakkuk --- > Habakkuk/M 6532c5156 < Had/M --- > Had's 6535d5158 < Hadlee/M 6539c5162 < Hadrian --- > Hadrian/M 6542c5165 < Hagar --- > Hagar/M 6544c5167 < Haggai --- > Haggai/M 6546,6547c5169,5170 < Hague < Hahn --- > Hague/M > Hahn/M 6550d5172 < Hailee/M 6552,6553c5174 < Haily/M < Haiphong --- > Haiphong/M 6559c5180 < Hakluyt --- > Hakluyt/M 6561,6565c5182,5184 < Haldane < Hale < Haleakala < Haleigh/M < Halette/M --- > Haldane/M > Hale/M > Haleakala/M 6568d5186 < Halie/M 6570,6573c5188,5189 < Halimeda/M < Hall < Halley < Halli/M --- > Hall/M > Halley/M 6578,6579c5194 < Hallstatt < Hallsy/M --- > Hallstatt/M 6582,6583c5197,5198 < Halsey < Halsy/M --- > Hals/M > Halsey/M 6589c5204 < Hamhung --- > Hamhung/M 6595c5210 < Hamiltonian --- > Hamiltonian/M 6598,6599c5213 < Hamlen/M < Hamlet --- > Hamlet/M 6602,6603c5216,5217 < Hammarskjold < Hammerstein --- > Hammarskjold/M > Hammerstein/M 6605,6607c5219,5220 < Hammond < Hammurabi < Hamnet/M --- > Hammond/M > Hammurabi/M 6609,6611c5222,5224 < Hampton < Hamsun < Han/S --- > Hampton/M > Hamsun/M > Han/SM 6614c5227 < Hancock --- > Hancock/M 6616c5229 < Handy --- > Handy/M 6623c5236 < Hanni/SM --- > Hanni/M 6625,6626d5237 < Hannie/M < Hanny/M 6629a5241 > Hans/MN 6632d5243 < Hansiain/M 6634a5246 > Hanukah/M 6637c5249 < Happy/M --- > Happy's 6642c5254 < Harbin --- > Harbin/M 6646,6647c5258,5259 < Hardy < Hargreaves --- > Hardy/M > Hargreaves/M 6651,6656c5263,5264 < Harlen/M < Harlene/M < Harlequin < Harley < Harli/M < Harlie/M --- > Harlequin/M > Harley/M 6658c5266 < Harlow --- > Harlow/M 6663d5270 < Harmony/M 6666d5272 < Harp/MR 6671d5276 < Harrie/M 6674d5278 < Harrietta/M 6678a5283 > Harris/M 6681c5286 < Harrods --- > Harrods/M 6683,6684c5288,5289 < Hart < Harte --- > Hart/M > Harte/M 6692c5297 < Harvey --- > Harvey/M 6694d5298 < Harwilll/M 6696d5299 < Hasheem/M 6698,6699c5301 < Hasidim < Haskel/M --- > Hasidim/M 6705,6707c5307,5309 < Hasty/M < Hatfield < Hathaway --- > Hasty's > Hatfield/M > Hathaway/M 6709c5311 < Hatteras --- > Hatteras/M 6713c5315 < Hauptmann --- > Hauptmann/M 6717,6719c5319,5320 < Havarti < Havel < Haven/M --- > Havarti/M > Havel/M 6724,6725c5325,5326 < Hawking < Hawkins --- > Hawking/M > Hawkins/M 6727c5328 < Hawthorne --- > Hawthorne/M 6731a5333 > Hayek/M 6734,6735c5336,5338 < Haynes < Hayward --- > Haynes/M > Hays/M > Hayward/M 6739d5341 < Haze/M 6742c5344 < Hazlitt --- > Hazlitt/M 6745,6747c5347,5348 < Heall/M < Hearst < Heath/R --- > Hearst/M > Heath/MR 6749,6750c5350 < Heaven/MS < Heaviside --- > Heaviside/M 6752c5352 < Hebe --- > Hebe/M 6754c5354 < Hebraic --- > Hebraic/M 6756a5357 > Hebrews/M 6758c5359 < Hecate --- > Hecate/M 6760,6761c5361 < Hecuba < Heda/M --- > Hecuba/M 6763,6764d5362 < Heddi/M < Heddie/M 6766,6767d5363 < Hedvig/M < Hedvige/M 6769d5364 < Hedwiga/M 6774,6778c5369,5372 < Hegelian < Hegira < Heida/M < Heidegger < Heidelberg --- > Hegelian/M > Hegira/M > Heidegger/M > Heidelberg/M 6780,6781c5374 < Heidie/M < Heifetz --- > Heifetz/M 6783,6784c5376 < Heindrick/M < Heine --- > Heine/M 6788,6791c5380,5381 < Heinrick/M < Heinrik/M < Heinz < Heisenberg --- > Heinz/M > Heisenberg/M 6793c5383 < Hejira/MS --- > Hejira's 6795d5384 < Helaine/M 6799d5387 < Helenka/M 6802,6803c5390,5391 < Helicon < Heliopolis --- > Helicon/M > Heliopolis/M 6805d5392 < Hell/SMR 6810,6813c5397,5400 < Hellenistic < Hellenization < Hellenize/DSG < Heller --- > Hellenistic/M > Hellenization/M > Hellenize/MD > Heller/M 6815,6816c5402 < Helli/M < Hellman --- > Hellman/M 6819d5404 < Helsa/M 6824d5408 < Helyn/M 6828a5413 > Hendricks/M 6830,6833c5415,5416 < Hendrika/M < Hendrix < Henka/M < Henley --- > Hendrix/M > Henley/M 6836,6837d5418 < Henrie/M < Henrieta/M 6842d5422 < Henryetta/M 6845c5425 < Hepburn --- > Hepburn/M 6848c5428 < Hepplewhite --- > Hepplewhite/M 6851c5431 < Heraclitus --- > Heraclitus/M 6853,6855c5433,5434 < Herb/M < Herbart < Herbert --- > Herbart/M > Herbert/M 6863,6864c5442 < Herculie/M < Herder --- > Herder/M 6866c5444 < Herero --- > Herero/M 6870c5448 < Hermaphroditus --- > Hermaphroditus/M 6873,6874d5450 < Hermie/M < Hermina/M 6878c5454 < Hermitage --- > Hermitage/M 6882d5457 < Hermy/M 6890c5465 < Herrick --- > Herrick/M 6893c5468 < Herschel --- > Herschel/M 6905,6906c5480,5481 < Herzegovina < Herzl --- > Herzegovina/M > Herzl/M 6908,6912c5483,5487 < Hesiod < Hesperus < Hess < Hesse < Hessian --- > Hesiod/M > Hesperus/M > Hess/M > Hesse/M > Hessian/M 6914d5488 < Hesther/M 6917d5490 < Hetti/M 6920,6922c5493 < Hew/M < Hewe/M < Hewet/M --- > Hew's 6924d5494 < Hewie/M 6927,6928c5497,5498 < Heyerdahl < Heywood --- > Heyerdahl/M > Heywood/M 6930c5500 < Hezekiah --- > Hezekiah/M 6933,6934c5503,5504 < Hi/M < Hialeah --- > Hi's > Hialeah/M 6939c5509 < Hickok --- > Hickok/M 6941c5511 < Hieronymus --- > Hieronymus/M 6944c5514 < Highlander/MS --- > Highlander/SM 6948d5517 < Hilarius/M 6950c5519 < Hilbert --- > Hilbert/M 6952,6953d5520 < Hildagard/M < Hildagarde/M 6955,6956c5522 < Hildebrand < Hildegaard/M --- > Hildebrand/M 6960c5526 < Hill --- > Hill/M 6962,6963c5528,5529 < Hillary < Hillel --- > Hillary/M > Hillel/M 6966,6967d5531 < Hilliary/M < Hillie/M 6970c5534 < Hilly/RM --- > Hilly's 6972c5536 < Hilton --- > Hilton/M 6975c5539,5540 < Himmler --- > Himalayas/M > Himmler/M 6977,6980c5542,5544 < Hinda/M < Hindemith < Hindenburg < Hindi --- > Hindemith/M > Hindenburg/M > Hindi/M 6985c5549 < Hines --- > Hines/M 6988c5552 < Hipparchus --- > Hipparchus/M 6990,6991c5554,5555 < Hippocratic < Hiram --- > Hippocratic/M > Hiram/M 6993c5557 < Hirohito --- > Hirohito/M 7000c5564 < Hitchcock --- > Hitchcock/M 7003c5567 < Hmong --- > Hmong/M 7005d5568 < Hobard/M 7007,7009c5570,5571 < Hobbes < Hobbs < Hobey/M --- > Hobbes/M > Hobbs/M 7013,7014c5575,5576 < Hodgkin < Hoebart/M --- > Hodges/M > Hodgkin/M 7020c5582 < Hogarth --- > Hogarth/M 7022,7023c5584,5585 < Hohenlohe < Hohenstaufen --- > Hohenlohe/M > Hohenstaufen/M 7026c5588 < Hohokam --- > Hohokam/M 7028,7029c5590,5591 < Hokusai < Holbein --- > Hokusai/M > Holbein/M 7033c5595 < Holiday --- > Holiday/M 7039d5600 < Holli/SM 7040a5602 > Hollis/M 7042,7043c5604 < Holly < Hollyanne/M --- > Holly/M 7047c5608 < Holocaust --- > Holocaust/M 7049c5610 < Holst --- > Holst/M 7051c5612 < Holt --- > Holt/M 7053,7055c5614 < Homere/M < Homeric < Homerus/M --- > Homeric/M 7061d5619 < Honey/M 7063c5621,5622 < Honiara --- > Hong > Honiara/M 7065c5624 < Honor/B --- > Honorable 7068,7069c5627,5629 < Hood < Hooke/R --- > Hood/M > Hooke/RM > Hooker/M 7074c5634 < Hope --- > Hope/M 7077,7079c5637,5639 < Hopkins < Hopper < Horace --- > Hopkins/M > Hopper/M > Horace/M 7085,7086c5645,5646 < Hormuz < Horn --- > Hormuz/M > Horn/M 7089c5649 < Horowitz --- > Horowitz/M 7091,7092c5651 < Hort/MN < Horten/M --- > Hort/M 7095c5654 < Horthy --- > Horthy/M 7103c5662 < Houdini --- > Houdini/M 7105,7106c5664,5665 < House < Housman --- > House/M > Housman/M 7110,7111c5669,5670 < Howard < Howe --- > Howard/M > Howe/M 7112a5672 > Howells/M 7116c5676 < Hoyle --- > Hoyle/M 7120,7121c5680,5681 < Huang < Hubbard --- > Huang/M > Hubbard/M 7123d5682 < Hube/RM 7126,7128d5684 < Huberto/M < Hubey/M < Hubie/M 7136c5692 < Huggins --- > Huggins/M 7137a5694 > Hughes/M 7139d5695 < Hugibert/M 7143c5699 < Hui --- > Hui/M 7149,7150c5705,5706 < Humboldt < Hume --- > Humboldt/M > Hume/M 7152,7153d5707 < Humfrid/M < Humfried/M 7155,7156c5709,5710 < Humphrey < Humvee --- > Humphrey/SM > Humvee/M 7158,7159c5712 < Hunfredo/M < Hung --- > Hung/M 7163c5716 < Hunt/R --- > Hunt/MR 7166d5718 < Huntlee/M 7168,7170c5720 < Huntsville < Hurlee/M < Hurleigh/M --- > Huntsville/M 7172c5722 < Huron --- > Huron/M 7174c5724 < Hus --- > Hus/M 7176,7180c5726,5730 < Hussein < Husserl < Hussite < Huston < Hutchinson --- > Hussein/M > Husserl/M > Hussite/M > Huston/M > Hutchinson/M 7182c5732 < Hutu --- > Hutu/M 7184c5734 < Huygens --- > Huygens/M 7186,7187d5735 < Hyacinth/M < Hyacintha/M 7189,7190d5736 < Hyacinthia/M < Hyacinthie/M 7193,7194c5739,5740 < Hyde < Hyderabad --- > Hyde/M > Hyderabad/M 7199d5744 < Hynda/M 7202a5748 > Héloise/M 7213a5760 > IDE 7214a5762,5763 > IED > IEEE 7227a5777 > IP 7229c5779 < IPO/MS --- > IPO/SM 7231a5782 > IRC 7234c5785,5787 < ISO --- > ISO/M > ISP > ISS 7237a5791 > IVF 7245,7247c5799 < Ibadan < Ibbie/M < Ibby/M --- > Ibadan/M 7249,7250c5801,5802 < Iberian < Ibiza --- > Iberian/M > Ibiza/M 7252c5804 < Ibo --- > Ibo/M 7262c5814 < Ida --- > Ida/M 7266,7273c5818 < Idalia/M < Idalina/M < Idaline/M < Idell/M < Idelle/M < Idette/M < Ieyasu < Iggie/M --- > Ieyasu/M 7277,7278c5822 < Ignacius/M < Ignatius --- > Ignatius/M 7283d5826 < Ijssel 7287,7290c5830,5831 < Ikhnaton < Ila < Ilaire/M < Ilario/M --- > Ikhnaton/M > Ila/M 7292d5832 < Ileane/M 7295d5834 < Ilise/M 7301c5840 < Illuminati --- > Illuminati/M 7304,7306d5842 < Ilysa/M < Ilyse/M < Ilyssa/M 7315d5850 < Imojean/M 7330a5866 > Indies/M 7333c5869 < Indochinese --- > Indochinese/M 7335,7336c5871,5872 < Indonesian/MS < Indore --- > Indonesian/SM > Indore/M 7340,7342c5876 < Ines < Inesita/M < Inessa/M --- > Ines/M 7345,7350c5879 < Ingaberg/M < Ingaborg/M < Ingamar/M < Ingar/M < Inge/R < Ingeberg/M --- > Inge/RM 7352d5880 < Ingelbert/M 7355d5882 < Inglebert/M 7359d5885 < Ingra/M 7361c5887 < Ingres --- > Ingres/M 7363,7364d5888 < Ingrim/M < Ingunna/M 7372c5896 < Inquisition --- > Inquisition/M 7373a5898 > Instagram/M 7376c5901 < Intelsat --- > Intelsat/M 7378,7379c5903,5904 < Internet/S < Interpol --- > Internet/SM > Interpol/M 7384,7385d5908 < Iolande/M < Iolanthe/M 7387c5910 < Ionesco --- > Ionesco/M 7390,7392d5912 < Iorgo/MS < Iormina/M < Iosep/M 7395c5915 < Iphigenia --- > Iphigenia/M 7398,7399c5918,5919 < Iqbal < Iquitos --- > Iqbal/M > Iquitos/M 7408c5928 < Irene --- > Irene/M 7410c5930 < Iris --- > Iris/M 7413c5933 < Irishmen --- > Irishmen/M 7415,7417c5935,5936 < Irishwomen < Irita/M < Irkutsk --- > Irishwomen/M > Irkutsk/M 7421c5940 < Irrawaddy --- > Irrawaddy/M 7425,7426c5944,5945 < Irvine < Irving --- > Irvine/M > Irving/M 7428d5946 < Irwinn/M 7433,7434c5951 < Isabelita/M < Isabella --- > Isabella/M 7436,7438d5952 < Isac/M < Isacco/M < Isador/M 7441,7442c5955 < Isahella/M < Isaiah --- > Isaiah/M 7444,7447c5957,5959 < Iscariot < Iseabal/M < Isfahan < Isherwood --- > Iscariot/M > Isfahan/M > Isherwood/M 7449c5961 < Ishmael --- > Ishmael/M 7452d5963 < Isiahi/M 7461c5972 < Islamic --- > Islamic/M 7463c5974,5976 < Islamist --- > Islamist/M > Islamophobia > Islamophobic 7467,7468c5980 < Isolde < Ispahan --- > Isolde/M 7472c5984 < Israelite --- > Israelite/M 7474,7477c5986 < Issachar < Issi/M < Issiah/M < Issie/M --- > Issachar/M 7488,7491c5997,5999 < Itch/M < Ithaca < Ithacan < Ito --- > Ithaca/M > Ithacan/M > Ito/M 7493c6001 < Ivan --- > Ivan/M 7498,7499c6006 < Ivett/M < Ivette/M --- > Ives/M 7502d6008 < Ivonne/M 7506c6012 < Ivy --- > Ivy/M 7509,7510d6014 < Izabel/M < Izak/M 7513,7514c6017,6018 < Izhevsk < Izmir --- > Izhevsk/M > Izmir/M 7523c6027 < JPEG/MS --- > JPEG/SM 7526,7527d6029 < Jacenta/M < Jacinda/M 7529,7532c6031 < Jacintha/M < Jacinthe/M < Jack < Jackelyn/M --- > Jack/M 7537,7538d6035 < Jackquelin/M < Jackqueline/M 7540c6037 < Jacksonian --- > Jacksonian/M 7543d6039 < Jaclin/M 7547c6043 < Jacobi --- > Jacobi/M 7550a6047 > Jacobs/M 7552,7553c6049 < Jacquard < Jacquelin/M --- > Jacquard/M 7556,7561c6052 < Jacquelynn/M < Jacquenetta/M < Jacquenette/M < Jacques < Jacquetta/M < Jacquette/M --- > Jacques/M 7564,7565c6055 < Jacuzzi < Jacynth/M --- > Jacuzzi/M 7567d6056 < Jade/M 7574,7576c6063 < Jaimie/M < Jain < Jaine/M --- > Jain/M 7578c6065 < Jaipur --- > Jaipur/M 7581d6067 < Jakie/M 7592,7593c6078 < Jamestown < Jamesy/M --- > Jamestown/M 7598,7599d6082 < Jamill/M < Jamima/M 7601,7602d6083 < Jammal/M < Jammie/M 7606,7608d6086 < Janaya/M < Janaye/M < Jandy/M 7610,7612d6087 < Janean/M < Janeczka/M < Janeen/M 7614,7615d6088 < Janel/M < Janela/M 7617d6089 < Janella/M 7619,7621d6090 < Janene/M < Janenna/M < Janessa/M 7623,7624d6091 < Janeta/M < Janetta/M 7626d6092 < Janeva/M 7628d6093 < Jania/M 7631d6095 < Janifer/M 7636d6099 < Janith/M 7638d6100 < Janka/M 7640,7641d6101 < Jannel/M < Jannelle/M 7644d6103 < Janot/M 7649a6109 > Jap/SM 7653,7660d6112 < Jaquelin/M < Jaquelyn/M < Jaquenetta/M < Jaquenette/M < Jaquith/M < Jarad/M < Jard/M < Jareb/M 7662,7665c6114 < Jarib/M < Jarid/M < Jarlsberg < Jarrad/M --- > Jarlsberg/M 7669d6117 < Jarrid/M 7673d6120 < Jasen/M 7675d6121 < Jasmina/M 7679,7680c6125 < Jasun/M < Jataka --- > Jataka/M 7685,7686c6130,6131 < Jaxartes < Jay --- > Jaxartes/M > Jay/M 7689c6134,6135 < Jaycee/S --- > Jaycee/MS > Jaycees/M 7692,7693d6137 < Jaymee/M < Jaymie/M 7695d6138 < Jaynell/M 7697,7698d6139 < Jazmin/M < Jdavie/M 7702d6142 < Jeanelle/M 7706d6145 < Jeanna/M 7711d6149 < Jecho/M 7713,7714d6150 < Jedd/M < Jeddy/M 7718c6154 < Jeep --- > Jeep/M 7723c6159 < Jeffersonian --- > Jeffersonian/M 7725,7726c6161 < Jeffie/M < Jeffrey --- > Jeffrey/M 7728,7730c6163 < Jeffy/M < Jehanna/M < Jehoshaphat --- > Jehoshaphat/M 7734,7735d6166 < Jelene/M < Jemie/M 7737,7738d6167 < Jemimah/M < Jemmie/M 7742,7746d6170 < Jenda/M < Jenelle/M < Jeni/M < Jenica/M < Jeniece/M 7748,7751c6172 < Jeniffer/M < Jenilee/M < Jenine/M < Jenkins --- > Jenkins/M 7754,7755c6175 < Jennee/M < Jennette/M --- > Jenner/M 7757d6176 < Jennica/M 7760,7761d6178 < Jennilee/M < Jennine/M 7766,7767c6183 < Jephthah < Jerad/M --- > Jephthah/M 7769,7771d6184 < Jeralee/M < Jeramey/M < Jeramie/M 7773d6185 < Jereme/M 7781d6192 < Jermain/M 7783,7784c6194 < Jermayne/M < Jeroboam --- > Jeroboam/M 7786,7787c6196 < Jerome < Jeromy/M --- > Jerome/M 7790,7792d6198 < Jerrilee/M < Jerrilyn/M < Jerrine/M 7795d6200 < Jerrome/M 7797d6201 < Jerrylee/M 7802,7804d6205 < Jessa/M < Jessalin/M < Jessalyn/M 7807,7809c6208 < Jesse < Jessee/M < Jesselyn/M --- > Jesse/M 7814d6212 < Jessika/M 7817,7818c6215 < Jesus < Jeth/M --- > Jesus/M 7820c6217 < Jetway --- > Jetway/M 7824d6220 < Jewelle/M 7826,7827c6222,6223 < Jewish/P < Jewry --- > Jewish/PM > Jewry/M 7829,7837c6225,6227 < Jidda < Jilin < Jill < Jillana/M < Jillane/M < Jillayne/M < Jilleen/M < Jillene/M < Jilli/M --- > Jidda/M > Jilin/M > Jill/M 7839d6228 < Jillie/M 7845,7846c6234,6235 < Jinan < Jinnah --- > Jinan/M > Jinnah/M 7848c6237 < Jivaro --- > Jivaro/M 7851c6240 < Joan --- > Joan/M 7860,7863c6249 < Jobey/M < Jobi/M < Jobie/M < Jobina/M --- > Jobs/M 7865,7867c6251 < Jobye/M < Jobyna/M < Jocasta --- > Jocasta/M 7869d6252 < Joceline/M 7872,7873c6255,6256 < Jock < Jockey --- > Jock/M > Jockey/M 7875d6257 < Jodee/M 7879,7885c6261,6262 < Joe < Joeann/M < Joel/Y < Joela/M < Joelie/M < Joell/MN < Joella/M --- > Joe/M > Joel/M 7887,7892d6263 < Joellen/M < Joelly/M < Joellyn/M < Joelynn/M < Joesph/M < Joete/M 7898,7899c6269 < Johannah/M < Johannes --- > Johannes/M 7902,7903d6271 < Johna/MH < Johnath/M 7906d6273 < Johnette/M 7908,7909c6275 < Johnna/M < Johnnie --- > Johnnie/M 7910a6277 > Johns/M 7913,7914d6279 < Johny/M < Joice/M 7916,7917d6280 < Jolee/M < Joleen/M 7919d6281 < Joletta/M 7922,7924c6284,6285 < Joliet < Joline/M < Jolson --- > Joliet/M > Jolson/M 7926,7927d6286 < Jolyn/M < Jolynn/M 7931c6290 < Jonas --- > Jonas/M 7935,7940c6294,6297 < Jonell/M < Joni/SM < Jonie/M < Jonson < Joplin < Jordain/M --- > Jones/M > Joni/M > Jonson/M > Joplin/M 7944d6300 < Jordanna/M 7946,7947d6301 < Jorey/M < Jorgan/M 7950,7952d6303 < Jorie/M < Jorrie/M < Jorry/M 7956d6306 < Josee/M 7960d6309 < Joseito/M 7963,7964c6312 < Josephina/M < Josephine --- > Josephine/M 7967c6315 < Josephus --- > Josephus/M 7969,7970c6317 < Josh < Joshia/M --- > Josh/M 7972,7974c6319 < Joshuah/M < Josi/M < Josiah --- > Josiah/M 7979,7980c6324 < Josy/M < Joule --- > Joule/M 7984c6328 < Jovian --- > Jovian/M 7987,7991c6331,6332 < Joyan/M < Joyann/M < Joyce < Joycean < Joycelin/M --- > Joyce/M > Joycean/M 7997d6337 < Jsandye/M 8002c6342 < Jubal --- > Jubal/M 8004c6344,6345 < Judah --- > Judaeo > Judah/M 8010,8011c6351,6352 < Jude < Judea --- > Jude/M > Judea/M 8014d6354 < Judie/M 8016,8017d6355 < Juditha/M < Judon/M 8019,8020c6357 < Judy < Judye/M --- > Judy/M 8022d6358 < Juieta/M 8025c6361 < Julee/M --- > Jules/M 8028,8029c6364,6365 < Julian < Juliana --- > Julian/M > Juliana/M 8031d6366 < Juliann/M 8035,8038c6370,6371 < Julienne/M < Juliet < Julieta/M < Julietta/M --- > Julienne's > Juliet/M 8040,8041d6372 < Julina/M < Juline/M 8043,8044d6373 < Julissa/M < Julita/M 8048c6377 < Jun --- > Jun/M 8051d6379 < Junette/M 8053,8054c6381,6382 < Jungfrau < Jungian --- > Jungfrau/M > Jungian/M 8057d6384 < Junina/M 8064d6390 < Justen/M 8070,8072d6395 < Justinn/M < Justino/M < Justis/M 8075c6398 < Juvenal --- > Juvenal/M 8081c6404 < KGB --- > KGB/M 8088c6411 < Kaaba --- > Kaaba/M 8090,8093d6412 < Kacey/M < Kacie/M < Kacy/M < Kaela/M 8095,8097c6414,6415 < Kafkaesque < Kagoshima < Kahaleel/M --- > Kafkaesque/M > Kagoshima/M 8102c6420 < Kaifeng --- > Kaifeng/M 8104,8105d6421 < Kaile/M < Kailey/M 8111d6426 < Kaitlynn/M 8113d6427 < Kakalina/M 8116,8117c6430,6431 < Kalamazoo < Kalashnikov --- > Kalamazoo/M > Kalashnikov/M 8119,8123c6433,6434 < Kale/M < Kaleb/M < Kaleena/M < Kalevala < Kalgoorlie --- > Kalevala/M > Kalgoorlie/M 8125d6435 < Kalie/M 8127d6436 < Kalila/M 8129,8130d6437 < Kalinda/M < Kalindi/M 8132,8135c6439 < Kalli/M < Kally/M < Kalmyk < Kalvin/M --- > Kalmyk/M 8137c6441 < Kamchatka --- > Kamchatka/M 8139,8142d6442 < Kameko/M < Kamila/M < Kamilah/M < Kamillah/M 8145c6445 < Kan/S --- > Kan/SM 8147,8149c6447,6448 < Kandace/M < Kandahar < Kandinsky --- > Kandahar/M > Kandinsky/M 8154,8155c6453,6454 < Kano < Kanpur --- > Kano/M > Kanpur/M 8157c6456 < Kansas --- > Kansas/M 8159c6458 < Kantian --- > Kantian/M 8161c6460 < Kaohsiung --- > Kaohsiung/M 8165,8168c6464,6465 < Karaganda < Karakorum < Karalee/M < Karalynn/M --- > Karaganda/M > Karakorum/M 8171d6467 < Karee/M 8175d6470 < Karena/M 8178,8181d6472 < Karia/M < Karie/M < Karil/M < Karilynn/M 8186,8190c6477 < Kariotta/M < Karisa/M < Karissa/M < Karita/M < Karl/MNX --- > Karl/MN 8192,8194d6478 < Karlan/M < Karlee/M < Karleen/M 8196,8199d6479 < Karlene/M < Karlie/M < Karlik/M < Karlis 8201,8202d6480 < Karlotta/M < Karlotte/M 8204,8205d6481 < Karlyn/M < Karmen/M 8208d6483 < Karney/M 8211,8212d6485 < Karola/M < Karole/M 8217,8218d6489 < Karrah/M < Karrie/M 8220,8223d6490 < Karry/M < Kary/M < Karyl/M < Karylin/M 8233,8236d6499 < Kassey/M < Kassi/M < Kassia/M < Kassie/M 8241d6503 < Katee/M 8244,8245d6505 < Katerine/M < Katey/M 8250d6509 < Katharyn/M 8256c6515 < Kathiawar --- > Kathiawar/M 8259d6517 < Kathlin/M 8263d6520 < Kathryne/M 8265d6521 < Kathye/M 8269d6524 < Katine/M 8271,8273c6526 < Katleen/M < Katlin/M < Katmai --- > Katmai/M 8275c6528 < Katowice --- > Katowice/M 8279,8282d6531 < Katti/M < Kattie/M < Katuscha/M < Katusha/M 8290,8291c6539,6540 < Kawasaki < Kay --- > Kawasaki/M > Kay/M 8295d6543 < Kayle/M 8297,8299d6544 < Kayley/M < Kaylil/M < Kaylyn/M 8305c6550 < Kazantzakis --- > Kazantzakis/M 8310d6554 < Keary/M 8312c6556 < Keats --- > Keats/M 8316d6559 < Keelby/M 8318d6560 < Keelia/M 8320d6561 < Keen/M 8323c6564 < Keewatin --- > Keewatin/M 8328,8336d6568 < Kelbee/M < Kelby/M < Kelcey/M < Kelci/M < Kelcie/M < Kelcy/M < Kele/M < Kelila/M < Kellby/M 8338c6570 < Keller --- > Keller/M 8341d6572 < Kellia/M 8343,8347c6574,6575 < Kellina/M < Kellogg < Kellsie/M < Kelly < Kellyann/M --- > Kellogg/M > Kelly/M 8349,8354c6577,6578 < Kelsi/M < Kelsy/M < Kelt/SM < Kelvin < Kelwin/M < Kemerovo --- > Kelvin/M > Kemerovo/M 8356c6580,6581 < Kempis --- > Kempis/M > Ken/M 8361d6585 < Kendre/M 8370d6593 < Kennie/M 8373d6595 < Kenon/M 8376c6598 < Kentuckian/SM --- > Kentuckian/MS 8380c6602 < Kenyatta --- > Kenyatta/M 8390,8391d6611 < Keriann/M < Kerianne/M 8393d6612 < Kermie/M 8395,8398c6614,6616 < Kermy/M < Kern < Kerouac < Kerr --- > Kern/M > Kerouac/M > Kerr/M 8401,8403c6619 < Kerrill/M < Kerrin/M < Kerry --- > Kerry/M 8406,8414c6622 < Kerwinn/M < Kesley/M < Keslie/M < Kessia/M < Kessiah/M < Kettering < Ketti/M < Kettie/M < Ketty/M --- > Kettering/M 8419,8421c6627 < Kevina/M < Kevlar < Kevon/M --- > Kevlar/M 8423,8425c6629,6630 < Kevyn/M < Kewpie < Key --- > Kewpie/M > Key/M 8427,8429c6632,6634 < Keynesian < Khabarovsk < Khachaturian --- > Keynesian/M > Khabarovsk/M > Khachaturian/M 8442,8443c6647,6648 < Khrushchev < Khufu --- > Khrushchev/M > Khufu/M 8448,8450c6653 < Kiah/M < Kial/M < Kickapoo --- > Kickapoo/M 8452,8456c6655,6656 < Kiel < Kiele/M < Kienan/M < Kierkegaard < Kiersten/M --- > Kiel/M > Kierkegaard/M 8460,8463c6660,6661 < Kijiji/M < Kikelia/M < Kikuyu < Kilauea --- > Kikuyu/M > Kilauea/M 8469,8470d6666 < Killie/M < Killy/M 8475,8477c6671 < Kimberlee/M < Kimberley < Kimberli/M --- > Kimberley/M 8479d6672 < Kimberlyn/M 8481,8483d6673 < Kimbra/M < Kimmi/M < Kimmie/M 8485d6674 < Kin/M 8489d6677 < Kingsly/M 8493d6680 < Kinna/M 8495,8497c6682 < Kinnie/M < Kinny/M < Kinsey --- > Kinsey/M 8503,8507c6688 < Kipp/MR < Kippar/M < Kipper/M < Kippie/M < Kippy/M --- > Kipp/M 8509,8510d6689 < Kirbee/M < Kirbie/M 8512c6691 < Kirchhoff --- > Kirchhoff/M 8520c6699 < Kirk --- > Kirk/M 8523c6702 < Kirov --- > Kirov/M 8525,8529c6704 < Kirsteni/M < Kirsti/M < Kirstin/M < Kirstyn/M < Kisangani --- > Kisangani/M 8532,8535c6707 < Kissee/M < Kissiah/M < Kissie/M < Kissinger --- > Kissinger/M 8538,8540c6710 < Kitchener < Kitti/M < Kittie/M --- > Kitchener/M 8543,8545c6713 < Kiwanis < Kizzee/M < Kizzie/M --- > Kiwanis/M 8549,8550d6716 < Klarika/M < Klarrisa/M 8552c6718 < Klee --- > Klee/M 8557,8560c6723,6724 < Kleon/M < Kliment/M < Klimt < Kline --- > Klimt/M > Kline/M 8567c6731 < Knickerbocker --- > Knickerbocker/M 8569c6733 < Knight --- > Knight/M 8571,8574c6735,6738 < Knossos < Knowles < Knox < Knoxville --- > Knossos/M > Knowles/M > Knox/M > Knoxville/M 8578,8579c6742,6743 < Kobe < Koch --- > Kobe/M > Koch/M 8582c6746 < Kodak --- > Kodak/M 8585,8588c6749,6751 < Koenraad/M < Koestler < Kohinoor < Kohl --- > Koestler/M > Kohinoor/M > Kohl/M 8591,8592c6754 < Koln/M < Kolyma --- > Kolyma/M 8597d6758 < Konstance/M 8599,8600d6759 < Konstantine/M < Konstanze/M 8605,8606d6763 < Koral/M < Koralle/M 8609d6765 < Kordula/M 8613d6768 < Korella/M 8615,8616d6769 < Koressa/M < Korey/M 8618d6770 < Korie/M 8620,8622d6771 < Korney/M < Korrie/M < Korry/M 8625,8626c6774,6775 < Korzybski < Kosciusko --- > Korzybski/M > Kosciusko/M 8628,8629c6777,6778 < Kossuth < Kosygin --- > Kossuth/M > Kosygin/M 8631c6780 < Kowloon --- > Kowloon/M 8638,8641c6787,6790 < Krasnodar < Krasnoyarsk < Krebs < Kremlin --- > Krasnodar/M > Krasnoyarsk/M > Krebs/M > Kremlin/M 8647d6795 < Krisha/M 8649d6796 < Krishnah/M 8651,8653d6797 < Krispin/M < Krissie/M < Krissy/M 8655,8658d6798 < Kristal/M < Kristan/M < Kriste/M < Kristel/M 8660c6800 < Kristi/MN --- > Kristi/M 8663d6802 < Kristien/M 8667,8671d6805 < Kristo/SM < Kristofer/M < Kristoffer/M < Kristofor/M < Kristoforo/M 8674d6807 < Kristyn/M 8678,8682c6811,6814 < Kropotkin < Kruger < Krugerrand < Krupp < Krysta/M --- > Kropotkin/M > Kruger/M > Krugerrand/M > Krupp/M 8684,8685d6815 < Krystalle/M < Krystle/M 8690c6820 < Kubrick --- > Kubrick/M 8692c6822 < Kuibyshev --- > Kuibyshev/M 8694,8696c6824,6826 < Kunming < Kuomintang < Kurd --- > Kunming/M > Kuomintang/M > Kurd/M 8698,8700c6828,6829 < Kurdistan < Kurile < Kurosawa --- > Kurdistan/M > Kurosawa/M 8704c6833 < Kutuzov --- > Kutuzov/M 8712,8713c6841 < Kwangju < Kwanza/MS --- > Kwangju/M 8715c6843 < Ky/H --- > Ky/MH 8718d6845 < Kylen/M 8720,8721d6846 < Kylila/M < Kylynn/M 8723d6847 < Kynthia/M 8725,8726c6849 < Kyrgyzstan < Kyrstin/M --- > Kyrgyzstan/M 8728c6851 < L'Amour --- > L'Amour/M 8730,8731c6853,6854 < L'Oreal < L'Ouverture --- > L'Oreal/M > L'Ouverture/M 8741a6865 > LGBT 8754c6878 < La/M --- > La/SM 8756c6880 < Laban --- > Laban/M 8760d6883 < Lacee/M 8763d6885 < Lacie/M 8765c6887 < Ladoga --- > Ladoga/M 8767c6889 < Lady --- > Lady/M 8770c6892 < Lafayette --- > Lafayette/M 8773,8776c6895,6897 < Lagrange < Lagrangian < Lahore < Laina/M --- > Lagrange/M > Lagrangian/M > Lahore/M 8778,8779c6899 < Laird/M < Laius --- > Laius/M 8785c6905 < Lakota --- > Lakota/M 8791,8793c6911,6913 < Lamaze < Lamb < Lambert --- > Lamaze/M > Lamb/M > Lambert/M 8795c6915 < Lambrusco --- > Lambrusco/M 8797d6916 < Lammond/M 8801d6919 < Lanae/M 8803c6921 < Lancashire --- > Lancashire/M 8807c6925 < Land --- > Land/M 8810c6928 < Landsat --- > Landsat/M 8813d6930 < Lanette/M 8815c6932 < Lang --- > Lang/M 8817,8820c6934,6936 < Langland < Langley < Langmuir < Langsdon/M --- > Langland/M > Langley/M > Langmuir/M 8824d6939 < Lanita/M 8825a6941 > Lankan/M 8827,8828d6942 < Lanni/M < Lannie/M 8833a6948 > Laos/M 8835c6950 < Laplace --- > Laplace/M 8839d6953 < Laraine/M 8842c6956 < Laredo --- > Laredo/M 8844,8845d6957 < Larina/M < Larine/M 8848,8849c6960 < Lark/M < Larousse --- > Larousse/M 8851c6962 < Lars/N --- > Lars/MN 8854d6964 < Laryssa/M 8859c6969 < Lat --- > Lat/M 8861d6970 < Latashia/M 8863c6972 < Latia/M --- > Latham/M 8870,8871d6978 < Latrena/M < Latrina/M 8875,8876c6982,6984 < Laud/R < Laue --- > Laud/MR > Lauder/M > Laue/M 8879c6987 < Laundromat --- > Laundromat/M 8881,8883d6988 < Lauraine/M < Laural/M < Lauralee/M 8886,8887d6990 < Lauree/M < Laureen/M 8889d6991 < Laurella/M 8891d6992 < Laurena/M 8893d6993 < Laurene/M 8898,8899d6997 < Laurianne/M < Laurice/M 8901d6998 < Lauritz/M 8903,8904c7000 < Laval < Lavena/M --- > Laval/M 8906d7001 < Laverna/M 8910,8911c7005 < Lavinie/M < Lavoisier --- > Lavoisier/M 8913d7006 < Law 8915c7008 < Lawrence --- > Lawrence/M 8917c7010 < Lawson --- > Lawson/M 8919,8920c7012 < Lay/M < Layamon --- > Layamon/M 8923d7014 < Layney/M 8929c7020 < Le/SMN --- > Le/SM 8932,8933c7023,7024 < Leadbelly < Leah --- > Leadbelly/M > Leah/M 8936c7027 < Leander --- > Leander/M 8941,8942d7031 < Leanor/M < Leanora/M 8946c7035 < Leavenworth --- > Leavenworth/M 8949d7037 < Lebbie/M 8952c7040 < Leda --- > Leda/M 8955,8956d7042 < Leeann/M < Leeanne/M 8959,8960d7044 < Leelah/M < Leeland/M 8962d7045 < Leesa/M 8964c7047 < Leeuwenhoek --- > Leeuwenhoek/M 8967,8968c7050 < Lefty/M < Legendre --- > Legendre/M 8970c7052 < Leghorn --- > Leghorn/M 8972d7053 < Legra/M 8981,8982c7062 < Leigh < Leigha/M --- > Leigh/M 8985d7064 < Leilah/M 8987d7065 < Leisha/M 8990d7067 < Lelah/M 8995,8997d7071 < Lemar/M < Lemmie/M < Lemmy/M 9003,9005d7076 < Lenci/M < Lenee/M < Lenette/M 9009,9011c7080 < Leninist < Lenka/M < Lenna/M --- > Leninist/M 9020a7090 > Lenten/M 9022,9023d7091 < Leodora/M < Leoine/M 9025,9026c7093 < Leoline/M < Leon --- > Leon/M 9028d7094 < Leonanie/M 9031c7097 < Leoncavallo --- > Leoncavallo/M 9034,9035d7099 < Leonelle/M < Leonerd/M 9037c7101 < Leonid --- > Leonid/M 9044d7107 < Leontyne/M 9048c7111 < Lepidus --- > Lepidus/M 9051c7114 < Lerner --- > Lerner/M 9053a7117 > Les/M 9055d7118 < Leshia/M 9057d7119 < Lesli/M 9059d7120 < Lesly/M 9061c7122 < Lesseps --- > Lesseps/M 9065d7125 < Lesya/M 9069d7128 < Lethia/M 9071d7129 < Letisha/M 9074d7131 < Letta/M 9076d7132 < Letti/M 9079d7134 < Leupold/M 9085c7140 < Leviathan --- > Leviathan/M 9094d7148 < Lewie/M 9096,9098c7150,7151 < Lewis < Lewiss < Lexi/SM --- > Lewis/M > Lexi/M 9100d7152 < Lexine/M 9103d7154 < Lexmark/M 9107,9108d7157 < Lezley/M < Lezlie/M 9117d7165 < Lianna/M 9119d7166 < Lib 9121d7167 < Libbi/M 9123c7169 < Libby --- > Libby/M 9127a7174 > LibreOffice/M 9132,9133c7179 < Licha/M < Lichtenstein --- > Lichtenstein/M 9136c7182 < Lie --- > Lie/M 9138c7184 < Liebfraumilch --- > Liebfraumilch/M 9141c7187 < Lief/M --- > Lief's 9143d7188 < Liesa/M 9147c7192 < Lila/SM --- > Lila/M 9154c7199 < Liliuokalani --- > Liliuokalani/M 9156,9157c7201,7202 < Lille < Lilli/MS --- > Lille/M > Lilli/M 9161,9162c7206 < Lilliputian/SM < Lilllie/M --- > Lilliputian/MS 9166d7209 < Lilyan/M 9170,9171c7213,7214 < Limburger < Limoges --- > Limburger/M > Limoges/M 9179c7222 < Lind --- > Lind/M 9181c7224 < Lindbergh --- > Lindbergh/M 9183d7225 < Lindie/M 9185,9188c7227,7229 < Lindsay < Lindsey < Lindsy/M < Lindy --- > Lindsay/M > Lindsey/M > Lindy/M 9190,9193d7230 < Linell/M < Linet/M < Linette/M < Link/M 9199,9202c7236 < Linnet/M < Linnie/M < Linoel/M < Linotype --- > Linotype/M 9205c7239 < Linux/S --- > Linux/MS 9207d7240 < Linzy/M 9209,9212c7242,7244 < Lionello/M < Lipizzaner < Lippi < Lippmann --- > Lipizzaner/M > Lippi/M > Lippmann/M 9215d7246 < Lira/M 9217d7247 < Lisabeth/M 9221d7250 < Lisetta/M 9223,9224d7251 < Lisha/M < Lishe/M 9228,9229d7254 < Lissi/M < Lissie/M 9234c7259 < Liszt --- > Liszt/M 9240d7264 < Liuka/M 9242d7265 < Liva/M 9245c7268 < Liverpudlian/MS --- > Liverpudlian/SM 9247,9248c7270,7271 < Livingston < Livingstone --- > Livingston/M > Livingstone/M 9250d7272 < Livvie/M 9252,9253c7274 < Livvyy/M < Livy --- > Livy/M 9262,9264c7283,7284 < Llewellyn < Lloyd < Llywellyn/M --- > Llewellyn/M > Lloyd/M 9267,9269c7287,7288 < Lobachevsky < Lochinvar < Lock/M --- > Lobachevsky/M > Lochinvar/M 9271c7290 < Lockean --- > Lockean/M 9274c7293 < Lodge --- > Lodge/M 9277,9279c7296,7297 < Loella/M < Loewe < Loewi --- > Loewe/M > Loewi/M 9283c7301 < Lohengrin --- > Lohengrin/M 9286d7303 < Loise/M 9289,9291c7306,7307 < Loleta/M < Lolita < Lollard --- > Lolita/M > Lollard/M 9293c7309 < Lolly/M --- > Lolly's 9302,9303c7318 < Lonee/M < Long --- > Long/M 9308,9310d7322 < Lonna/M < Lonnard/M < Lonni/M 9318,9320d7329 < Loralee/M < Loralie/M < Loralyn/M 9324,9325d7332 < Loree/M < Loreen/M 9327,9328c7334 < Lorelle/M < Loren/S --- > Loren/M 9331,9332c7337,7338 < Lorentz < Lorenz --- > Lorentz/M > Lorenz/M 9339,9340d7344 < Lorianna/M < Lorianne/M 9342,9343d7345 < Lorilee/M < Lorilyn/M 9346,9347d7347 < Lorine/M < Lorita/M 9351d7350 < Lorrayne/M 9353d7351 < Lorri/M 9355,9356d7352 < Lorrin/M < Lorry/M 9357a7354 > Los 9359d7355 < Lothaire/M 9370c7366 < Louis --- > Louis/M 9373d7368 < Louisette/M 9378,9379c7373 < Lourdes < Loutitia/M --- > Lourdes/M 9383c7377 < Lovelace --- > Lovelace/M 9386c7380 < Lowell --- > Lowell/M 9390d7383 < Lowrance/M 9394,9395c7387 < Loydie/M < Loyola --- > Loyola/M 9402,9404c7394,7396 < Lubavitcher < Lubbock < Lubumbashi --- > Lubavitcher/M > Lubbock/M > Lubumbashi/M 9406c7398 < Lucais/M --- > Lucas/M 9408d7399 < Lucho/M 9410,9411c7401,7402 < Lucia/MS < Lucian --- > Lucia/M > Lucian/M 9418d7408 < Lucila/M 9420d7409 < Lucilia/M 9424d7412 < Lucine/M 9426d7413 < Lucita/M 9430,9432c7417,7419 < Lucky/M < Lucretia < Lucretius --- > Lucky's > Lucretia/M > Lucretius/M 9435c7422 < Ludhiana --- > Ludhiana/M 9437d7423 < Ludovika/M 9441d7426 < Luelle/M 9443c7428 < Luftwaffe --- > Luftwaffe/M 9453,9454c7438 < Lulita/M < Lully --- > Lully/M 9456a7441 > Lumière/M 9459c7444 < Lupercalia --- > Lupercalia/M 9462d7446 < Lurette/M 9464,9467d7447 < Lurleen/M < Lurlene/M < Lurline/M < Lusa/M 9470d7449 < Lutero/M 9478d7456 < Luxemburg/M 9481c7459 < Lvov --- > Lvov/M 9486,9487c7464,7465 < Lycra < Lycurgus --- > Lycra/M > Lycurgus/M 9489c7467 < Lydia --- > Lydia/M 9493c7471 < Lyell --- > Lyell/M 9495c7473 < Lyly --- > Lyly/M 9499c7477 < Lynch --- > Lynch/M 9502,9503d7479 < Lyndel/M < Lyndell/M 9507,9511d7482 < Lyndsie/M < Lyndy/M < Lynea/M < Lynelle/M < Lynett/M 9513,9514c7484 < Lynn < Lynna/M --- > Lynn/M 9516,9520d7485 < Lynnea/M < Lynnell/M < Lynnelle/M < Lynnet/M < Lynnett/M 9522d7486 < Lynsey/M 9523a7488 > Lyons/M 9525c7490 < Lysenko --- > Lysenko/M 9547d7511 < MIPSes 9552a7517 > MOOC 9554c7519 < MPEG/MS --- > MPEG/SM 9561c7526 < MTV --- > MTV/M 9567d7531 < Mabelle/M 9569,9570c7533,7534 < Mac < MacArthur --- > Mac/M > MacArthur/M 9572c7536 < MacDonald --- > MacDonald/M 9576,9577c7540,7541 < Macaulay < Macbeth --- > Macaulay/M > Macbeth/M 9580c7544 < Mace --- > Mace/M 9584c7548 < Mach --- > Mach/M 9586c7550 < Machiavellian --- > Machiavellian/M 9592,9594c7556,7558 < Mackinaw < Macmillan < Macon --- > Mackinaw/M > Macmillan/M > Macon/M 9601d7564 < Madalena/M 9610d7572 < Madel/M 9613,9616d7574 < Madelena/M < Madelene/M < Madelin/M < Madelina/M 9618,9619d7575 < Madella/M < Madelle/M 9624,9625d7579 < Madlen/M < Madlin/M 9630d7583 < Mady/M 9632d7584 < Maegan/M 9635,9636c7587 < Mafioso < Mag/M --- > Mafioso/M 9638d7588 < Magdaia/M 9640c7590 < Magdalena --- > Magdalena/M 9643,9644c7593 < Magellanic < Maggee/M --- > Magellanic/M 9651,9653c7600,7601 < Magnitogorsk < Magnum < Magog --- > Magnitogorsk/M > Magog/M 9655c7603 < Magritte --- > Magritte/M 9666c7614 < Mahdi --- > Mahdi/M 9669c7617 < Mahler --- > Mahler/M 9672d7619 < Mahomet/M 9675d7621 < Maible/M 9677,9678d7622 < Maiga/M < Maighdiln/M 9680,9681c7624,7625 < Mailer < Maillol --- > Mailer/M > Maillol/M 9683c7627 < Maimonides --- > Maimonides/M 9688d7631 < Maisey/M 9691d7633 < Maitilde/M 9694d7635 < Maje/M 9696c7637 < Major --- > Major/M 9698c7639 < Majuro --- > Majuro/M 9700c7641 < Maker --- > Maker/M 9705,9709c7646,7649 < Malacca < Malachi < Malagasy < Malamud < Malanie/M --- > Malacca/M > Malachi/M > Malagasy/M > Malamud/M 9719,9720c7659 < Malchy/M < Malcolm --- > Malcolm/M 9726,9727c7665 < Malena/M < Mali --- > Mali/M 9733,9734c7671 < Malinde/M < Malinowski --- > Malinowski/M 9736,9738c7673,7674 < Malissia/M < Mallarme < Mallissa/M --- > Mallarme/M > Mallarmé/M 9740d7675 < Mallorie/M 9743d7677 < Malorie/M 9746c7680 < Malraux --- > Malraux/M 9754d7687 < Malynda/M 9756,9757c7689,7690 < Mameluke < Mamet --- > Mameluke/M > Mamet/M 9764,9765c7697 < Manasseh < Manaus --- > Manasseh/M 9769c7701 < Manchurian --- > Manchurian/M 9776,9777c7708,7709 < Mandela < Mandelbrot --- > Mandela/M > Mandelbrot/M 9780c7712 < Mandingo --- > Mandingo/M 9782d7713 < Mandriva/M 9784c7715 < Manet --- > Manet/M 9787,9788c7718,7719 < Mani < Manichean --- > Mani/M > Manichean/M 9793c7724 < Mann/G --- > Mann/GM 9795a7727 > Manning/M 9800c7732 < Mansfield --- > Mansfield/M 9802c7734 < Mantegna --- > Mantegna/M 9817,9819c7749,7750 < Marabel/M < Maracaibo < Marat --- > Maracaibo/M > Marat/M 9823,9824c7754,7755 < Marc < Marceau --- > Marc/M > Marceau/M 9827d7757 < Marcelia/M 9831,9832d7760 < Marcellina/M < Marcelline/M 9837,9838d7764 < Marchall/M < Marchelle/M 9841c7767 < Marciano --- > Marciano/M 9843,9844d7768 < Marcile/M < Marcille/M 9846c7770,7771 < Marconi --- > Marconi/M > Marcos/M 9851d7775 < Mareah/M 9853,9854d7776 < Marena/M < Maressa/M 9857,9858c7779 < Margalo/M < Margaret --- > Margaret/M 9864,9865c7785 < Margarette/M < Margarita --- > Margarita/M 9869d7788 < Margeaux/M 9872,9873d7790 < Margette/M < Margi/M 9885c7802 < Marian --- > Marian/M 9887c7804 < Mariann/M --- > Marianas/M 9889c7806 < Marianne --- > Marianne/M 9892d7808 < Maribelle/M 9894d7809 < Marice/M 9896d7810 < Maridel/M 9898,9899d7811 < Marieann/M < Mariejeanne/M 9901d7812 < Mariele/M 9903d7813 < Mariellen/M 9906,9908d7815 < Marigold/M < Marijn/M < Marijo/M 9911,9912d7817 < Marilin/M < Marillin/M 9914c7819 < Marin --- > Marin/M 9917d7821 < Marinna/M 9920c7824 < Mariquilla/M --- > Maris/M 9926,9927c7830 < Maritain < Maritsa --- > Maritain/M 9930,9931c7833 < Marius < Mariya/M --- > Marius/M 9934,9936d7835 < Marje/M < Marji/M < Marjie/M 9939d7837 < Marjy/M 9942,9943c7840 < Marketa/M < Markham --- > Markham/M 9945c7842,7843 < Markov --- > Markov/M > Marks/M 9948d7845 < Marlane/M 9950,9951c7847 < Marlborough < Marleah/M --- > Marlborough/M 9957,9958c7853 < Marlie/M < Marlin --- > Marlin/M 9963,9964c7858 < Marlowe < Marlyn/M --- > Marlowe/M 9967,9968c7861 < Marna/M < Marne --- > Marne/M 9971d7863 < Marnia/M 9973c7865 < Maronite --- > Maronite/M 9976c7868 < Marquette --- > Marquette/M 9978c7870 < Marquis --- > Marquis/M 9981d7872 < Marrilee/M 9984d7874 < Marrissa/M 9988c7878 < Marseille/S --- > Marseilles/M 9991d7880 < Marshal/M 9993,9994d7881 < Marsiella/M < Mart/MN 9996,10001c7883,7884 < Martainn/M < Martel < Martelle/M < Marten/M < Martguerita/M < Martha --- > Martel/M > Martha/M 10003d7885 < Marthena/M 10005c7887 < Martial --- > Martial/M 10007d7888 < Martica/M 10009c7890 < Martin --- > Martin/M 10014d7894 < Martita/M 10017,10018c7897 < Martynne/M < Marv/MN --- > Marv/M 10020d7898 < Marve/M 10022,10024c7900 < Marven/M < Marvin < Marwin/M --- > Marvin/M 10032d7907 < Maryanna/M 10034d7908 < Marybelle/M 10037,10039d7910 < Maryjane/M < Maryjo/M < Maryl/M 10041c7912 < Marylee/M --- > Marylander/M 10043d7913 < Marylinda/M 10045,10046d7914 < Marylynne/M < Maryrose/M 10048d7915 < Marysa/M 10051,10053c7918,7920 < Masaryk < Mascagni < Masefield --- > Masaryk/M > Mascagni/M > Masefield/M 10059c7926 < Masonic --- > Masonic/M 10062,10065c7929,7932 < Massachusetts < Massasoit < Massenet < Massey --- > Massachusetts/M > Massasoit/M > Massenet/M > Massey/M 10069a7937 > Masters/M 10071d7938 < Matelda/M 10074a7942 > Mather/M 10075a7944 > Mathews/M 10077,10078c7946 < Mathian/M < Mathias --- > Mathias/M 10081c7949 < Mathis --- > Mathis/M 10083c7951 < Matilda --- > Matilda/M 10085,10086c7953,7954 < Matisse < Matt --- > Matisse/M > Matt/M 10090,10091d7957 < Matthaeus/M < Mattheus/M 10093c7959,7960 < Matthias --- > Matthews/M > Matthias/M 10095,10096d7961 < Matthiew/M < Matthus/M 10104c7969 < Maugham --- > Maugham/M 10106c7971 < Maupassant --- > Maupassant/M 10108d7972 < Maure/M 10110,10113c7974,7975 < Maureene/M < Maurene/M < Mauriac < Maurice --- > Mauriac/M > Maurice/M 10117,10118d7978 < Maurise/M < Maurita/M 10120c7980 < Mauritanian/MS --- > Mauritanian/SM 10124d7983 < Maurizia/M 10127c7986 < Maurois --- > Maurois/M 10130c7989 < Mauser --- > Mauser/M 10132d7990 < Mavra/M 10134d7991 < Maxi/M 10136,10138c7993 < Maxim < Maximilian < Maximilianus/M --- > Maximilian/M 10142,10143c7997 < Maxwell < Maxy/M --- > Maxwell/M 10149c8003,8004 < Mayfair --- > Mayer/M > Mayfair/M 10153,10155c8008 < Maynord/M < Mayo < Mayor/M --- > Mayo/M 10157a8011 > Mays/M 10160c8014 < Mazarin --- > Mazarin/M 10162c8016 < Mazda --- > Mazda/M 10175c8029 < McCarthy --- > McCarthy/M 10180c8034 < McClellan --- > McClellan/M 10183,10184c8037,8038 < McCormick < McCoy --- > McCormick/M > McCoy/M 10221,10223c8075,8077 < Mead < Meade < Meadows --- > Mead/M > Meade/M > Meadows/M 10229,10230c8083 < Mechelle/M < Medan --- > Medan/M 10232,10233c8085,8086 < Medellin < Media --- > Medellin/M > Media/M 10236,10238c8089,8091 < Medici < Medina < Mediterranean/SM --- > Medici/M > Medina/M > Mediterranean/MS 10241c8094 < Meg/MN --- > Meg/M 10243,10244d8095 < Megen/M < Meggi/M 10246d8096 < Meggy/M 10248,10249d8097 < Meghann/M < Mehetabel/M 10254c8102 < Meir --- > Meir/M 10259d8106 < Melamie/M 10261c8108 < Melanesian --- > Melanesian/M 10264,10266c8111 < Melantha/M < Melany/M < Melba --- > Melba/M 10268,10269c8113,8114 < Melchior < Melchizedek --- > Melchior/M > Melchizedek/M 10271,10272d8115 < Melesa/M < Melessa/M 10276d8118 < Melinde/M 10279,10281d8120 < Melisandra/M < Melisenda/M < Melisent/M 10283d8121 < Melisse/M 10285d8122 < Melitta/M 10288d8124 < Mellicent/M 10290,10293c8126 < Mellisa/M < Mellisent/M < Mellon < Melloney/M --- > Mellon/M 10295d8127 < Melodee/M 10298d8129 < Melonie/M 10300d8130 < Melosa/M 10307c8137 < Memling --- > Memling/M 10309c8139 < Menander --- > Menander/M 10311,10312c8141,8142 < Mencius < Mencken --- > Mencius/M > Mencken/M 10315,10316c8145,8146 < Mendelian < Mendelssohn --- > Mendelian/M > Mendelssohn/M 10318d8147 < Mendie/M 10320,10321c8149 < Mendoza < Mendy/M --- > Mendoza/M 10324c8152 < Menes --- > Menes/M 10332,10333c8160,8161 < Menotti < Mensa --- > Menotti/M > Mensa/M 10336,10337c8164,8166 < Menzies < Mephistopheles --- > Menzies/M > Mephisto > Mephistopheles/M 10340,10341c8169,8170 < Mercator < Mercedes --- > Mercator/M > Mercedes/M 10344,10345c8173 < Mercia < Mercie/M --- > Mercia/M 10349,10355c8177 < Mercy/M < Meredeth/M < Meredith < Meredithe/M < Merell/M < Meridel/M < Meridith/M --- > Meredith/M 10357,10362c8179 < Merilee/M < Merill/M < Merilyn/M < Merino < Meris < Merissa/M --- > Merino/M 10364d8180 < Merla/M 10367,10374c8183,8184 < Merlina/M < Merline/M < Merlot < Merna/M < Merola/M < Merovingian < Merralee/M < Merrel/M --- > Merlot/M > Merovingian/M 10377d8186 < Merridie/M 10379,10382d8187 < Merrielle/M < Merrile/M < Merrilee/M < Merrili/M 10384c8189 < Merrily/M --- > Merrily's 10387c8192 < Merry/M --- > Merry's 10390c8195 < Merton --- > Merton/M 10396c8201 < Mesa --- > Mesa/M 10400c8205 < Mesolithic --- > Mesolithic/M 10405c8210 < Messiaen --- > Messiaen/M 10409d8213 < Messrs 10415,10416c8219,8220 < Methuselah < Metternich --- > Methuselah/M > Metternich/M 10419c8223 < Mexicali --- > Mexicali/M 10423c8227,8228 < Meyerbeer --- > Meyerbeer/M > Meyers/M 10427c8232 < MiG --- > MiG/M 10431d8235 < Mic 10433,10436c8237,8240 < Micah < Micawber < Mich < Michael --- > Micah/M > Micawber/M > Mich/M > Michael/M 10438,10440d8241 < Michaelina/M < Michaeline/M < Michaella/M 10444d8244 < Michale/M 10446d8245 < Micheil/M 10451d8249 < Michelina/M 10456c8254 < Michelson --- > Michelson/M 10458c8256 < Michigander/SM --- > Michigander/MS 10467c8265 < Micronesian --- > Micronesian/M 10470c8268 < Middleton --- > Middleton/M 10473,10474c8271 < Midge/M < Midland/S --- > Midland/MS 10477c8274 < Midwestern/R --- > Midwestern/MR 10479d8275 < Mignonne/M 10481,10482d8276 < Miguela/M < Miguelita/M 10484d8277 < Mikaela/M 10490d8282 < Mikol/M 10492d8283 < Mil/MY 10497,10498d8287 < Mildrid/M < Mile/SM 10499a8289 > Miles/M 10501,10503d8290 < Milicent/M < Milissent/M < Milka/M 10505c8292 < Mill/SR --- > Mill/SMR 10507,10508c8294,8296 < Millay < Millet --- > Millay/M > Miller/M > Millet/M 10512,10513c8300,8301 < Millikan < Millisent/M --- > Millikan/M > Mills/M 10515c8303 < Milne --- > Milne/M 10519,10523c8307,8309 < Milt/M < Miltiades < Miltie/M < Milton < Miltonic --- > Miltiades/M > Milton/M > Miltonic/M 10525d8310 < Milty/M 10527d8311 < Milzie/M 10530c8314 < Min/MR --- > Min/M 10534c8318 < Mindanao --- > Mindanao/M 10537d8320 < Miner/M 10539d8321 < Minetta/M 10540a8323 > Ming/M 10544d8326 < Minnaminnie/M 10550d8331 < Minni/M 10552d8332 < Minnnie/M 10556d8335 < Minor/M 10564c8343 < Minuit --- > Minuit/M 10567d8345 < Miquela/M 10570c8348 < Mirabeau --- > Mirabeau/M 10576,10577c8354 < Miranda < Mireielle/M --- > Miranda/M 10580d8356 < Mirelle/M 10583d8358 < Mirilla/M 10585c8360 < Miro --- > Miro/M 10589c8364 < Miskito --- > Miskito/M 10592c8367 < Mississauga --- > Mississauga/M 10598c8373 < Mistassini --- > Mistassini/M 10600d8374 < Misti 10604d8377 < Mitchael/M 10606c8379 < Mitchell --- > Mitchell/M 10614,10615c8387,8388 < Mixtec < Mizar --- > Mixtec/M > Mizar/M 10622d8394 < Mob 10626,10631c8398,8399 < Modesta/M < Modestia/M < Modestine/M < Modesto < Modesty/M < Modigliani --- > Modesto/M > Modigliani/M 10634c8402 < Mogadishu --- > Mogadishu/M 10639d8406 < Mohammed/M 10641c8408 < Mohammedanism/MS --- > Mohammedanism/SM 10643d8409 < Mohandis/M 10647d8412 < Mohican/MS 10650,10651c8415 < Moina/M < Moira --- > Moira/M 10652a8417 > Moises/M 10661c8426 < Molina --- > Molina/M 10663,10664d8427 < Mollee/M < Molli/M 10671c8434 < Moluccas --- > Moluccas/M 10673d8435 < Mommy/M 10678d8439 < Monah/M 10681c8442 < Mondrian --- > Mondrian/M 10684c8445 < Monet --- > Monet/M 10694,10695c8455,8456 < Monmouth < Monongahela --- > Monmouth/M > Monongahela/M 10701,10703c8462,8464 < Mont < Montague < Montaigne --- > Mont/M > Montague/M > Montaigne/M 10706c8467 < Montcalm --- > Montcalm/M 10708c8469 < Montenegrin --- > Montenegrin/M 10710,10713c8471,8474 < Monterrey < Montesquieu < Montessori < Monteverdi --- > Monterrey/M > Montesquieu/M > Montessori/M > Monteverdi/M 10716c8477 < Montgolfier --- > Montgolfier/M 10719c8480 < Monticello --- > Monticello/M 10722c8483 < Montrachet --- > Montrachet/M 10726,10727c8487,8488 < Moody < Moog --- > Moody/M > Moog/M 10731c8492 < Moore --- > Moore/M 10736,10737c8497,8498 < Moravia < Moravian --- > Moravia/M > Moravian/M 10740,10743c8501,8502 < Mordred < Mordy/M < More < Moreen/M --- > Mordred/M > More/M 10749,10750d8507 < Morganica/M < Morganne/M 10752d8508 < Morgun/M 10755d8510 < Morie/M 10758d8512 < Morissa/M 10761,10763c8515 < Morlee/M < Morley < Morly/M --- > Morley/M 10767c8519 < Moro --- > Moro/M 10770c8522 < Moroni --- > Moroni/M 10774,10775c8526,8527 < Morris < Morrison --- > Morris/M > Morrison/M 10777d8528 < Morry/M 10781,10782c8532 < Mortie/M < Mortimer --- > Mortimer/M 10788c8538 < Moseley --- > Moseley/M 10791a8542 > Moslem/M 10794c8545 < Mosul --- > Mosul/M 10798,10800c8549,8552 < Mott < Mount < Mountbatten --- > Mott/M > Moulton/M > Mount/M > Mountbatten/M 10802c8554 < Moussorgsky --- > Moussorgsky/M 10806d8557 < Moyna/M 10811,10812d8561 < Mozelle/M < Mozes/M 10814c8563 < Mozillian/SM --- > Mozillian/MS 10823,10825d8571 < Muffin/M < Mufi/M < Mufinella/M 10828c8574 < Muhammadan/SM --- > Muhammadan/MS 10830,10831c8576 < Muir < Muire/M --- > Muir/M 10838c8583 < Mullins --- > Mullins/M 10840,10841c8585,8586 < Multan < Multics/S --- > Multan/M > Multics 10843,10844c8588,8589 < Mumford < Munch --- > Mumford/M > Munch/M 10847d8591 < Munmro/M 10849c8593 < Munro --- > Munro/M 10851c8595 < Munster --- > Munster/M 10854c8598 < Murat --- > Murat/M 10857c8601 < Murdoch --- > Murdoch/M 10859,10860d8602 < Mureil/M < Murial/M 10862,10863c8604 < Murielle/M < Murillo --- > Murillo/M 10865,10866c8606,8607 < Murmansk < Murphy --- > Murmansk/M > Murphy/M 10869c8610 < Murrumbidgee --- > Murrumbidgee/M 10871d8611 < Murvyn/M 10881c8621 < Mussorgsky --- > Mussorgsky/M 10883,10884c8623,8624 < Muzak < My/M --- > Muzak/M > My's 10889,10890d8628 < Myca/M < Mycah/M 10892,10893c8630 < Mycenaean < Mychal/M --- > Mycenaean/M 10894a8632 > Myers/M 10897d8634 < Mylo/M 10899,10900d8635 < Myrah/M < Myranda/M 10903,10905d8637 < Myrilla/M < Myrle/M < Myrlene/M 10907,10911c8639 < Myron < Myrta/M < Myrtia/M < Myrtice/M < Myrtie/M --- > Myron/M 10913,10915c8641 < Myrvyn/M < Myrwyn/M < Mysore --- > Mysore/M 10916a8643 > Münchhausen/M 10919,10920c8646,8647 < NAACP < NAFTA --- > NAACP/M > NAFTA/M 10926,10927c8653,8654 < NBA < NBC --- > NBA/M > NBC/M 10930c8657 < NCAA --- > NCAA/M 10937,10938c8664,8665 < NFL < NGO/MS --- > NFL/M > NGO/SM 10940c8667 < NHL --- > NHL/M 10949c8676 < NPR --- > NPR/M 10953a8681 > NSA/M 10968c8696 < Nabokov --- > Nabokov/M 10970,10972c8698 < Nadean/M < Nadeen/M < Nader --- > Nader/M 10975d8700 < Nadiya/M 10977d8701 < Nady/M 10980,10982c8704,8706 < Nagoya < Nagpur < Nagy --- > Nagoya/M > Nagpur/M > Nagy/M 10984c8708 < Nahum --- > Nahum/M 10989d8712 < Nalani/M 10996,10997c8719 < Nanak < Nananne/M --- > Nanak/M 10999,11001c8721 < Nancee/M < Nancey/M < Nanchang --- > Nanchang/M 11003,11005c8723 < Nancie/M < Nancy < Nanete/M --- > Nancy/M 11008,11009d8725 < Nanice/M < Nanine/M 11011,11012d8726 < Nanking/MS < Nannette/M 11015d8728 < Nanny/M 11018c8731 < Nansen --- > Nansen/M 11021d8733 < Naoma/M 11023d8734 < Nap/M 11029,11031c8740 < Napoleonic < Nappie/M < Nappy/M --- > Napoleonic/M 11036d8744 < Nariko/M 11040c8748 < Narragansett --- > Narragansett/M 11042,11043c8750,8751 < Nash < Nashua --- > Nash/M > Nashua/M 11049,11050c8757 < Natal/M < Natala/M --- > Natal's 11052d8758 < Natalee/M 11055,11056d8760 < Natalina/M < Nataline/M 11058d8761 < Nataniel/M 11060,11061c8763 < Natassia/M < Natchez --- > Natchez/M 11063d8764 < Nathalia/M 11065c8766 < Nathan/S --- > Nathan/SM 11069c8770,8771 < Nathanil/M --- > Nathans/M > Nation/M 11073,11074c8775 < Natka/M < Natty/M --- > Natty's 11076c8777 < Naugahyde --- > Naugahyde/M 11078,11079c8779 < Nautilus < Navaho/M --- > Nautilus/M 11082c8782 < Navarre --- > Navarre/M 11086,11088c8786,8788 < Nazarene < Nazareth < Nazca --- > Nazarene/M > Nazareth/M > Nazca/M 11090d8789 < Naziism/SM 11099d8797 < Neala/M 11101,11103d8798 < Neall/M < Nealon/M < Nealson/M 11105,11106c8800,8801 < Neanderthal/MS < Neapolitan --- > Neanderthal/SM > Neapolitan/M 11111c8806 < Nebuchadnezzar --- > Nebuchadnezzar/M 11116d8810 < Neddie/M 11118d8811 < Nedi/M 11121,11122c8814 < Nefen/M < Nefertiti --- > Nefertiti/M 11129c8821,8822 < Nehemiah --- > Negros/M > Nehemiah/M 11132,11133d8824 < Neila/M < Neile/M 11135,11136d8825 < Neilla/M < Neille/M 11138,11139d8826 < Nelia/M < Nelie/M 11147c8834 < Nelson --- > Nelson/M 11150c8837 < Neogene --- > Neogene/M 11157c8844 < Nerf --- > Nerf/M 11159,11168c8846,8847 < Nerita/M < Nero < Neron/M < Nert/M < Nerta/M < Nerte/M < Nerti/M < Nertie/M < Nerty/M < Neruda --- > Nero/M > Neruda/M 11171,11172c8850 < Nesselrode < Nessi/M --- > Nesselrode/M 11174d8851 < Nessy/M 11179c8856 < Nestorius --- > Nestorius/M 11181,11182c8858,8860 < Netherlander/MS < Netherlands --- > Netflix/M > Netherlander/SM > Netherlands/M 11185d8862 < Netti/M 11187,11188d8863 < Nettle/M < Netty/M 11190,11191c8865,8866 < Nev < Neva --- > Nev/M > Neva/M 11200d8874 < Nevsa/M 11205c8879 < Newman --- > Newman/M 11207d8880 < Newsvine/M 11212c8885 < Nexis --- > Nexis/M 11214d8886 < Neysa/M 11217c8889 < Ni --- > Ni/M 11222,11223c8894,8895 < Nibelung < Nicaea --- > Nibelung/M > Nicaea/M 11228c8900 < Nicene --- > Nicene/M 11231c8903 < Nicholas --- > Nicholas/M 11233,11234c8905,8906 < Nicholle/M < Nicholson --- > Nichols/M > Nicholson/M 11237d8908 < Nickey/M 11240c8911 < Nicklaus --- > Nicklaus/M 11242,11244c8913 < Nickola/SM < Nickolai/M < Nickolaus/M --- > Nickolas/M 11248c8917 < Nicodemus --- > Nicodemus/M 11251c8920,8921 < Nicolai/S --- > Nicolai > Nicolas/M 11253d8922 < Nicolea/M 11255,11257c8924 < Nicoli/SM < Nicolina/M < Nicoline/M --- > Nicolis 11262,11263c8929,8930 < Niels/N < Nietzsche --- > Nielsen/M > Nietzsche/M 11271,11272c8938 < Nijinsky < Nikaniki/M --- > Nijinsky/M 11276c8942 < Nikkei --- > Nikkei/M 11278d8943 < Nikkie/M 11284,11287c8949 < Nikolayev < Nikoletta/M < Nikolia/M < Nikolos/M --- > Nikolayev/M 11289d8950 < Nil/SM 11290a8952 > Nils 11292,11293c8954,8955 < Nimitz < Nimrod --- > Nimitz/M > Nimrod/M 11295d8956 < Ninetta/M 11298,11299d8958 < Ninnetta/M < Ninnette/M 11301,11302c8960,8961 < Nintendo < Niobe --- > Nintendo/M > Niobe/M 11306c8965 < Nirvana --- > Nirvana/M 11308,11309c8967 < Nisei < Nissa/M --- > Nisei/M 11311,11313d8968 < Nisse/M < Nissie/M < Nissy/M 11318d8972 < Nixie 11320c8974 < Nkrumah --- > Nkrumah/M 11323d8976 < Noach/M 11325d8977 < Noak/M 11327,11329c8979 < Noami/M < Nobe/M < Nobel --- > Nobel/M 11331d8980 < Nobie/M 11333d8981 < Noby/M 11336,11338d8983 < Noelani/M < Noell/M < Noella/M 11340,11341d8984 < Noellyn/M < Noelyn/M 11343d8985 < Noh 11347d8988 < Nolana/M 11349d8989 < Nolie/M 11351,11353c8991 < Nollie/M < Nolly/M < Nome --- > Nome/M 11356d8993 < Nonah/M 11360d8996 < Nonnah/M 11366,11367d9001 < Norbie/M < Norby/M 11369d9002 < Norean/M 11371d9003 < Norene/M 11374,11376c9006 < Norina/M < Norine/M < Norma --- > Norma/M 11380,11383c9010 < Normie/M < Normy/M < Norplant < Norri/MS --- > Norplant/M 11385c9012 < Norry/M --- > Norris/M 11388c9015 < Norsemen --- > Norsemen/M 11391c9018 < Northampton --- > Northampton/M 11403c9030 < Norwich --- > Norwich/M 11405c9032 < Nostradamus --- > Nostradamus/M 11407c9034 < Nottingham --- > Nottingham/M 11411c9038 < Nova --- > Nova/M 11413d9039 < Novelia/M 11415c9041 < Novgorod --- > Novgorod/M 11418c9044 < Novokuznetsk --- > Novokuznetsk/M 11425,11427c9051,9053 < Nubia < Nubian < Nukualofa --- > Nubia/M > Nubian/M > Nukualofa/M 11432,11433c9058,9059 < Nuremberg < Nureyev --- > Nuremberg/M > Nureyev/M 11437d9062 < Nydia/M 11441,11452c9066,9077 < O'Brien < O'Casey < O'Connell < O'Connor < O'Donnell < O'Hara < O'Higgins < O'Keeffe < O'Neil < O'Neill < O'Rourke < O'Toole --- > O'Brien/M > O'Casey/M > O'Connell/M > O'Connor/M > O'Donnell/M > O'Hara/M > O'Higgins/M > O'Keeffe/M > O'Neil/M > O'Neill/M > O'Rourke/M > O'Toole/M 11463c9088 < OK/SM --- > OK/SMDG 11477,11478c9102,9103 < Oakley < Oates --- > Oakley/M > Oates/M 11481,11482c9106 < Obadiah < Obadias/M --- > Obadiah/M 11483a9108 > Obamacare 11485d9109 < Obediah/M 11487,11488c9111 < Oberon < Obidiah/M --- > Oberon/M 11490,11491c9113 < Oby/M < Occam --- > Occam/M 11493c9115 < Occidental/SM --- > Occidental/MS 11499c9121 < Octavia --- > Octavia/M 11504,11507d9125 < Ode/RM < Odele/M < Odelia/M < Odelinda/M 11509,11510d9126 < Odella/M < Odelle/M 11513,11514c9129 < Odets < Odetta/M --- > Odets/M 11516d9130 < Odey/M 11518,11519d9131 < Odilia/M < Odille/M 11527c9139 < Oedipal --- > Oedipal/M 11531,11532c9143 < Ofella/M < Offenbach --- > Offenbach/M 11534,11536c9145 < Ofilia/M < Ogbomosho < Ogdan/M --- > Ogbomosho/M 11538d9146 < Ogdon/M 11540c9148 < Oglethorpe --- > Oglethorpe/M 11545d9152 < Ojibway/MS 11547,11549c9154,9156 < Okeechobee < Okefenokee < Okhotsk --- > Okeechobee/M > Okefenokee/M > Okhotsk/M 11554,11555c9161,9162 < Oklahoman < Oktoberfest --- > Oklahoman/M > Oktoberfest/M 11558d9164 < Olag/M 11561c9167 < Oldenburg --- > Oldenburg/M 11565d9170 < Ole/MV 11568,11569d9172 < Olenka/M < Olenolin/M 11571d9173 < Olia/M 11576,11577c9178 < Olivero/M < Olivette/M --- > Oliver/M 11580,11582c9181 < Olivie/MR < Oliviero/M < Oliy/M --- > Olivier/M 11585c9184 < Olmec --- > Olmec/M 11589,11590d9187 < Olva/M < Olvan/M 11596,11597c9193,9194 < Olympic/S < Olympie/M --- > Olympic/SM > Olympics/M 11603c9200 < Omayyad --- > Omayyad/M 11605d9201 < Omero/M 11608,11609c9204 < Onassis < Ondrea/M --- > Onassis/M 11611c9206 < Onega --- > Onega/M 11614,11616d9208 < Onfre/M < Onfroi/M < Onida/M 11619d9210 < Onofredo/M 11628d9218 < Opalina/M 11631a9222 > OpenOffice/M 11633,11634c9224 < Ophelie/M < Ophiuchus --- > Ophiuchus/M 11639,11643d9228 < Oralee/M < Oralia/M < Oralie/M < Oralla/M < Oralle/M 11645c9230 < Orange --- > Orange/M 11648d9232 < Orbadiah/M 11656,11660d9239 < Orelee/M < Orelia/M < Orelie/M < Orella/M < Orelle/M 11662,11663c9241,9242 < Oreo < Orestes --- > Oreo/M > Orestes/M 11665c9244 < Orient --- > Orient/M 11680c9259 < Orphic --- > Orphic/M 11682d9260 < Orran/M 11685,11686d9262 < Orsa/M < Orsola/M 11689d9264 < Ortensia/M 11696,11697c9271,9272 < Orwell < Orwellian --- > Orwell/M > Orwellian/M 11698a9274 > Os/M 11703,11704c9279 < Osborne < Osbourn/M --- > Osborne/M 11707c9282 < Osceola --- > Osceola/M 11709c9284 < Oshawa --- > Oshawa/M 11718c9293 < Ostwald --- > Ostwald/M 11720,11725c9295 < Oswald < Oswell/M < Otes < Otha/M < Othelia/M < Othella/M --- > Oswald/M 11727,11728d9296 < Othilia/M < Othilie/M 11733,11735c9301,9303 < Otto < Ottoman < Ouagadougou --- > Otto/M > Ottoman/M > Ouagadougou/M 11737,11738c9305,9307 < Ovid < Owen/S --- > Ovid/M > Owen/SM > Owens/M 11741c9310 < Oxnard --- > Oxnard/M 11743c9312 < Oxus --- > Oxus/M 11745c9314 < Oz --- > Oz/M 11759a9329 > PCMCIA 11762,11763c9332,9333 < PDA/MS < PDF/MS --- > PDA/SM > PDF/SM 11769a9340 > PGP 11772c9343 < PLO --- > PLO/M 11786c9357 < PTA --- > PTA/M 11801d9371 < Packston/M 11803d9372 < Pacorro/M 11805,11808c9374 < Paddie/M < Paddy/M < Paderewski < Padget/M --- > Paderewski/M 11813,11815c9379,9380 < Padriac/M < Paganini < Page --- > Paganini/M > Page/M 11817c9382 < Pahlavi --- > Pahlavi/M 11819,11820c9384 < Pail/M < Paine --- > Paine/M 11824,11825c9388,9389 < Palau < Palembang --- > Palau/M > Palembang/M 11827,11828c9391,9392 < Paleogene < Paleolithic --- > Paleogene/M > Paleolithic/M 11833,11834c9397,9398 < Palestrina < Paley --- > Palestrina/M > Paley/M 11836c9400 < Palin/MS --- > Palin/M 11838,11841c9402,9404 < Pall/M < Palladio < Palm/MR < Palmerston --- > Palladio/M > Palmer/M > Palmerston/M 11848,11854c9411,9412 < Pamelina/M < Pamella/M < Pamirs < Pammi/M < Pammie/M < Pammy/M < Pampers --- > Pamirs/M > Pampers/M 11859d9416 < Panchito/M 11863c9420 < Pankhurst --- > Pankhurst/M 11865d9421 < Pansie/M 11867c9423 < Pantagruel --- > Pantagruel/M 11869c9425 < Pantheon --- > Pantheon/M 11874d9429 < Papagena/M 11877,11879c9432,9433 < Paquito/M < Paracelsus < Paraclete --- > Paracelsus/M > Paraclete/M 11882a9437 > Paralympic/S 11885a9441 > Paraná/M 11887c9443 < Pareto --- > Pareto/M 11890c9446 < Park/SR --- > Park/SMR 11891a9448 > Parker/M 11893,11894c9450,9453 < Parkman < Parliament --- > Parkman/M > Parks/M > Parliament/M > Parmenides 11897,11901c9456,9458 < Parnell < Parr < Parrish < Parrnell/M < Parry --- > Parnell/M > Parr/M > Parrish/M 11905c9462 < Parsons --- > Parsons/M 11914c9471 < Pasternak --- > Pasternak/M 11916c9473 < Pat/N --- > Pat/MN 11918c9475 < Patagonian --- > Patagonian/M 11922,11925c9479,9480 < Paterson < Patience/M < Patin/M < Patna --- > Paterson/M > Patna/M 11934,11935d9488 < Patrizio/M < Patrizius/M 11939c9492 < Patti --- > Patti/M 11941,11942c9494 < Pattin/M < Patton --- > Patton/M 11947d9498 < Pauletta/M 11949c9500 < Pauli --- > Pauli/M 11952,11953c9503,9504 < Pauline < Paulita/M --- > Pauline/M > Pauling/M 11956c9507 < Pavarotti --- > Pavarotti/M 11959d9509 < Pavla/M 11961,11962c9511,9512 < Pavlova < Pavlovian --- > Pavlova/M > Pavlovian/M 11964d9513 < Paxon/M 11974c9523 < Peale --- > Peale/M 11977d9525 < Pearla/M 11980d9527 < Pearline/M 11982,11984c9529,9530 < Peary < Pebrook/M < Pechora --- > Peary/M > Pechora/M 11994,11995d9539 < Peggi/M < Peggie/M 11997c9541 < Pei --- > Pei/M 12000c9544 < Pekinese/MS --- > Pekinese/M 12006a9551 > Pen/M 12009d9553 < Penelopa/M 12011c9555 < Penn --- > Penn/M 12014,12015d9557 < Penni/M < Pennie/M 12018c9560 < Pennsylvanian/SM --- > Pennsylvanian/MS 12030c9572 < Peoria --- > Peoria/M 12033d9574 < Pepillo/M 12036d9576 < Pepito/M 12038,12039c9578,9579 < Pepys < Pequot --- > Pepys/M > Pequot/M 12041,12043c9581,9583 < Percheron < Percival < Percy --- > Percheron/M > Percival/M > Percy/M 12047,12050c9587,9588 < Peria/M < Perice/M < Periclean < Pericles --- > Periclean/M > Pericles/M 12051a9590 > Perkins/M 12058d9596 < Pernell/M 12060c9598 < Peron --- > Peron/M 12062,12063c9600,9601 < Perren/M < Perri/M --- > Perri/MR > Perrier/M 12065,12066c9603,9604 < Perry/R < Perseid --- > Perry/M > Perseid/M 12070c9608 < Pershing --- > Pershing/M 12077,12078c9615 < Peshawar < Pet --- > Peshawar/M 12083a9621 > Peters/MN 12086d9623 < Peterus/M 12089c9626 < Petra --- > Petra/M 12091d9627 < Petrina/M 12093d9628 < Petronia/M 12095d9629 < Petronille/M 12097d9630 < Petunia/M 12099d9631 < Peyter/M 12104c9636 < Phaedra --- > Phaedra/M 12106,12107c9638 < Phaidra/M < Phanerozoic --- > Phanerozoic/M 12114d9644 < Phedra/M 12116d9645 < Phelia/M 12118,12119c9647,9648 < Phidias < Phil/Y --- > Phidias/M > Phil/MY 12121d9649 < Philbert/M 12123,12125c9651,9652 < Philemon < Philip/S < Philipa/M --- > Philemon/M > Philip/MS 12128c9655 < Philippians --- > Philippians/M 12129a9657 > Philippines/M 12131,12132c9659 < Philis/M < Philistine --- > Philistine/M 12134,12135c9661 < Phillie/M < Phillip/S --- > Phillip/SM 12138c9664 < Phillipp/M --- > Phillips/M 12143d9668 < Phip/M 12145c9670 < Phobos --- > Phobos/M 12150,12152c9675 < Photoshop/MS < Photoshopped < Photoshopping --- > Photoshop/M 12157d9679 < Phylis/M 12160,12161d9681 < Phyllys/M < Phylys/M 12167c9687 < Piccadilly --- > Piccadilly/M 12169c9689 < Pickett --- > Pickett/M 12172c9692 < Pict --- > Pict/M 12175d9694 < Pier/M 12177d9695 < Pierette/M 12184d9701 < Pietrek/M 12186,12187d9702 < Piggy/M < Pigmy/SM 12189,12191c9704,9707 < Pilate/S < Pilcomayo < Pilgrim/S --- > Pilate/MS > Pilates/M > Pilcomayo/M > Pilgrim/SM 12194d9709 < Pincas/M 12198c9713 < Pinkerton --- > Pinkerton/M 12201c9716 < Pinter --- > Pinter/M 12204,12205d9718 < Pip/MR < Piper/M 12208,12212c9721,9723 < Pippo/M < Pippy/M < Piraeus < Pirandello < Pisa --- > Piraeus/M > Pirandello/M > Pisa/M 12214c9725 < Pisistratus --- > Pisistratus/M 12217c9728 < Pitt/S --- > Pitt/SM 12218a9730 > Pitts/M 12221c9733 < Pizarro --- > Pizarro/M 12225c9737 < Planck --- > Planck/M 12230c9742 < Plath --- > Plath/M 12243c9755 < Pliny --- > Pliny/M 12252c9764,9765 < Podgorica --- > Poconos/M > Podgorica/M 12254,12255c9767,9768 < Podunk < Poe --- > Podunk/M > Poe/M 12257a9771 > Poincaré/M 12263c9777,9778 < Pol/Y --- > Pokémon/M > Pol/MY 12270c9785 < Politburo --- > Politburo/M 12273c9788 < Pollock --- > Pollock/M 12276c9791 < Pollyanna --- > Pollyanna/M 12282,12283c9797,9798 < Polyphemus < Pomerania --- > Polyphemus/M > Pomerania/M 12285,12286c9800,9801 < Pomona < Pompadour --- > Pomona/M > Pompadour/M 12290,12291c9805,9806 < Ponce < Pontchartrain --- > Ponce/M > Pontchartrain/M 12293c9808 < Pontianak --- > Pontianak/M 12296,12297c9811,9812 < Poona < Pope --- > Poona/M > Pope/M 12299c9814 < Popocatepetl --- > Popocatepetl/M 12302,12303c9817 < Poppy/M < Popsicle --- > Popsicle/M 12307c9821,9822 < Port/R --- > Port/MR > Porter/M 12309d9823 < Portie/M 12312c9826 < Portsmouth --- > Portsmouth/M 12315d9828 < Porty/M 12320c9833 < Potemkin --- > Potemkin/M 12322c9835 < Potsdam --- > Potsdam/M 12324c9837 < Potter --- > Potter/M 12327,12328c9840,9841 < Pound < Poussin --- > Pound/M > Poussin/M 12329a9843 > PowerPC/M 12331c9845 < Powers --- > Powers/M 12335c9849 < Pr/MN --- > Pr/M 12338c9852 < Praetorian --- > Praetorian/M 12341c9855 < Prakrit --- > Prakrit/M 12345c9859 < Praxiteles --- > Praxiteles/M 12350d9863 < Pren/M 12352d9864 < Prent/M 12356,12357c9868,9869 < Presbyterian/MS < Presbyterianism/SM --- > Presbyterian/SM > Presbyterianism/MS 12359,12361c9871,9872 < President/SM < Presley < Preston --- > Presley/M > Preston/M 12365,12366c9876,9877 < Price < Priestley --- > Price/M > Priestley/M 12369d9879 < Principal 12374d9883 < Priscella/M 12377d9885 < Prissie/M 12382c9890 < Procrustean --- > Procrustean/M 12388,12389c9896,9897 < Prokofiev < Promethean --- > Prokofiev/M > Promethean/M 12394c9902 < Protagoras --- > Protagoras/M 12397c9905 < Protestantism/MS --- > Protestantism/SM 12399c9907 < Proudhon --- > Proudhon/M 12402a9911 > Provençal/M 12404,12405c9913,9914 < Providence/MS < Provo --- > Providence/SM > Provo/M 12410d9918 < Prudi/M 12416c9924 < Prut --- > Prut/M 12419c9927 < Psalms --- > Psalms/M 12421c9929 < Pseudomonas/MS --- > Pseudomonas/M 12425c9933 < Ptolemaic --- > Ptolemaic/M 12429,12430c9937,9938 < Puccini < Puck --- > Puccini/M > Puck/M 12432,12434c9940,9942 < Puebla < Pueblo < Puff/M --- > Puebla/M > Pueblo/M > Puerto 12437,12438c9945,9946 < Pulaski < Pulitzer --- > Pulaski/M > Pulitzer/M 12440c9948 < Punch --- > Punch/M 12444,12445c9952,9953 < Purana < Purcell --- > Purana/M > Purcell/M 12450,12451c9958,9959 < Puritan < Puritanism/SM --- > Puritan/M > Puritanism/MS 12454,12455c9962,9963 < Pusey < Pushkin --- > Pusey/M > Pushkin/M 12458,12459c9966 < Putnam < Putnem/M --- > Putnam/M 12465c9972 < Pym --- > Pym/M 12471c9978 < Pyrrhic --- > Pyrrhic/M 12473,12474c9980,9981 < Pythagorean < Pythias --- > Pythagorean/M > Pythias/M 12475a9983,9984 > Pétain/M > Pôrto/M 12476a9986 > QA 12487c9997 < Qingdao --- > Qingdao/M 12494c10004 < Quasimodo --- > Quasimodo/M 12500c10010 < Quebecois --- > Quebecois/M 12502c10012 < Queen/S --- > Queen/MS 12508d10017 < Querida/M 12513d10021 < Quill/M 12518c10026 < Quinn --- > Quinn/M 12523d10030 < Quintilla/M 12525d10031 < Quintina/M 12528c10034 < Quirinal --- > Quirinal/M 12531c10037 < Quixote --- > Quixote/M 12533,12534c10039,10040 < Qumran < Quonset --- > Qumran/M > Quonset/M 12535a10042,10045 > Qur'anic > Quran > Quranic > Québecois/M 12537c10047 < R/MGD --- > R/MD 12553a10064 > RISC 12565c10076 < RTFM/GSD --- > RTFM 12570d10080 < Rabbi/M 12572c10082 < Rabelaisian --- > Rabelaisian/M 12577d10086 < Rachele/M 12579c10088 < Rachmaninoff --- > Rachmaninoff/M 12581d10089 < Rad/M 12583,12584d10090 < Raddie/M < Raddy/M 12586d10091 < Raeann/M 12590,12594d10094 < Rafaela/M < Rafaelia/M < Rafaelita/M < Rafaellle/M < Rafaello/M 12598d10097 < Raffarty/M 12604c10103 < Rahal/M --- > Ragnarök/M 12612,12613c10111 < Rainier < Rakel/M --- > Rainier/M 12616d10113 < Ralina/M 12618d10114 < Ram 12622c10118 < Ramakrishna --- > Ramakrishna/M 12624c10120 < Ramayana --- > Ramayana/M 12630,12633c10126,10128 < Ramonda/M < Ramos < Ramsay < Ramses --- > Ramos/M > Ramsay/M > Ramses/M 12637,12638c10132 < Rancell/M < Rand --- > Rand/M 12642d10135 < Randee/M 12644d10136 < Randene/M 12646,12647d10137 < Randie/M < Randolf/M 12650d10139 < Ranee/M 12653,12656c10142 < Rania/M < Ranice/M < Ranique/M < Rankin --- > Rankin/M 12658,12660d10143 < Ranna/M < Ransell/M < Ransom/M 12662,12663c10145,10146 < Raphael < Raphaela/M --- > Raphael/M > Rappaport/M 12666d10148 < Raquela/M 12669,12670d10150 < Rasia/M < Rasla/M 12672c10152,10153 < Rasputin --- > Rasputin/M > Rasta 12674c10155,10156 < Rastafarian/M --- > Rastafarian/MS > Rastafarianism 12678,12679c10160 < Ravel < Raven/M --- > Ravel/M 12683c10164 < Rawalpindi --- > Rawalpindi/M 12685c10166 < Ray --- > Ray/M 12688d10168 < Raychel/M 12690c10170 < Rayleigh --- > Rayleigh/M 12695,12696d10174 < Raynard/M < Raynell/M 12699d10176 < Rayshell/M 12704,12705c10181 < Read/GM < Reade --- > Reade/G 12709,12711c10185 < Reagen/M < Realtor < Reamonn/M --- > Realtor/M 12714,12715d10187 < Rebbecca/M < Rebe/M 12717c10189 < Rebecca/M --- > Rebecca's 12719,12721c10191 < Rebeka/M < Rebekah < Rebekkah/M --- > Rebekah/M 12726d10195 < Reddit/M 12730c10199 < Redmond --- > Redmond/M 12732d10200 < Reeba/M 12738,12740c10206 < Reeta/M < Reeva/M < Reeves --- > Reeves/M 12743d10208 < Reg/N 12746d10210 < Reggi/MS 12748d10211 < Reggy/M 12750c10213 < Reginae --- > Reginae/M 12752d10214 < Reginauld/M 12756c10218 < Rehnquist --- > Rehnquist/M 12758,12760c10220,10221 < Reid/R < Reidar/M < Reider/M --- > Reichstag's > Reid/M 12764,12765c10225 < Reinald/M < Reinaldo/SM --- > Reinaldo/M 12768c10228 < Reinhardt --- > Reinhardt/M 12770,12773c10230 < Reinold/M < Reinwald/M < Rem/M < Remanence/S --- > Remanence 12775c10232 < Remarque --- > Remarque/M 12777c10234 < Remington --- > Remington/M 12781d10237 < Renado/M 12794,12795d10249 < Renell/M < Renelle/M 12799c10253 < Renoir --- > Renoir/M 12809,12813c10263,10265 < Retha/M < Reube/M < Reuben < Reunion < Reuters --- > Reuben/M > Reunion/M > Reuters/M 12819c10271,10272 < Revere --- > Revelations/M > Revere/M 12821d10273 < Revkah/M 12823c10275 < Rex --- > Rex/M 12825c10277 < Reyes --- > Reyes/M 12830a10283 > Reynolds/M 12833,12835c10286,10287 < Rhea < Rheba/M < Rhee --- > Rhea/M > Rhee/M 12837,12838c10289 < Rhenish < Rheta/M --- > Rhenish/M 12840,12841d10290 < Rhetta/M < Rhiamon/M 12844d10292 < Rhianon/M 12849,12850c10297,10298 < Rhode < Rhodes --- > Rhode/S > Rhodes/M 12853,12855d10300 < Rhodia/M < Rhodie/M < Rhody/M 12860,12863c10305 < Riane/M < Riannon/M < Rianon/M < Ribbentrop --- > Ribbentrop/M 12867,12868c10309 < Ricardo < Ricca/M --- > Ricardo/M 12870c10311 < Rice --- > Rice/M 12872,12874c10313,10315 < Richard/S < Richardo/M < Richardson --- > Richard/MS > Richards/M > Richardson/M 12879,12883c10320,10321 < Richmound/M < Richter < Richthofen < Richy/M < Rici/M --- > Richter/M > Richthofen/M 12891c10329 < Rickover --- > Rickover/M 12894d10331 < Ricoriki/M 12896c10333 < Ride --- > Ride/M 12910,12912c10347,10349 < Riley < Rilke < Rimbaud --- > Riley/M > Rilke/M > Rimbaud/M 12915d10351 < Ring/M 12919d10354 < Riobard/M 12921,12922c10356,10357 < Rip/M < Ripley --- > Rios/M > Ripley/M 12924c10359 < Risorgimento --- > Risorgimento/M 12930,12932c10365,10367 < Rivalee/M < Rivera < Rivers --- > Rivas/M > Rivera/M > Rivers/M 12934d10368 < Rivi/M 12936,12937d10369 < Rivkah/M < Rivy/M 12939c10371 < Rizal --- > Rizal/M 12942,12944d10373 < Roana/M < Roanna/M < Roanne/M 12947c10376 < Rob/MZ --- > Rob/M 12949,12950d10377 < Robbert/M < Robbi/M 12952a10380 > Robbins/M 12954,12957d10381 < Robbyn/M < Robena/M < Robenia/M < Robers/M 12961a10386 > Roberts/M 12963,12964c10388,10389 < Robeson < Robespierre --- > Robeson/M > Robespierre/M 12968,12969d10392 < Robinett/M < Robinetta/M 12972c10395 < Robinson --- > Robinson/M 12975c10398 < Robson --- > Robson/M 12984,12985d10406 < Rochell/M < Rochella/M 12988,12993c10409,10411 < Rochette/M < Rock < Rockefeller < Rockey/M < Rockford < Rockie/M --- > Rock/M > Rockefeller/M > Rockford/M 12996c10414 < Rockwell --- > Rockwell/M 13002d10419 < Roddie/M 13005d10421 < Roderich/M 13008d10423 < Rodge/MZR 13009a10425 > Rodgers/M 13012,13015c10428,10429 < Rodie/M < Rodin < Rodina/M < Rodney --- > Rodin/M > Rodney/M 13022d10435 < Rodrique/M 13028c10441,10442 < Rogerio/M --- > Roger/M > Rogers/M 13031a10446 > Roku/M 13033c10448 < Roland --- > Roland/M 13037d10451 < Roley/M 13040,13041c10454,10455 < Rolland < Rollerblade --- > Rolland/M > Rollerblade/M 13043a10458 > Rollins/M 13045c10460 < Rolodex --- > Rolodex/M 13055c10470 < Romano --- > Romano/M 13057c10472,10473 < Romansh --- > Romans/M > Romansh/M 13062c10478 < Romeo --- > Romeo/M 13065c10481 < Romney --- > Romney/M 13067,13068d10482 < Romona/M < Romonda/M 13074d10487 < Ronalda/M 13076,13077d10488 < Ronica/M < Ronna/M 13079d10489 < Ronnica/M 13084,13085d10493 < Roobbie/M < Roomba/MS 13090,13092d10497 < Rora/M < Rori/M < Rorie/M 13094c10499 < Rorschach --- > Rorschach/M 13098,13100d10502 < Rosabel/M < Rosabella/M < Rosabelle/M 13107d10508 < Rosalinde/M 13110d10510 < Rosalynd/M 13113d10512 < Rosana/M 13116c10515 < Rosario --- > Rosario/M 13121d10519 < Roseanna/M 13125,13127d10522 < Roselia/M < Roselin/M < Roseline/M 13130d10524 < Rosemaria/M 13133d10526 < Rosemonde/M 13136d10528 < Rosene/M 13138,13141c10530,10531 < Rosetta < Rosette/M < Roshelle/M < Rosicrucian --- > Rosetta/M > Rosicrucian/M 13146d10535 < Rosmunda/M 13151,13152c10540 < Rossy/M < Rostand --- > Rostand/M 13156c10544 < Rosy/M --- > Rosy's 13159,13160c10547,10548 < Rothko < Rothschild --- > Rothko/M > Rothschild/M 13163c10551 < Rouault --- > Rouault/M 13167d10554 < Rouvin/M 13169c10556 < Row/MN --- > Rover/M 13171c10558 < Rowe --- > Rowe/M 13176d10562 < Rowney/M 13181d10566 < Roxi/M 13183d10567 < Roxine/M 13186c10570 < Royal --- > Royal/M 13188c10572 < Royce --- > Royce/M 13190,13197d10573 < Rozalie/M < Rozalin/M < Rozamond/M < Rozanna/M < Rozanne/M < Roze/M < Rozele/M < Rozella/M 13199,13200d10574 < Rozina/M < Rriocard/M 13205d10578 < Rube/M 13207c10580 < Rubetta/M --- > Rubens/M 13211d10583 < Rubie/M 13214,13215c10586 < Rubina/M < Rubinstein --- > Rubinstein/M 13219,13221c10590 < Ruddie/M < Ruddy/M < Rudie/M --- > Ruddy's 13223c10592 < Rudolf --- > Rudolf/M 13235d10603 < Rumania/M 13239,13240c10607,10608 < Runnymede < Runyon --- > Runnymede/M > Runyon/M 13242,13243d10609 < Ruperta/M < Ruperto/M 13249,13250c10615,10616 < Ruskin < Russ --- > Ruskin/M > Russ/M 13257d10622 < Rustie/M 13261a10627 > Rutgers/M 13263,13267c10629 < Ruthann/M < Ruthanne/M < Ruthe/M < Rutherford < Ruthi/M --- > Rutherford/M 13269d10630 < Ruthy/M 13272d10632 < Ruttger/M 13280,13281d10639 < Ryann/M < Rycca/M 13283,13285c10641 < Ryder < Ryley/M < Ryon/M --- > Ryder/M 13287,13288c10643 < Ryun/M < S/MNY --- > S/MN 13304c10659 < SEC --- > SEC/M 13311c10666 < SNP/MS --- > SNP/SM 13318a10674 > SQL 13329c10685 < SUSE --- > SUSE/M 13330a10687 > SVN/M 13335,13336c10692,10693 < Saar < Saarinen --- > Saar/M > Saarinen/M 13342c10699 < Sabin --- > Sabin/M 13345d10701 < Sabra 13348c10704 < Sacajawea --- > Sacajawea/M 13355c10711 < Sadat --- > Sadat/M 13357c10713 < Sadducee --- > Sadducee/M 13359d10714 < Sadella/M 13362,13363c10717 < Sadye/M < Safavid --- > Safavid/M 13370,13371c10724 < Sahel < Saidee/M --- > Sahel/M 13374c10727 < Sakai --- > Sakai/M 13377c10730 < Sakharov --- > Sakharov/M 13379,13384c10732,10736 < Saks < Sal/Y < Saladin < Salado < Salaidh/M < Salamis --- > Saks/M > Sal/MY > Saladin/M > Salado/M > Salamis/M 13391,13392c10743,10744 < Salinas < Salinger --- > Salinas/M > Salinger/M 13395c10747 < Salk --- > Salk/M 13397d10748 < Salli/M 13399c10750 < Sallust --- > Sallust/M 13401,13404d10751 < Sallyann/M < Sallyanne/M < Salmon/M < Saloma/M 13406,13407d10752 < Salomi/M < Salomo/M 13409d10753 < Salomone/M 13417d10760 < Salvidor/M 13420c10763 < Sam --- > Sam/M 13423c10766 < Samara --- > Samara/M 13434c10777 < Samson --- > Samson/M 13437,13438c10780 < Samuel < Samuele/M --- > Samuel/M 13440d10781 < San 13441a10783 > San/M 13446,13449c10788,10791 < Sand/Z < Sandburg < Sande/MZR < Sander/M --- > Sand/ZM > Sandburg/M > Sande/M > Sanders/M 13453c10795 < Sandinista --- > Sandinista/M 13459d10800 < Sandye/M 13461c10802 < Sanforized --- > Sanforized/M 13463c10804,10805 < Sanhedrin --- > Sanger/M > Sanhedrin/M 13469c10811 < Santa --- > Santa/M 13471,13472c10813,10814 < Santayana < Santeria --- > Santayana/M > Santeria/M 13474c10816 < Santos --- > Santos/M 13476d10817 < Sapphire/M 13480d10820 < Saraann/M 13483,13484c10823 < Sarah < Sarajane/M --- > Sarah/M 13493,13495d10831 < Sarena/M < Sarene/M < Sarette/M 13498c10834 < Sargent --- > Sargent/M 13500d10835 < Sari/M 13502d10836 < Sarine/M 13506,13507c10840,10841 < Sarto < Sartre --- > Sarto/M > Sartre/M 13510d10843 < Sashenka/M 13515,13516c10848,10849 < Sassanian < Sassoon --- > Sassanian/M > Sassoon/M 13525d10857 < Saudra/M 13527,13528c10859 < Sauncho/M < Saunder/MS --- > Saunders/M 13531,13532c10862,10863 < Saussure < Sauterne/MS --- > Saussure/M > Sauternes 13534c10865 < Savage --- > Savage/M 13538,13539c10869,10870 < Savonarola < Savoy --- > Savonarola/M > Savoy/M 13541d10871 < Saw/M 13543,13544d10872 < Sawyere/M < Sax 13548d10875 < Say/MRZ 13550c10877,10878 < Sayre/MS --- > Sayers/M > Sayre/M 13552a10881 > Scala/M 13555,13557c10884,10886 < Scandinavian/SM < Scaramouch < Scarborough --- > Scandinavian/MS > Scaramouch/M > Scarborough/M 13559,13560c10888 < Scarlatti < Scarlet/M --- > Scarlatti/M 13565c10893 < Schelling --- > Schelling/M 13569c10897 < Schiller --- > Schiller/M 13572c10900 < Schliemann --- > Schliemann/M 13574,13575c10902,10903 < Schmidt < Schnabel --- > Schmidt/M > Schnabel/M 13579c10907 < Schopenhauer --- > Schopenhauer/M 13583c10911,10912 < Schubert --- > Schrödinger/M > Schubert/M 13586c10915 < Schumann --- > Schumann/M 13594c10923 < Schweitzer --- > Schweitzer/M 13597a10927 > Scientologist/SM 13607c10937 < Scotchmen --- > Scotchmen/M 13609c10939,10940 < Scotchwomen --- > Scotchwomen/M > Scotia/M 13612c10943 < Scotsmen --- > Scotsmen/M 13614,13615c10945,10946 < Scotswomen < Scott --- > Scotswomen/M > Scott/M 13619,13621c10950 < Scottsdale < Scotty < Scout --- > Scottsdale/M 13623,13624c10952,10953 < Scranton < Scriabin --- > Scranton/M > Scriabin/M 13627c10956 < Scrooge --- > Scrooge/M 13629c10958 < Scud --- > Scud/M 13632,13634c10961,10963 < Scythia < Scythian < Se/MH --- > Scythia/M > Scythian/M > Se/MHN 13636c10965 < Seaborg --- > Seaborg/M 13640d10968 < Seana/M 13650d10977 < Secunia/M 13653d10979 < See/M 13654a10981 > Seeger/M 13663d10989 < Seka/M 13670,13671c10996 < Selestina/M < Seleucid --- > Seleucid/M 13673,13674d10997 < Selia/M < Selie/M 13678,13680c11001 < Selinda/M < Seline/M < Seljuk --- > Seljuk/M 13687c11008 < Semarang --- > Semarang/M 13689c11010 < Semiramis --- > Semiramis/M 13692c11013 < Semtex --- > Semtex/M 13695,13696c11016 < Senator < Sendai --- > Sendai/M 13700,13702c11020,11022 < Senghor < Senior < Sennacherib --- > Senghor/M > Senior/M > Sennacherib/M 13706,13707c11026,11027 < Sephardi < Sephira/M --- > Sep > Sephardi/M 13711,13712c11031,11032 < Septuagint/SM < Sequoya --- > Septuagint/MS > Sequoya/M 13717d11036 < Serene 13719,13720d11037 < Serge/M < Sergeant/M 13724c11041 < Serpens --- > Serpens/M 13729,13732c11046,11048 < Seton < Seumas/M < Seurat < Seuss --- > Seton/M > Seurat/M > Seuss/M 13734,13735c11050,11051 < Severn < Severus --- > Severn/M > Severus/M 13737,13739c11053,11055 < Sevres < Seward < Sextans --- > Sevres/M > Seward/M > Sextans/M 13742c11058 < Seyfert --- > Seyfert/M 13745,13747c11061 < Shackleton < Shadow/M < Shae/M --- > Shackleton/M 13749,13750d11062 < Shaina/M < Shaine/M 13754,13757c11066,11067 < Shakespearean < Shalna/M < Shalne/M < Shalom/M --- > Shakespearean/M > Shalom's 13760,13765d11069 < Shanan/M < Shanda/M < Shandee/M < Shandeigh/M < Shandie/M < Shandra/M 13770d11073 < Shanie/M 13773,13777c11076 < Shannah/M < Shannan/M < Shannen/M < Shannon < Shanon/M --- > Shannon/M 13779,13780c11078 < Shantee/M < Shantung --- > Shantung/M 13783d11080 < Sharai/M 13785,13787c11082,11083 < Shari < Shari'a < Sharia/M --- > Shari'a/M > Shari/M 13789,13792d11084 < Sharity/M < Sharl/M < Sharla/M < Sharleen/M 13794d11085 < Sharline/M 13796,13797c11087 < Sharon < Sharona/M --- > Sharon/M 13801d11090 < Sharyl/M 13803d11091 < Shaughn/M 13813d11100 < Shay/M 13815,13817d11101 < Shaylah/M < Shaylyn/M < Shaylynn/M 13822c11106 < Sheba --- > Sheba/M 13825,13826d11108 < Sheelagh/M < Sheelah/M 13828d11109 < Sheeree/M 13830,13831d11110 < Sheff/M < Sheffie/M 13833d11111 < Sheffy/M 13837d11114 < Shela/M 13839,13840d11115 < Shelba/M < Shelbi/M 13842d11116 < Shelden/M 13846,13848c11120 < Shelley < Shelli/M < Shellie/M --- > Shelley/M 13853,13854c11125 < Shena/M < Shenandoah --- > Shenandoah/M 13857c11128 < Sheol --- > Sheol/M 13862d11132 < Shepperd/M 13868,13874c11138,11139 < Sheridan < Sherie/M < Sherill/M < Sherilyn/M < Sherline/M < Sherlock < Sherlocke/M --- > Sheridan/M > Sherlock/M 13876,13879c11141,11142 < Sherman < Shermie/M < Shermy/M < Sherpa --- > Sherman/M > Sherpa/M 13884,13886c11147 < Sherwood < Sherwynd/M < Sherye/M --- > Sherwood/M 13888a11150 > Shetlands/M 13891c11153 < Shi'ite --- > Shi'ite/M 13894c11156 < Shijiazhuang --- > Shijiazhuang/M 13896c11158 < Shillong --- > Shillong/M 13905,13907d11166 < Shirlee/M < Shirleen/M < Shirlene/M 13909d11167 < Shirline/M 13913d11170 < Shopzilla/M 13915c11172 < Shorthorn --- > Shorthorn/M 13917d11173 < Shoshanna/M 13919d11174 < Shoshoni/SM 13922,13924c11177,11179 < Shreveport < Shriner < Shropshire --- > Shreveport/M > Shriner/M > Shropshire/M 13926,13929c11181 < Shurlock/M < Shurlocke/M < Shurwood/M < Shylock --- > Shylock/M 13931c11183 < Si --- > Si/M 13935,13936d11186 < Siana/M < Sianna/M 13938,13944c11188 < Sibbie/M < Sibby/M < Sibeal/M < Sibel/M < Sibelius < Sibella/M < Sibelle/M --- > Sibelius/M 13947d11190 < Sibilla/M 13949c11192 < Sibyl --- > Sibyl/M 13956,13958c11199 < Sidnee/M < Sidney < Sidoney/M --- > Sidney/M 13960,13962c11201,11202 < Sidonnie/M < Siegfried < Siemens --- > Siegfried/M > Siemens/M 13965d11204 < Siffre/M 13967,13969d11205 < Sigfrid/M < Sigfried/M < Sigismond/M 13971,13973c11207,11208 < Sigismund < Sigismundo/M < Sigmund --- > Sigismund/M > Sigmund/M 13975,13976c11210 < Sigurd < Sigvard/M --- > Sigurd/M 13981,13983c11215,11217 < Sikkim < Sikkimese < Sikorsky --- > Sikkim/M > Sikkimese/M > Sikorsky/M 13985,13986d11218 < Sile/M < Sileas/M 13990d11221 < Silvain/M 13999c11230 < Sim/SM --- > Sim's 14002c11233 < Simmental --- > Simmental/M 14005c11236 < Simon --- > Simon/M 14008,14009d11238 < Simonette/M < Simonne/M 14011c11240,11241 < Sims --- > Simpsons/M > Sims/M 14013,14015c11243,11245 < Sinatra < Sinclair < Sinclare/M --- > Sinatra/M > Sinbad/M > Sinclair/M 14017d11246 < Sindee/M 14021c11250 < Singer --- > Singer/M 14027d11255 < Sion 14029d11256 < Siouxie/M 14032,14033d11258 < Sisely/M < Sisile/M 14035d11259 < Sissy/M 14037,14038c11261,11262 < Sistine < Sisyphean --- > Sistine/M > Sisyphean/M 14040d11263 < Siusan/M 14045d11267 < Skell/M 14048,14051d11269 < Skip/M < Skipp/MR < Skipper/M < Skippie/M 14054,14056c11272,11273 < Skopje < Sky/M < Skye --- > Skopje/M > Skye/M 14069c11286 < Sloan --- > Sloan/M 14073c11290 < Slovakia --- > Slovakia/M 14079c11296 < Sly/M --- > Sly's 14082c11299 < Smetana --- > Smetana/M 14084,14085c11301,11302 < Smith < Smithson --- > Smith/M > Smithson/M 14089,14091c11306,11308 < Smolensk < Smollett < Smuts --- > Smolensk/M > Smollett/M > Smuts/M 14101,14102c11318,11319 < Snow < Snowbelt --- > Snow/M > Snowbelt/M 14109,14110c11326,11327 < Socratic < Soddy --- > Socratic/M > Soddy/M 14114c11331 < Soho --- > Soho/M 14118d11334 < Sollie/M 14120,14122c11336,11338 < Solomon < Solon < Solzhenitsyn --- > Solomon/M > Solon/M > Solzhenitsyn/M 14130c11346 < Sondheim --- > Sondheim/M 14137,14139d11352 < Sonni/M < Sonnie/M < Sonnnie/M 14145d11357 < Sophey/M 14147c11359 < Sophia --- > Sophia/M 14149,14150c11361,11362 < Sophoclean < Sophocles --- > Sophoclean/M > Sophocles/M 14156d11367 < Sosanna/M 14158a11370 > Sourceforge/M 14161c11373 < Southampton --- > Southampton/M 14164,14165c11376,11377 < Southerner/SM < Southey --- > Southerner/M > Southey/M 14168c11380 < Soviet --- > Soviet/M 14171c11383 < Soyuz --- > Soyuz/M 14174c11386 < Spackle --- > Spackle/M 14183c11395 < Sparks --- > Sparks/M 14185c11397 < Spartacus --- > Spartacus/M 14187,14188c11399 < Speaker < Spears --- > Spears/M 14190,14191c11401,11403 < Spence/R < Spencerian --- > Spence/RM > Spencer/M > Spencerian/M 14193,14194c11405 < Spenglerian < Spense/RM --- > Spenglerian/M 14196c11407 < Spenserian --- > Spenserian/M 14202d11412 < Spike/M 14204c11414 < Spinoza --- > Spinoza/M 14210,14211c11420,11421 < Spock < Spokane --- > Spock/M > Spokane/M 14216c11426 < Sputnik --- > Sputnik/M 14218c11428 < Squanto --- > Squanto/M 14221c11431 < Srinagar --- > Srinagar/M 14226d11435 < Stacee/M 14229d11437 < Stacia/M 14233,14237c11441,11442 < Stafani/M < Staffard/M < Stafford < Staford/M < StairMaster --- > Stafford/M > StairMaster/M 14240c11445 < Stalinist --- > Stalinist/M 14242c11447 < Stamford --- > Stamford/M 14245c11450 < Standish --- > Standish/M 14250c11455 < Stanislavsky --- > Stanislavsky/M 14252,14253c11457 < Stanleigh/M < Stanley --- > Stanley/M 14255c11459 < Stanton --- > Stanton/M 14258,14260c11462,11463 < Star/M < Starbucks < Stark --- > Starbucks/M > Stark/M 14262,14264d11464 < Starla/M < Starlene/M < Starlin/M 14271c11471 < Stavro/MS --- > Stavros 14273c11473 < Steadicam --- > Steadicam/M 14275,14277c11475 < Stearne/M < Steele < Stefa/M --- > Steele/M 14282d11479 < Steffane/M 14285,14287c11482,11483 < Steffie/M < Stein/R < Steinbeck --- > Stein/MR > Steinbeck/M 14288a11485 > Steiner/M 14291,14292c11488,11489 < Stella < Stendhal --- > Stella/M > Stendhal/M 14294d11490 < Stepha/M 14296d11491 < Stephana/M 14299d11493 < Stephannie/M 14301,14306c11495,11497 < Stephen/S < Stephenie/M < Stephenson < Stephi/M < Stephie/M < Stephine/M --- > Stephen/MS > Stephens/M > Stephenson/M 14308c11499 < Stern --- > Stern/M 14310,14311c11501 < Sterno < Stesha/M --- > Sterno/M 14314d11503 < Stevana/M 14317,14318c11506,11507 < Stevena/M < Stevenson --- > Stevens/M > Stevenson/M 14320,14321d11508 < Stevy/M < Steward/M 14325d11511 < Stillmann/M 14329,14330c11515,11516 < Stinky/M < Stirling --- > Stinky's > Stirling/M 14333c11519 < Stockton --- > Stockton/M 14340,14341c11526,11527 < Stone < Stonehenge --- > Stone/M > Stonehenge/M 14343,14348c11529,11531 < Storm/M < Stormi/M < Stormie/M < Stormy/M < Stout < Stowe --- > Stormy's > Stout/M > Stowe/M 14351,14353c11534,11536 < Stradivarius < Strasbourg < Strauss --- > Stradivarius/M > Strasbourg/M > Strauss/M 14357,14358c11540,11541 < Strindberg < Stromboli --- > Strindberg/M > Stromboli/M 14365,14366c11548,11549 < Stuyvesant < Stygian --- > Stuyvesant/M > Stygian/M 14372c11555 < Sucre --- > Sucre/M 14379,14385c11562,11567 < Sue < Suellen/M < Suetonius < Suez < Suffolk < Sufi < Sufism --- > Sue/M > Suetonius/M > Suez/M > Suffolk/M > Sufi/M > Sufism/M 14388c11570 < Sukarno --- > Sukarno/M 14399d11580 < Sully 14404a11586 > Summers/M 14406c11588 < Sumter --- > Sumter/M 14412c11594 < Sundas --- > Sundas/M 14415c11597 < Sung --- > Sung/M 14419,14421c11601,11602 < Sunny/M < Sunnyvale < Sunshine/M --- > Sunny's > Sunnyvale/M 14425c11606 < Superior --- > Superior/M 14429,14431c11610,11611 < Surabaya < Surat < Surinam/M --- > Surabaya/M > Surat/M 14437d11616 < Susanetta/M 14439c11618 < Susanna --- > Susanna/M 14442d11620 < Susette/M 14446c11624 < Sussex --- > Sussex/M 14448d11625 < Sutherlan/M 14453d11629 < Suzann/M 14465c11641 < Svengali --- > Svengali/M 14469c11645 < Swanee --- > Swanee/M 14480,14481c11656 < Sweet < Swen/M --- > Sweet/M 14490d11664 < Sybila/M 14493d11666 < Sybyl/M 14495,14496d11667 < Sydel/M < Sydelle/M 14499,14500c11670 < Sylas/M < Sylvan/M --- > Sylvan's 14504d11673 < Syman/M 14508c11677 < Synge --- > Synge/M 14511c11680 < Syriac --- > Syriac/M 14513d11681 < Szechuan/M 14516c11684,11685 < T'ang --- > Sèvres/M > T'ang/M 14518a11688 > TARP 14546d11715 < Tab/MR 14550,14554d11718 < Tabbatha/M < Tabbi/M < Tabbie/M < Tabbitha/M < Tabby/M 14557d11720 < Tabina/M 14561c11724 < Tacitus --- > Tacitus/M 14564d11726 < Tadd/M 14566,14570d11727 < Taddeusz/M < Tadeas/M < Tadeo/M < Tades < Tadio/M 14572d11728 < Tadzhikistan/M 14574,14575c11730 < Taejon < Taffy/M --- > Taejon/M 14578c11733 < Tagore --- > Tagore/M 14582c11737 < Tahoe --- > Tahoe/M 14584d11738 < Tailor/M 14588c11742 < Taiping --- > Taiping/M 14590d11743 < Taite/M 14593c11746 < Taiyuan --- > Taiyuan/M 14597c11750 < Talbot --- > Talbot/M 14600c11753 < Taliesin --- > Taliesin/M 14605,14606d11757 < Tallia/M < Tallie/M 14608d11758 < Tallou/M 14610d11759 < Tally/M 14615,14616d11763 < Talyah/M < Tam/M 14619d11765 < Tamarah/M 14621d11766 < Tamarra/M 14628d11772 < Tamiko/M 14630d11773 < Tamma/M 14632d11774 < Tammara/M 14639d11780 < Tamqrah/M 14641,14642c11782 < Tamworth < Tan --- > Tamworth/M 14644,14646c11784 < Tancred < Tandi/M < Tandie/M --- > Tancred/M 14648c11786 < Taney --- > Taney/M 14651,14652c11789 < Tangshan < Tanhya/M --- > Tangshan/M 14656d11792 < Tanitansy/M 14659d11794 < Tanney/M 14661,14663c11796 < Tannie/M < Tanny/M < Tansy/M --- > Tannhäuser/M 14672d11804 < Tarah/M 14678c11810 < Tarim --- > Tarim/M 14680,14683c11812 < Tarkington < Tarra/M < Tarrah/M < Tarrance/M --- > Tarkington/M 14685,14686c11814,11815 < Tartary < Tartuffe --- > Tartary/M > Tartuffe/M 14691,14692c11820 < Tasia/M < Tasman --- > Tasman/M 14694,14695c11822,11823 < Tasmanian < Tass --- > Tasmanian/M > Tass/M 14697c11825 < Tate --- > Tate/M 14699,14700c11827 < Tatiania/M < Tatum --- > Tatum/M 14702,14704c11829 < Tawney < Tawnya/M < Tawsha/M --- > Tawney/M 14709c11834 < Tchaikovsky --- > Tchaikovsky/M 14713d11837 < Teador/M 14716c11840 < Technicolor --- > Technicolor/M 14720,14722d11843 < Tedd/M < Tedda/M < Teddi/M 14726,14729d11846 < Tedie/M < Tedman/M < Tedmund/M < Tedra/M 14733d11849 < Teheran/M 14736,14738c11852,11854 < TelePrompter < Telemachus < Telemann --- > TelePrompter/M > Telemachus/M > Telemann/M 14740a11857 > Teller/M 14742d11858 < Temp/M 14745d11860 < Temple/M 14747c11862 < Tenn --- > Tenn/M 14750c11865 < Tennyson --- > Tennyson/M 14752d11866 < Teodoor/M 14755d11868 < Teodorico/M 14759,14760c11872 < Terence < Terencio/M --- > Terence/M 14763,14764c11875 < Tereshkova < Teresina --- > Tereshkova/M 14766d11876 < Teressa/M 14768d11877 < Teriann/M 14775d11883 < Terrel/M 14780d11887 < Terrijo/M 14782d11888 < Territorial 14784,14786c11890 < Terry < Terrye/M < Tersina/M --- > Terry/M 14790,14791c11894,11895 < Tesla < Tess --- > Tesla/M > Tess/M 14793d11896 < Tessi/M 14795d11897 < Tessy/M 14798c11900 < Tetons --- > Tetons/M 14800c11902 < Teutonic --- > Teutonic/M 14802c11904 < Tex --- > Tex/M 14808c11910 < Thackeray --- > Thackeray/M 14810,14812c11912 < Thaddeus < Thaddus/M < Thadeus/M --- > Thaddeus/M 14815,14817c11915 < Thain/M < Thaine/M < Thales --- > Thales/M 14820d11917 < Thane/M 14822,14823c11919,11920 < Thanksgiving/SM < Thant --- > Thanksgiving/MS > Thant/M 14826c11923 < Thatch/MR --- > Thatcher/M 14829,14830d11925 < Thayne/M < The 14832,14833d11926 < Theadora/M < Thebault/M 14836,14837d11928 < Thedric/M < Thedrick/M 14841c11932 < Themistocles --- > Themistocles/M 14844c11935 < Theocritus --- > Theocritus/M 14846c11937 < Theodora --- > Theodora/M 14851,14853c11942,11944 < Theosophy < Theravada < Theresa --- > Theosophy/M > Theravada/M > Theresa/M 14855,14858d11945 < Theresina/M < Theresita/M < Theressa/M < Therine/M 14863c11950 < Thespian --- > Thespian/M 14865c11952 < Thessalonian/S --- > Thessalonian/SM 14866a11954 > Thessaloníki/M 14869d11956 < Thibaud/M 14872c11959 < Thimbu --- > Thimbu/M 14877d11963 < Thomasa/M 14880d11965 < Thomasine/M 14882,14884c11967,11969 < Thomistic < Thompson < Thomson --- > Thomistic/M > Thompson/M > Thomson/M 14889d11973 < Thorn 14891d11974 < Thornie/M 14893,14895c11976,11978 < Thorny/M < Thoroughbred < Thorpe --- > Thorny's > Thoroughbred/M > Thorpe/M 14907c11990 < Thurber --- > Thurber/M 14918c12001 < Tiberius --- > Tiberius/M 14921d12003 < Tibold/M 14923c12005 < Ticonderoga --- > Ticonderoga/M 14925d12006 < Tiebold/M 14927d12007 < Tiena/M 14931,14938c12011 < Tiertza/M < Tiff/M < Tiffani/M < Tiffanie/M < Tiffany < Tiffi/M < Tiffie/M < Tiffy/M --- > Tiffany/M 14943d12015 < Tildie/M 14945,14946c12017 < Tiler/M < Tillich --- > Tillich/M 14950c12021 < Tilsit --- > Tilsit/M 14955,14956d12025 < Timmi/M < Timmie/M 14958d12026 < Timofei/M 14960,14963c12028 < Timor < Timoteo/M < Timothea/M < Timothee/M --- > Timor/M 14965c12030 < Timothy --- > Timothy/M 14970d12034 < Tine/M 14973c12037 < Tinkertoy --- > Tinkertoy/M 14975,14978c12039 < Tintoretto < Tiphani/M < Tiphanie/M < Tiphany/M --- > Tintoretto/M 14980,14981c12041 < Tipperary < Tirana/M --- > Tipperary/M 14986d12045 < Tirrell/M 14991,14992c12050,12051 < Titania < Titanic --- > Titania/M > Titanic/M 14994,14996c12053,12055 < Titicaca < Tito/SM < Titus --- > Titicaca/M > Tito/M > Titus/M 15005d12063 < Tobiah/M 15009,15013c12067,12070 < Tobit < Toby < Tobye/M < Tocantins < Tocqueville --- > Tobit/M > Toby/M > Tocantins/M > Tocqueville/M 15015,15017c12072 < Todd < Toddie/M < Toddy/M --- > Todd/M 15020,15022c12075 < Toiboid/M < Toinette/M < Tojo --- > Tojo/M 15024c12077 < Tokugawa --- > Tokugawa/M 15028c12081 < Tolkien --- > Tolkien/M 15030c12083 < Toltec --- > Toltec/M 15034,15035c12087 < Tomasina/M < Tomasine/M --- > Tomas/M 15038d12089 < Tome/M 15040d12090 < Tomkin/M 15042d12091 < Tommi/M 15044c12093 < Tommy --- > Tommy/M 15046c12095 < Tomsk --- > Tomsk/M 15051,15052d12099 < Tonie/M < Tonnie/M 15054c12101 < Tony --- > Tony/M 15056d12102 < Tonye/M 15062c12108 < Tore/M --- > Tore's 15065d12110 < Torie/M 15068c12113 < Torquemada --- > Torquemada/M 15070c12115 < Torrance --- > Torrance/M 15073,15074c12118,12119 < Torrens < Torres --- > Torrens/M > Torres/M 15078d12122 < Torrin/M 15080,15081c12124,12125 < Tortola < Tortuga --- > Tortola/M > Tortuga/M 15085c12129 < Toscanini --- > Toscanini/M 15088c12132 < Toulouse --- > Toulouse/M 15091,15094c12135 < Town/M < Townes < Towney/M < Townie/M --- > Townes/M 15096d12136 < Towny/M 15100,15101d12139 < Trace/M < Tracee/M 15108c12146 < Trajan --- > Trajan/M 15110c12148 < Transcaucasia --- > Transcaucasia/M 15112c12150,12151 < Transylvania --- > Transylvania/M > Transylvanian/M 15117d12155 < Travus/M 15119,15120c12157 < Treblinka < Trefor/M --- > Treblinka/M 15125d12161 < Trenna/M 15129,15135c12165,12166 < Tresa/M < Trescha/M < Tressa/M < Trev/MR < Trevar/M < Trevelyan < Trever/M --- > Trev/M > Trevelyan/M 15143c12174 < Trieste --- > Trieste/M 15149d12179 < Trip/M 15151c12181 < Tripitaka --- > Tripitaka/M 15159d12188 < Tristam/M 15163d12191 < Trixi/M 15165d12192 < Trixy/M 15166a12194 > Troilus/M 15168c12196 < Trollope --- > Trollope/M 15171c12199 < Trotsky --- > Trotsky/M 15174d12201 < Trstram/M 15176d12202 < Truda/M 15178,15179c12204 < Trudeau < Trudey/M --- > Trudeau/M 15181d12205 < Trudie/M 15185,15187c12209 < Trujillo < Trula/M < Trumaine/M --- > Trujillo/M 15189d12210 < Trumann/M 15192c12213 < Truth --- > Truth/M 15194d12214 < Tsingtao 15199c12219 < Tu --- > Tu/M 15202,15203c12222 < Tubman < Tuck/R --- > Tubman/M 15205,15206d12223 < Tuckie/M < Tucky/M 15215d12231 < Tulley/M 15227c12243 < Tupperware --- > Tupperware/M 15229c12245 < Turgenev --- > Turgenev/M 15238,15239c12254,12255 < Turner < Turpin --- > Turner/M > Turpin/M 15248,15249c12264,12265 < Tutankhamen < Tutsi --- > Tutankhamen/M > Tutsi/M 15253,15254c12269,12270 < Twain < Tweed --- > Twain/M > Tweed/M 15258c12274,12275 < Twinkies --- > Twinkies/M > Twitter/M 15264,15266c12281 < Tybi/M < Tybie/M < Tycho --- > Tycho/M 15270,15271d12284 < Tymon/M < Tymothy/M 15273,15274c12286,12287 < Tyndale < Tyndall --- > Tyndale/M > Tyndall/M 15276c12289 < Tyre --- > Tyre/M 15278d12290 < Tyrol/M 15280c12292 < Tyrone --- > Tyrone/M 15290c12302 < UI/MS --- > UI/SM 15298,15299c12310,12311 < UPI < UPS --- > UPI/M > UPS/M 15301d12312 < URLs 15304a12316 > USB 15306c12318 < USDA --- > USDA/M 15315a12328 > UTC 15317c12330 < Ubangi --- > Ubangi/M 15320c12333 < Ucayali --- > Ucayali/M 15322,15323c12335 < Udale/M < Udall --- > Udall/M 15334,15335d12345 < Ulaanbaatar/M < Ulberto/M 15342,15344d12351 < Ulrick/M < Ulrika/M < Ulrikaumeko/M 15348c12355 < Ulyanovsk --- > Ulyanovsk/M 15352d12358 < Umeko/M 15355c12361 < Ungava --- > Ungava/M 15366,15367c12372,12373 < Upanishads < Updike --- > Upanishads/M > Updike/M 15370,15371c12376,12378 < Ur < Ural/S --- > Ur/M > Ural/SM > Urals/M 15377d12383 < Urbanus/M 15379c12385 < Urey --- > Urey/M 15381,15384c12387,12390 < Uriah < Uriel < Uris < Urquhart --- > Uriah/M > Uriel/M > Uris/M > Urquhart/M 15386,15391c12392,12393 < Ursala/M < Ursola/M < Urson/M < Ursula < Ursulina/M < Ursuline --- > Ursula/M > Ursuline/M 15394c12396 < Urumqi --- > Urumqi/M 15396c12398 < Ustinov --- > Ustinov/M 15400d12401 < Utahn 15433c12434 < Va --- > Va/M 15439,15441c12440 < Val/MY < Valaree/M < Valaria/M --- > Val/M 15445,15446d12443 < Vale/M < Valeda/M 15448,15449d12444 < Valene/M < Valenka/M 15452d12446 < Valentijn/M 15456c12450 < Valentino --- > Valentino/M 15462,15463c12456 < Valery < Valerye/M --- > Valery/M 15465,15466d12457 < Valida/M < Valina/M 15473,15476c12464 < Vallie/M < Vally/M < Valma/M < Valois --- > Valois/M 15478d12465 < Valry/M 15480,15481c12467,12469 < Van < Vance --- > Valéry/M > Van/M > Vance/M 15485,15486c12473,12474 < Vanderbilt < Vandyke --- > Vanderbilt/M > Vandyke/M 15492,15493d12479 < Vannie/M < Vanny/M 15497,15499c12483,12485 < Varanasi < Varese < Vargas --- > Varanasi/M > Varese/M > Vargas/M 15501c12487 < Vasili/MS --- > Vasili/M 15508,15509c12494,12495 < Vauban < Vaughan --- > Vauban/M > Vaughan/M 15514c12500 < Vedanta --- > Vedanta/M 15516a12503 > Vegas/M 15518c12505 < Vela --- > Vela/M 15520c12507 < Velazquez --- > Velazquez/M 15525c12512,12513 < Velvet/M --- > Velásquez/M > Velázquez/M 15530d12517 < Venita/M 15535c12522 < Venusian --- > Venusian/M 15538,15540c12525,12526 < Veradis < Verde < Verdi --- > Verde/M > Verdi/M 15544,15550d12529 < Verene/M < Verge/M < Vergil/M < Veriee/M < Verile/M < Verina/M < Verine/M 15552d12530 < Verla/M 15554c12532 < Vermeer --- > Vermeer/M 15557c12535 < Vern/MN --- > Vern/M 15559,15560c12537 < Verne < Vernen/M --- > Verne/M 15562d12538 < Vernice/M 15566,15567c12542,12543 < Veronese < Veronica --- > Veronese/M > Veronica/M 15569d12544 < Veronike/M 15573,15574c12548 < Vespasian < Vespers --- > Vespasian/M 15578d12551 < Vevay/M 15581,15582c12554,12555 < Viagra < Vic --- > Viagra/M > Vic/M 15584c12557 < Vichy --- > Vichy/M 15589c12562 < Vicky --- > Vicky/M 15591d12563 < Victoir/M 15599,15600d12570 < Vidovic/M < Vidovik/M 15602c12572 < Viennese --- > Viennese/M 15604,15605c12574,12575 < Vietcong < Vietminh --- > Vietcong/M > Vietminh/M 15610d12579 < Viki/M 15613d12581 < Vikky/M 15615,15616c12583 < Vilhelmina/M < Villa --- > Villa/M 15618c12585 < Villon --- > Villon/M 15625,15627c12592 < Vincent/MS < Vincenty/M < Vincenz/M --- > Vincent/M 15629,15630d12593 < Vinita/M < Vinni/M 15636d12598 < Viole/M 15640d12601 < Virge/M 15644d12604 < Virgina/M 15650,15651c12610,12611 < Visakhapatnam < Visayans --- > Visakhapatnam/M > Visayans/M 15656d12615 < Vita/M 15658d12616 < Vitia/M 15666,15667c12624 < Viva/M < Vivaldi --- > Vivaldi/M 15670,15671c12627 < Vivia/M < Vivian --- > Vivian/M 15673,15674d12628 < Vivianna/M < Vivianne/M 15677d12630 < Viviene/M 15679,15681d12631 < Viviyan/M < Vivyan/M < Vivyanne/M 15683,15684c12633 < Vladamir/M < Vladimir --- > Vladimir/M 15686c12635 < Vlaminck --- > Vlaminck/M 15697c12646 < Volta --- > Volta/M 15703,15706c12652 < Vonni/M < Vonnie/M < Vonny/M < Voronezh --- > Voronezh/M 15714d12659 < Vyky/M 15722a12668 > WMD 15725a12672 > WTO 15735,15736c12682,12683 < Waco < Wade --- > Waco/M > Wade/M 15739,15742c12686,12688 < Wagnerian < Wahhabi < Waikiki < Wain/M --- > Wagnerian/M > Wahhabi/M > Waikiki/M 15744d12689 < Wait/MR 15746d12690 < Waiter/M 15749c12693 < Waksman --- > Waksman/M 15753,15754c12697,12698 < Waldensian < Waldheim --- > Waldensian/M > Waldheim/M 15756d12699 < Waldon/M 15759c12702 < Walesa --- > Walesa/M 15762c12705 < Walkman --- > Walkman/M 15764,15765c12707 < Wallace < Wallache/M --- > Wallace/M 15767c12709,12710 < Wallenstein --- > Wallenstein/M > Waller/M 15769,15771c12712,12714 < Wallis < Walliw/M < Walloon --- > Wallis/M > Walloon/M > Walls/M 15772a12716 > Walmart/M 15774c12718 < Walpurgisnacht --- > Walpurgisnacht/M 15776a12721,12722 > Walter/M > Walters/M 15779d12724 < Waly/M 15782,15784d12726 < Wandie/M < Wandis/M < Waneta/M 15786d12727 < Wanids/M 15789c12730 < Ward/N --- > Ward/M 15792c12733 < Warhol --- > Warhol/M 15795c12736 < Warren --- > Warren/M 15797c12738 < Warwick --- > Warwick/M 15800c12741 < Wash --- > Wash/M 15802,15803c12743,12744 < Washingtonian/SM < Wassermann --- > Washingtonian/MS > Wassermann/M 15805,15807c12746,12748 < Waterbury < Waterford < Watergate --- > Waterbury/M > Waterford/M > Watergate/M 15810,15815c12751,12757 < Watkins < Watson < Watt/S < Watteau < Watusi < Waugh --- > Watkins/M > Watson/M > Watt/SM > Watteau/M > Watts/M > Watusi/M > Waugh/M 15819,15820d12760 < Way/M < Waylan/M 15822,15823d12761 < Waylen/M < Waylin/M 15825,15826c12763,12764 < Wayne < Weave/M --- > Wayne/M > Weave/RM 15828c12766 < Web/R --- > Web/MR 15830c12768,12769 < Webb --- > Webb/M > Weber/M 15835c12774 < Wedgwood --- > Wedgwood/M 15838c12777 < Wehrmacht --- > Wehrmacht/M 15840d12778 < Weidar/M 15847,15848c12785 < Weizmann < Welbie/M --- > Weizmann/M 15850d12786 < Welch 15854c12790 < Welles --- > Welles/M 15856c12792 < Wells --- > Wells/M 15859c12795 < Welshmen --- > Welshmen/M 15861,15862d12796 < Wenda/M < Wendall/M 15864d12797 < Wendeline/M 15867d12799 < Wendie/M 15869,15871d12800 < Wendye/M < Wenona/M < Wenonah/M 15878c12807 < Wessex --- > Wessex/M 15882d12810 < Westbrooke/M 15884,15885c12812 < Westinghouse < Westleigh/M --- > Westinghouse/M 15887c12814 < Westminster --- > Westminster/M 15889c12816 < Westphalia --- > Westphalia/M 15891d12817 < Weylin/M 15893c12819 < Wharton --- > Wharton/M 15901,15903c12827,12828 < Whistler < Whit < Whitaker --- > Whistler/M > Whitaker/M 15907,15908c12832,12833 < Whitehall < Whitehead --- > Whitehall/M > Whitehead/M 15913c12838 < Whitman --- > Whitman/M 15915c12840 < Whitsunday/SM --- > Whitsunday/MS 15917c12842 < Whittier --- > Whittier/M 15919,15920c12844 < Wiatt/M < Wicca --- > Wicca/M 15925c12849 < Wiggins --- > Wiggins/M 15929a12854 > Wikileaks 15936c12861 < Wilberforce --- > Wilberforce/M 15940d12864 < Wilburt/M 15943c12867 < Wilde/R --- > Wilde/MR 15945,15948c12869,12870 < Wildon/M < Wileen/M < Wilek/M < Wiles --- > Wilder/M > Wiles/M 15957d12878 < Wilie/M 15959,15960c12880,12881 < Wilkes < Wilkins --- > Wilkes/M > Wilkins/M 15964d12884 < Willabella/M 15966,15968c12886 < Willamina/M < Willard < Willdon/M --- > Willard/M 15970,15972c12888 < Willemstad < Willetta/M < Willette/M --- > Willemstad/M 15975,15976c12891,12893 < William/S < Williamson --- > William/SM > Williams/M > Williamson/M 15978,15979c12895 < Willis < Willow/M --- > Willis/M 15981d12896 < Willyt/M 15983d12897 < Wilmar/M 15987,15989d12900 < Wilona/M < Wilone/M < Wilow/M 15991,15992c12902 < Wilsonian < Wilt/M --- > Wilsonian/M 15997d12906 < Win/M 15999,16000c12908,12909 < Winchester/S < Windbreaker --- > Winchester/MS > Windbreaker/M 16003,16004c12912,12913 < Windhoek < Windows --- > Windhoek/M > Windows/M 16007c12916 < Windy/M --- > Windy's 16012,16013d12920 < Wini/M < Winifield/M 16018d12924 < Winnah/M 16021,16022c12927 < Winni/M < Winnie --- > Winnie/M 16027d12931 < Winonah/M 16030c12934 < Winters --- > Winters/M 16035c12939 < Wisconsinite/SM --- > Wisconsinite/MS 16037d12940 < Wit/M 16040,16042c12943,12944 < Wittie/M < Witty/M < Witwatersrand --- > Witty's > Witwatersrand/M 16046,16048c12948,12950 < Wolf < Wolfe < Wolff --- > Wolf/M > Wolfe/M > Wolff/M 16050,16052c12952 < Wolfie/M < Wolfy/M < Wollongong --- > Wollongong/M 16054c12954 < Wolsey --- > Wolsey/M 16056c12956 < Wonder --- > Wonder/M 16059c12959 < Wood/S --- > Wood/SM 16063d12962 < Woodman 16064a12964 > Woods/M 16067,16068c12967 < Woody/M < Woolf --- > Woolf/M 16071c12970 < Woolworth --- > Woolworth/M 16075c12974 < Worcestershire --- > Worcestershire/M 16081,16082c12980 < Worms < Worth --- > Worms/M 16084d12981 < Worthy/M 16090,16092c12987,12988 < Wren < Wrennie/M < Wright --- > Wren/M > Wright/M 16096c12992 < Wuhan --- > Wuhan/M 16098,16099c12994 < Wyatan/M < Wyatt --- > Wyatt/M 16102a12998 > Wyeth/M 16104d12999 < Wylma/M 16109,16110d13003 < Wynnie/M < Wynny/M 16113c13006 < Wyomingite/MS --- > Wyomingite/SM 16126c13019 < Xanadu --- > Xanadu/M 16128,16130c13021,13022 < Xanthippe < Xavier < Xaviera/M --- > Xanthippe/M > Xavier/M 16136,16137c13028 < Xenophon < Xenos --- > Xenophon/M 16139,16140c13030 < Xerxes < Xever/M --- > Xerxes/M 16142c13032 < Xi'an --- > Xi'an/M 16145c13035 < Ximenes --- > Ximenes/M 16152,16154d13041 < Xylia/M < Xylina/M < Xymenes/M 16156c13043 < YMCA --- > YMCA/M 16160c13047 < YWCA --- > YWCA/M 16165d13051 < Yahveh/M 16167c13053 < Yakima --- > Yakima/M 16169c13055 < Yakutsk --- > Yakutsk/M 16171d13056 < Yalonda/M 16177,16179c13062 < Yamoussoukro < Yanaton/M < Yance/M --- > Yamoussoukro/M 16182c13065 < Yang --- > Yang/M 16189,16190c13072 < Yaqui < Yard/M --- > Yaqui/M 16193,16194c13075 < Yaroslavl < Yasmeen/M --- > Yaroslavl/M 16197c13078 < Yates --- > Yates/M 16202,16203c13083 < Yehudit/M < Yekaterinburg --- > Yekaterinburg/M 16205c13085 < Yellowknife --- > Yellowknife/M 16207c13087 < Yeltsin --- > Yeltsin/M 16212c13092 < Yerevan --- > Yerevan/M 16216,16218d13095 < Yettie/M < Yetty/M < Yevette/M 16220c13097 < Yggdrasil --- > Yggdrasil/M 16223d13099 < Ynes/M 16228c13104 < Yokohama --- > Yokohama/M 16231,16232d13106 < Yolane/M < Yolanthe/M 16234,16236c13108 < Yonkers < Yooper/MS < Yorgo/MS --- > Yonkers/M 16240c13112 < Yorkie --- > Yorkie/M 16249,16251c13121,13122 < Young < Youngstown < Yovonnda/M --- > Young/M > Youngstown/M 16253c13124 < Ypsilanti --- > Ypsilanti/M 16257c13128 < Yugo --- > Yugo/M 16265d13135 < Yulma/M 16269d13138 < Yurik/M 16275c13144 < Z/SDMNXT --- > Z/SMNXT 16277d13145 < Zabrina/M 16280d13147 < Zacharia/SM 16282c13149 < Zacharie/M --- > Zacharias 16284d13150 < Zacherie/M 16287d13152 < Zackariah/M 16296c13161 < Zamboni --- > Zamboni/M 16298,16299c13163 < Zamora < Zandra/M --- > Zamora/M 16301d13164 < Zaneta/M 16304,16306c13167,13169 < Zapata < Zaporozhye < Zapotec --- > Zapata/M > Zaporozhye/M > Zapotec/M 16311d13173 < Zared/M 16313d13174 < Zarla/M 16317,16319c13178 < Zebadiah/M < Zebedee < Zebulen/M --- > Zebedee/M 16321,16322c13180 < Zechariah < Zed/M --- > Zechariah/M 16328c13186 < Zelig --- > Zelig/M 16335,16338c13193,13195 < Zephaniah < Zephyrus < Zeppelin < Zerk/M --- > Zephaniah/M > Zephyrus/M > Zeppelin/M 16344c13201 < Zhengzhou --- > Zhengzhou/M 16347c13204 < Zhukov --- > Zhukov/M 16350c13207 < Ziegfeld --- > Ziegfeld/M 16354d13210 < Zilvia/M 16362c13218 < Ziploc --- > Ziploc/M 16364d13219 < Zitella/M 16368,16371c13223,13224 < Zollie/M < Zollverein < Zolly/M < Zoloft --- > Zollverein/M > Zoloft/M 16373,16375d13225 < Zonda/M < Zondra/M < Zonnya/M 16377,16381c13227 < Zorah/M < Zorana/M < Zorina/M < Zorine/M < Zorn --- > Zorn/M 16388,16389c13234 < Zsazsa/M < Zsigmondy --- > Zsigmondy/M 16393d13237 < Zulema/M 16397c13241 < Zuni --- > Zuni/M 16399d13242 < Zuzana/M 16401c13244 < Zworykin --- > Zworykin/M 16404a13248 > Zürich/M 16430c13274 < abbreviate/XDSGN --- > abbreviate/DSGNX 16431a13276 > abbé/SM 16436a13282 > abductee/MS 16441c13287 < aberration/SM --- > aberration/MS 16461c13307 < abjuration/MS --- > abjuration/SM 16482c13328 < abolitionist/MS --- > abolitionist/SM 16485c13331 < abominate/XDSGN --- > abominate/DSGNX 16492c13338 < abortionist/SM --- > abortionist/MS 16501c13347 < abrasive/MYSP --- > abrasive/MYPS 16504c13350 < abridge/DSG --- > abridge/DSLG 16519c13365 < abseil/MDRSG --- > abseil/MDSG 16524c13370 < absentminded/PY --- > absentminded/YP 16526d13371 < absinth/M 16528c13373 < absolute/PMYTNRS --- > absolute/PMYTNS 16537d13381 < absorbed/U 16540d13383 < absorber/S 16542c13385 < absorption/SM --- > absorption/M 16544d13386 < absorptivity 16547c13389 < abstemious/YP --- > abstemious/PY 16549c13391 < abstention/SM --- > abstention/MS 16552c13394 < abstract/TGSPMDRY --- > abstract/GSPMDY 16557c13399 < abstruse/RPYT --- > abstruse/YP 16559a13402 > absurdist/MS 16564c13407,13408 < abuse/EGVDSM --- > abuse's > abuse/EGVDS 16582c13426 < academician/SM --- > academician/MS 16586c13430 < accelerate/GNDSX --- > accelerate/GNXDS 16589d13432 < accelerometer/S 16593c13436 < accentuate/DSGN --- > accentuate/GNDS 16602d13444 < acceptor/S 16604d13445 < accessed/A 16608c13449 < accession/GMDS --- > accession/MDGS 16611d13451 < accidence 16613c13453 < accidental/MYS --- > accidental/SMY 16615c13455 < acclamation/SM --- > acclamation/M 16618,16619d13457 < acclimatisation < acclimatise/DSG 16624c13462 < accommodate/DSGNX --- > accommodate/XGNDS 16628c13466 < accompaniment/SM --- > accompaniment/MS 16632c13470 < accomplish/GLDS --- > accomplish/DSLG 16640c13478 < accordionist/SM --- > accordionist/MS 16651,16652c13489,13490 < accoutre/DSGL < accoutrements/M --- > accoutre/DSG > accoutrements 16656d13493 < accreted 16661c13498 < acculturate/GNDS --- > acculturate/DSGN 16663c13500 < accumulate/DSGNVX --- > accumulate/XGNVDS 16665,16666c13502,13503 < accumulator/SM < accuracy/ISM --- > accumulator/MS > accuracy/IM 16671,16672d13507 < accurst < accusal 16695d13529 < achievable/U 16697d13530 < achieved/A 16706c13539 < acidify/GDSN --- > acidify/GDS 16708d13540 < acidophiles 16711c13543 < acknowledge/DSG --- > acknowledge/DSGL 16714c13546 < acknowledgment/MS --- > acknowledgment/SM 16724c13556 < acquaintance/MS --- > acquaintance/SM 16732c13564 < acquisition/SM --- > acquisition/MS 16737d13568 < acquittance 16745c13576 < acrimonious/PY --- > acrimonious/YP 16756a13588 > acrylamide 16758c13590,13591 < act/ASDGVM --- > act's > act/ASDGV 16761d13593 < actinides 16766,16768c13598 < activated/U < activation/CAIM < activations --- > activation/ICAM 16770c13600,13601 < active/IKYSM --- > active's > active/ISY 16774c13605 < activity/ASIM --- > activity/ISM 16793d13623 < acyclic 16802,16803c13632 < adaptation/SM < adapted/U --- > adaptation/MS 16806,16807d13634 < adaptive/Y < adaptivity 16816d13642 < addictive/P 16819c13645 < additive/SMY --- > additive/SM 16821,16822c13647,13649 < address/AGDSM < addressable/U --- > address's > address/AGDS > addressable 16829c13656 < adept/TMRYPS --- > adept/MYPS 16834c13661 < adhere/ZGDRS --- > adhere/GDS 16838c13665 < adhesive/SPM --- > adhesive/PSM 16841d13667 < adiabatically 16844a13671 > adiós 16852c13679 < adjournment/MS --- > adjournment/SM 16854c13681 < adjudicate/GNVDSX --- > adjudicate/GNVXDS 16859c13686 < adjuration/SM --- > adjuration/MS 16863d13689 < adjusted/U 16866d13691 < adjustor/SM 16871,16872c13696,13697 < administer/SDG < administrate/GNVXDS --- > administer/DGS > administrate/XDSGNV 16875c13700 < administrator/SM --- > administrator/MS 16889c13714 < admittance/SM --- > admittance/M 16895c13720 < admonishment/SM --- > admonishment/MS 16916c13741 < adrenalin/M --- > adrenalin's 16917a13743 > adrenergic 16919c13745 < adroit/PTRY --- > adroit/PY 16923c13749 < adsorption/MS --- > adsorption/SM 16930c13756 < adulterate/XGNDS --- > adulterate/GNDS 16963c13789 < advertise/ZGLDRS --- > advertise/LZGDRS 16968,16969d13793 < advertize/GDSL < advertizement/SM 16971c13795 < advice/SM --- > advice/M 16977d13800 < advisedly/I 16979a13803 > advisor/SM 16983c13807 < advocator/SM --- > advocator/MS 16985c13809 < adware/MS --- > adware/SM 16989d13812 < aeolian 16996c13819 < aerie/M --- > aerie/MS 17002d13824 < aerobraking 17014,17015c13836 < aery/TRSM < aesthete/S --- > aesthete/MS 17020,17021d13840 < aether < aetiology 17024c13843 < affable/TR --- > affable 17027c13846,13847 < affect/EGVDSM --- > affect's > affect/EGDS 17037c13857,13858 < affiliate/EGNDSM --- > affiliate's > affiliate/EGNDS 17041d13861 < affine 17054c13874 < affordable/U --- > affordably 17076c13896 < afterburner/SM --- > afterburner/MS 17083c13903 < aftermarket/SM --- > aftermarket/MS 17090c13910 < afterthought/MS --- > afterthought/SM 17099a13920 > ageing/SM 17108c13929 < agglomerate/XDSMGN --- > agglomerate/DSMGNX 17110c13931 < agglutinate/XDSGNV --- > agglutinate/DSXGN 17112c13933 < aggrandize/LGDS --- > aggrandize/GLDS 17114c13935 < aggravate/GNDSX --- > aggravate/GNXDS 17118d13938 < aggregated/E 17121,17122c13941,13942 < aggression/SM < aggressive/YP --- > aggression/M > aggressive/PY 17126d13945 < aggrieved/Y 17129c13948 < agile/YTR --- > agile/Y 17132d13950 < agism 17134d13951 < agitated/Y 17145c13962 < agonist --- > agonist/S 17150,17151c13967 < agoraphobic/SM < agouti --- > agoraphobic/MS 17164d13979 < agrochemical/S 17176c13991 < aid/SMDRZG --- > aid/SMDG 17206d14020 < airframe/S 17232d14045 < airstream 17242c14055 < airworthy/TPR --- > airworthy/P 17253d14065 < alanine 17261d14072 < albedo 17269d14079 < alchemical 17277d14086 < aldehyde 17287c14096 < alert/TGMDRYPS --- > alert/GMDYPS 17298,17299c14107 < algebraical/Y < algebraist --- > algebraically 17302d14109 < algorithmically 17319,17322d14125 < aline/LGDS < alinement/MS < aliphatic < aliquot/S 17326c14129 < alkali/M --- > alkali/MS 17339c14142 < allegiance/SM --- > allegiance/MS 17345d14147 < allegri 17348d14149 < allelic 17356c14157 < alleviate/DSXGN --- > alleviate/DSGN 17362c14163 < alliterate/DSGNVX --- > alliterate/DSXGNV 17365d14165 < allocatable 17367d14166 < allocated/U 17370,17371d14168 < allocator/S < allophones 17374,17375d14170 < allotrope < allotropic 17380c14175 < allowable --- > allowable/U 17391c14186 < allusive/YP --- > allusive/PY 17397d14191 < almanack/S 17420,17421c14214,14215 < alphabetization/MS < alphabetize/DRSZG --- > alphabetization/SM > alphabetize/ZGDRS 17435,17436c14229 < altercate/XN < altercation/M --- > altercation/SM 17438c14231 < alternate/XDSMYGNV --- > alternate/DSMYGNVX 17441c14234 < alternator/MS --- > alternator/SM 17462c14255 < amalgamate/DSGNX --- > amalgamate/XGNDS 17472c14265 < amateurish/PY --- > amateurish/YP 17489a14283 > ambience/MS 17495c14289 < ambitious/PY --- > ambitious/YP 17513c14307,14309 < ambush/ZGMDS --- > ambush/GMDS > ameba/MS > amebae 17514a14311 > ameboid 17521d14317 < amended/U 17525c14321 < amercement/MS --- > amercement/SM 17528d14323 < amethystine 17530c14325 < amiable/P --- > amiable 17540d14334 < amine/S 17548d14341 < ammonites 17564,17565c14357 < amongst < amontillado/MS --- > amontillado/SM 17572c14364 < amortization/MS --- > amortization/SM 17575a14368 > amoxicillin 17585a14379 > ampicillin 17589c14383 < amplify/DRSZGNX --- > amplify/NDRSXZG 17592d14385 < ampul/MS 17597a14391 > amuck 17600d14393 < amused/U 17605d14397 < anabolic 17615,17616d14406 < anagrammatic < anagrammatically 17623c14413 < analogous/PY --- > analogous/YP 17628c14418 < analyses --- > analyses/A 17632a14423 > analyticalally 17636,17637d14426 < anamorphic < anapaest/SM 17640,17641d14428 < anaphora < anaphoric 17643c14430 < anarchical/Y --- > anarchically 17665c14452 < anchorperson/MS --- > anchorperson/SM 17682d14468 < anechoic 17686c14472 < anemometer/MS --- > anemometer/SM 17689d14474 < aneroid 17694c14479 < anesthetist/SM --- > anesthetist/MS 17696,17697c14481 < anesthetize/DSG < aneurism/SM --- > anesthetize/GDS 17710d14493 < anglepoise 17726a14510 > angulation 17730c14514 < animadvert/SGD --- > animadvert/GSD 17732c14516 < animalcule/MS --- > animalcule/SM 17738c14522 < anime --- > anime/M 17749,17750d14532 < anisotropic < anisotropy/S 17756d14537 < annal/S 17759c14540 < anneal/GDRS --- > anneal/GDS 17763d14543 < annexe/M 17766c14546 < annihilator/MS --- > annihilator/SM 17769d14548 < annotated/U 17779d14557 < annoyware/S 17786d14563 < annuli 17790,17791c14567 < annulus < annunciation/MS --- > annunciation/SM 17801c14577 < anonymization/SM --- > anonymization/MS 17810c14586 < answer/BMDRGS --- > answer/BMDGS 17845d14620 < anthropic 17847,17848c14622 < anthropogenic < anthropoid/SM --- > anthropoid/MS 17850c14624 < anthropologist/MS --- > anthropologist/SM 17852d14625 < anthropometric 17856c14629 < anthropomorphize/DSG --- > anthropomorphize/DS 17863c14636 < antibiotic/SM --- > antibiotic/MS 17867,17868c14640,14641 < antichrist/MS < anticipate/GNVXDS --- > antichrist/SM > anticipate/GNXDS 17880c14653 < anticoagulant/SM --- > anticoagulant/MS 17882,17883c14655,14656 < anticommunist/MS < anticyclone/MS --- > anticommunist/SM > anticyclone/SM 17898,17899c14671,14672 < antilogarithm/MS < antimacassar/SM --- > antilogarithm/SM > antimacassar/MS 17906,17907c14679,14680 < antioxidant/SM < antiparticle/MS --- > antioxidant/MS > antiparticle/SM 17921c14694 < antiquarian/MS --- > antiquarian/SM 17927a14701 > antiscience 17937,17938c14711 < antispasmodic/SM < antistatic --- > antispasmodic/MS 17940,17941d14712 < antisymmetric < antisymmetry 17950,17951c14721,14723 < antiviral/S < antivirus/MS --- > antivenom > antiviral/MS > antivirus/M 17957c14729 < antral --- > antrum 17975d14746 < aorist 17989,17990d14759 < aperiodic < aperiodically 18002c14771 < aphrodisiac/MS --- > aphrodisiac/SM 18010d14778 < apnea 18025a14794 > apoptotic 18028c14797 < apostatize/DSG --- > apostatize/GDS 18032,18033c14801 < apostrophe/SM < apostrophized --- > apostrophe/MS 18038,18039c14806 < apotheosizes < app/MS --- > app/SM 18053,18054c14820 < appeased/U < appeasement/MS --- > appeasement/SM 18065c14831 < appertain/DGS --- > appertain/GDS 18073d14838 < applecart 18083d14847 < applicative 18087a14852,14853 > appliqué/SMG > appliquéd 18091,18092c14857,14858 < appointment/ESMA < apportion/ALDGS --- > appointment/AESM > apportion/AGDLS 18095c14861 < apposite/PYNV --- > apposite/YNVP 18098c14864 < appositive/MS --- > appositive/SM 18101d14866 < appraisees 18105c14870 < appreciate/XDSGNV --- > appreciate/DSXGNV 18113c14878 < apprehensive/PY --- > apprehensive/YP 18118d14882 < apprize/GDS 18120,18121c14884 < approachability < approachable/IU --- > approachable/UI 18124c14887 < appropriate/DSPXYGN --- > appropriate/PYGNXDS 18128c14891 < appropriator/MS --- > appropriator/SM 18135c14898 < approximate/XYGNDS --- > approximate/DSXYGN 18161d14923 < aquiculture/M 18168d14929 < arachnoid 18173,18174c14934,14935 < arbitrageur/MS < arbitrament/MS --- > arbitrageur/SM > arbitrament/SM 18180c14941 < arbitrator/SM --- > arbitrator/MS 18183d14943 < arbores 18188,18190c14948,14949 < arcade/MGS < arcana < arcane/PY --- > arcade/MS > arcane 18205c14964 < archbishopric/MS --- > archbishopric/SM 18207d14965 < archdeaconry 18209c14967 < archdiocese/SM --- > archdiocese/MS 18214c14972 < archeologist/MS --- > archeologist/SM 18216d14973 < archeopteryx 18221d14977 < archetypical 18224a14981 > archipelagoes 18229c14986 < architecture/SM --- > architecture/MS 18233d14989 < archived/U 18238d14993 < ardency 18258c15013 < argumentative/YP --- > argumentative/PY 18262c15017 < arid/TRY --- > arid/Y 18273c15028 < arithmetician/SM --- > arithmetician/MS 18275c15030,15031 < arm/EAGDSM --- > arm's > arm/EAGDS 18287d15042 < armless 18303d15057 < aromaticity 18308d15061 < aroused/U 18312c15065 < arraignment/MS --- > arraignment/SM 18314,18315c15067 < arrangeable < arrangement/ASME --- > arrangement/AESM 18322d15073 < arrestable 18332c15083 < arrow/GMDS --- > arrow/MS 18339d15089 < arsenide 18344d15093 < artefactual 18355a15105 > arthroscopy 18360c15110 < articulate/PXDSYGN --- > articulate/YGNPDSX 18363d15112 < articulatory 18386c15135 < aryl/MS --- > aryl/SM 18389d15137 < asbestosis 18394,18395d15141 < ascendency/M < ascendent/SM 18398c15144 < ascertain/BLGDS --- > ascertain/GDSBL 18403d15148 < ascorbic 18406c15151 < ascription/MS --- > ascription/M 18439c15184 < asphyxiate/DSGNX --- > asphyxiate/DSXGN 18446d15190 < aspirational 18454d15197 < assailed/U 18456c15199 < assassinate/GNDSX --- > assassinate/GNXDS 18461,18463c15204,15206 < assemblage/MS < assemble/EADSG < assembler/MS --- > assemblage/SM > assemble/ERZGSD > assembler/EM 18465c15208 < assembly/AM --- > assembly/EAM 18477d15219 < assessable 18487c15229,15230 < assign/ALGDSM --- > assign's > assign/ALGDS 18489c15232 < assignation/SM --- > assignation/MS 18491c15234 < assignee/MS --- > assignee/M 18495d15237 < assimilable 18505,18507c15247,15248 < associate/EDSGNVM < associated/U < associateship --- > associate's > associate/EDSGNV 18509d15249 < associational 18511,18512d15250 < associative/Y < associativity 18516c15254 < assortment/SM --- > assortment/MS 18519d15256 < assuaged/U 18521,18522c15258 < assuming/AU < assumption/MS --- > assumption/SM 18538c15274 < astonish/DSGL --- > astonish/DSLG 18545c15281 < astral/Y --- > astral 18549c15285 < astringent/MYS --- > astringent/SMY 18556c15292 < astrologist/SM --- > astrologist/MS 18577d15312 < asymptote/S 18593d15327 < atheistically 18594a15329 > atherosclerotic 18604d15338 < atlantes 18606c15340 < atmosphere/SM --- > atmosphere/MS 18614,18616d15347 < atomicity < atomistic < atomization 18625a15357 > atrioventricular 18636a15369 > attaché/MS 18643,18644c15376 < attained/U < attainment/MS --- > attainment/SM 18646c15378,15379 < attempt/ASDGM --- > attempt's > attempt/ASDG 18648c15381 < attendance/MS --- > attendance/SM 18653d15385 < attentional 18655c15387 < attentive/IYP --- > attentive/IPY 18658d15389 < attenuated/U 18660d15390 < attenuator/S 18662c15392 < attestation/MS --- > attestation/SM 18672,18674c15402,15404 < attractant/SM < attraction/SM < attractive/UPY --- > attractant/MS > attraction/MS > attractive/UY 18676,18678c15406 < attractor/S < attributable/U < attribute/BXDSMGNV --- > attribute/DSMGNVBX 18681c15409 < attributive/SMY --- > attributive/MYS 18691c15419 < audacious/PY --- > audacious/YP 18699d15426 < audiobook/SM 18701c15428 < audiologist/MS --- > audiologist/SM 18704c15431 < audiophile/MS --- > audiophile/SM 18708,18709c15435 < audit/GVMDS < audited/U --- > audit/GMDS 18716d15441 < augite 18718c15443 < augmentation/SM --- > augmentation/MS 18727,18728c15452 < auntie/M < aunty/SM --- > auntie/SM 18735d15458 < auric 18739,18740c15462 < auroral < auscultate/XDSGN --- > auscultate/GNDSX 18748c15470,15471 < auteur/MS --- > auteur's > auteurs 18751c15474 < authenticate/GNDSX --- > authenticate/XGNDS 18754d15476 < authenticator/S 18759c15481 < authoritarian/SM --- > authoritarian/MS 18783,18784c15505 < autocue < autodidact/MS --- > autodidact/SM 18787d15507 < autoignition 18798,18799c15518 < automobile/MGDS < automorphism/S --- > automobile/DSMG 18815d15533 < availabilities 18821c15539 < avaricious/YP --- > avaricious/Y 18828d15545 < avenged/U 18834c15551 < averse/XNV --- > averse/XN 18844c15561 < avid/TRY --- > avid/Y 18866d15582 < awakened/U 18869c15585,15586 < aware/UPT --- > awardee/S > aware/UP 18871d15587 < awarer 18878d15593 < awestricken 18891a15607 > awol 18895,18896d15610 < axehead/S < axeman 18898d15611 < axillary 18902,18903c15615 < axiomatizing < axis/MS --- > axis/M 18908d15619 < ay/M 18916d15626 < azimuthal 18932c15642 < babysitter/SM --- > babysitter/MS 18934c15644 < baccalaureate/MS --- > baccalaureate/SM 18947,18948c15657 < backbench/RSZ < backbencher/M --- > backbench/S 18967c15676 < background/MRSZ --- > background/MRZS 18988c15697 < backslapper/MS --- > backslapper/SM 19002a15712 > backstory/S 19007c15717 < backtrack/GSD --- > backtrack/SDG 19009c15719 < backward/SPY --- > backward/PSY 19018c15728 < bacteria/SM --- > bacteria/M 19024c15734 < bacteriologist/MS --- > bacteriologist/SM 19026d15735 < bacteriophage 19034c15743 < badge/MZDRSG --- > badge/MZGRS 19075d15783 < bakehouse 19083,19084c15791,15792 < balance/UDSGM < balanced/A --- > balance's > balance/UDSG 19096,19097d15803 < balefuller < balefullest 19104d15809 < ballade/S 19140c15845 < banal/RYT --- > banal/Y 19143c15848,15849 < band/ESGDM --- > band's > band/ESGD 19156d15861 < bandpass 19166,19168c15871 < banefuller < banefullest < bang/SZGMDR --- > bang/SGMDR 19185c15888 < banned/U --- > banned 19187,19188c15890 < banning/U < bannister/MS --- > banning 19195d15896 < banshie/MS 19212c15913,15914 < bar/ECUTSM --- > bar's > bar/ECUTS 19215c15917 < barbarianism/SM --- > barbarianism/MS 19225d15926 < barbeque/DSMG 19233d15933 < barcarolle/MS 19251d15950 < bargepole 19254a15954 > barista/MS 19257c15957,15958 < bark/CSGDM --- > bark's > bark/CSGD 19262d15962 < barleycorn/S 19270c15970 < barnstorm/ZGSDR --- > barnstorm/SDRZG 19290a15991,15992 > barrelled > barrelling 19304,19305d16005 < barycenter < barycentric 19308c16008 < basalt/SM --- > basalt/M 19310c16010,16011 < base/CDRSLTGM --- > base's > base/CDSLTG 19319a16021 > baser 19335d16036 < basketful 19345c16046 < bassoonist/MS --- > bassoonist/SM 19374c16075 < bathysphere/SM --- > bathysphere/MS 19395c16096 < battlefront/SM --- > battlefront/MS 19399c16100 < battleship/MS --- > battleship/SM 19403d16103 < baulk/MDGS 19421c16121 < beachcomber/MS --- > beachcomber/SM 19462c16162 < beatify/GDSXN --- > beatify/GXNDS 19469c16169 < beautician/MS --- > beautician/SM 19472,19473c16172,16173 < beautiful/TRY < beautify/DRSZGN --- > beautiful/Y > beautify/NDRSZG 19474a16175 > beaux 19488c16189 < bedazzle/GLDS --- > bedazzle/GDSL 19506,19507d16206 < bedlinen < bedmaker/S 19515d16213 < bedsheets 19527d16224 < beechwood 19529c16226 < beefburger/MS --- > beefburger/SM 19531d16227 < beefeater 19543d16238 < beermat/S 19562c16257 < befuddle/GDSL --- > befuddle/GLDS 19565a16261 > begat 19596c16292 < behaviorist/SM --- > behaviorist/MS 19611c16307 < belated/PY --- > belated/Y 19614c16310 < beleaguer/SGD --- > beleaguer/GSD 19619d16314 < believability/U 19623d16317 < believed/U 19626c16320 < belittle/DSLG --- > belittle/LDSG 19633c16327 < belletrist/SM --- > belletrist/MS 19640c16334 < belligerent/SMY --- > belligerent/MYS 19648c16342 < bellybutton/MS --- > bellybutton/SM 19664,19665c16358,16359 < benchmark/GMS < bend/BSZGMDR --- > benchmark/MS > bend/BSZGMR 19681c16375 < benevolence/MS --- > benevolence/SM 19776c16470 < bevel/JGMDS --- > bevel/GMDS 19784c16478 < bewilder/SLGD --- > bewilder/LSGD 19797a16492,16494 > biased/U > biassed > biassing 19802,19803c16499 < biblicists < bibliographer/SM --- > bibliographer/MS 19840c16536 < bifurcate/DSXGN --- > bifurcate/XDSGN 19871,19872d16566 < bilharzia < biliary 19876a16571 > bilirubin 19889c16584 < billionaire/MS --- > billionaire/SM 19893,19894c16588 < billowy/RT < billposters --- > billowy 19900d16593 < bimodal 19904c16597,16598 < bind/AUGSM --- > bind's > bind/AUGS 19909a16604 > bingeing 19917d16611 < binodal 19927d16620 < bioengineering 19943,19945d16635 < biometric/S < biometry < biomorph 19953a16644 > bioreactor/S 19954a16646 > biosensor/S 19958d16649 < biota 19961d16651 < biotechnologist 19963d16652 < biotic 19970d16658 < bipedalism 19989,19991c16677 < birdtables < birdwatcher/MS < birdwatching --- > birdwatcher/SM 19993,19994d16678 < birefringence < birefringent 19996c16680 < birth/GMD --- > birth/ZGMDR 19997a16682 > birther/M 20001c16686 < birthright/SM --- > birthright/MS 20003c16688 < birthstone/MS --- > birthstone/SM 20015d16699 < bistable 20021a16706 > bitcoin/SM 20032c16717 < bitty/TPR --- > bitty/TR 20043c16728 < bizarre/YP --- > bizarre/Y 20045c16730 < bl/D --- > bl/DG 20054,20055c16739,16740 < blackball/SMDG < blackberry/SMG --- > blackball/SGMD > blackberry/GSM 20059a16745 > blackface 20071d16756 < blackshirts 20088c16773 < blameless/PY --- > blameless/YP 20092c16777 < blammo/GDS --- > blammo 20097c16782 < blandishment/MS --- > blandishment/SM 20111a16797 > blasé 20141c16827 < blessed/TRYP --- > blessed/YP 20145d16830 < blether/GSD 20153c16838 < blindfold/GSMD --- > blindfold/SMDG 20164c16849 < blissful/PY --- > blissful/YP 20178c16863 < bloatware/S --- > bloatware 20183c16868,16869 < block/UGDSM --- > block's > block/UGDS 20196c16882 < blogroll/MS --- > blogroll/SM 20208d16893 < bloodied/U 20215c16900 < bloodmobile/SM --- > bloodmobile/MS 20218d16902 < bloodsport/S 20221,20223c16905,16906 < bloodstone < bloodstream/MS < bloodsucker/MS --- > bloodstream/SM > bloodsucker/SM 20227,20228c16910 < bloodthirsty/TPR < bloodworm --- > bloodthirsty/RPT 20230d16911 < bloodymindedness 20245,20247c16926,16927 < bloviate/SGD < bloviation < bloviator/SM --- > bloviate/GNDS > bloviator/MS 20254c16934 < blowjob/MS! --- > blowjob/SM 20264,20265d16943 < blub/S < blubbed 20268d16945 < blubbing 20278a16956 > blueing/M 20280c16958 < bluejacket/MS --- > bluejacket/SM 20286,20287c16964,16965 < blueprint/GMDS < bluestocking/MS --- > blueprint/MDGS > bluestocking/SM 20295c16973 < blunder/MDRZGJS --- > blunder/MDRZGS 20309d16986 < blushing/UY 20317c16994 < board/JZGMDRS --- > board/ZGMDRS 20319d16995 < boardgames 20321c16997 < boardinghouse/SM --- > boardinghouse/MS 20329d17004 < boatclubs 20344c17019 < bobbysoxer/MS --- > bobbysoxer/SM 20349c17024 < bobsledder/SM --- > bobsledder/MS 20365d17039 < bodiless 20369c17043 < bodybuilder/MS --- > bodybuilder/SM 20384d17057 < boggling/Y 20386,20387c17059 < bogie/M < bogometer/S --- > bogie/MS 20389,20390c17061 < bogosity/S < bogotify/DSG --- > bogosity 20392d17062 < bogy/SM 20398d17067 < boiled/U 20419,20420c17088 < boloney/M < bolshevik/M --- > bolshevik/SM 20424c17092,17093 < bolt/USGDM --- > bolt's > bolt/USGD 20430c17099 < bombardment/MS --- > bombardment/SM 20454d17122 < bonemeal 20457c17125 < boney --- > boneyard 20466d17133 < bonnie 20468c17135,17136 < bonsai/MS --- > bonobo/MS > bonsai/M 20484c17152 < bookbinder/MS --- > bookbinder/SM 20488d17155 < booked/U 20501c17168 < bookseller/SM --- > bookseller/MS 20508d17174 < bookwork 20523c17189,17190 < boot/ASGDM --- > boot's > boot/ASGD 20527a17195 > bootie/M 20531c17199 < bootlegger/SM --- > bootlegger/MS 20534d17201 < bootprints 20548,20549c17215,17216 < borderland/SM < borderline/SM --- > borderland/MS > borderline/MS 20560c17227 < borrow/SDRZGBJ --- > borrow/SDRZGJ 20568,20571c17235,17238 < bosom/USM < bosomy/RT < boson/S < boss/DRSGM --- > bosom's > bosom/US > bosomy > boss/DSGM 20588,20589c17255 < bothy < botnet/MS --- > botnet/SM 20595c17261 < bottommost --- > botulinum 20599,20600c17265 < bougainvillaea/S < bougainvillea/SM --- > bougainvillea/MS 20616d17280 < boundedness 20619c17283 < boundless/YP --- > boundless/PY 20621c17285 < bounteous/PY --- > bounteous/YP 20623c17287 < bountiful/PY --- > bountiful/YP 20630c17294 < boustrophedon/S --- > boustrophedon 20633c17297,17298 < boutonniere/SM --- > boutonniere/MS > boutonnière/MS 20643d17307 < bowie 20645d17308 < bowlder/SM 20660d17322 < boxful 20664d17325 < boxtops 20673d17333 < boyscout 20675a17336 > bpm 20679d17339 < braced/U 20683d17342 < bracing/Y 20686d17344 < bracketed/U 20691a17350 > bradycardia 20694c17353 < braggadocio/MS --- > braggadocio/SM 20703d17361 < braincell/S 20705c17363 < brainchildren --- > brainchildren/M 20707c17365 < brainless/YP --- > brainless/Y 20709c17367 < brainstorm/GSMD --- > brainstorm/SMDG 20711,20712c17369 < brainteaser/MS < brainteasing --- > brainteaser/SM 20722c17379 < brambly/TR --- > brambly 20762c17419 < breadboard/MS --- > breadboard/SM 20764c17421 < breadcrumb/SM --- > breadcrumb/MS 20769c17426 < breadwinner/MS --- > breadwinner/SM 20777c17434 < breakfast/GMDS --- > breakfast/MDGS 20791,20795c17448,17451 < breastplate/MS < breaststroke/MS < breastwork/SM < breath/MDRSZGBJ < breathalyser/S --- > breastplate/SM > breaststroke/SM > breastwork/MS > breath/MDRSZGB 20805,20806d17460 < breccias < brecciated 20845,20846c17499 < bridged/U < bridgehead/MS --- > bridgehead/SM 20852c17505,17506 < brief/CSDTGJM --- > brief's > brief/CSDTGJ 20864c17518 < brigantine/SM --- > brigantine/MS 20868c17522 < brightness/MS --- > brightness/M 20877d17530 < brimfull 20889d17541 < brinksmanship/M 20891d17542 < brio 20907,20908c17558,17559 < broadcast/AMGSD < broadcaster/SM --- > broadcast/AMDGS > broadcaster/MS 20912d17562 < broadleaved 20914c17564 < broadminded/P --- > broadminded 20918c17568 < broadsword/MS --- > broadsword/SM 20927c17577 < broke/G --- > broke 20942d17591 < broncho/SM 20945,20946c17594,17595 < broncobuster/MS < brontosaur/SM --- > broncobuster/SM > brontosaur/MS 20963c17612 < brotherhood/SM --- > brotherhood/MS 20983d17631 < bruised/U 20996,20997d17643 < brushy < brusk/RT 21014,21015c17660 < bubonic < buccaneer/SMDG --- > buccaneer/SGMD 21022c17667,17668 < buckle/UDSGM --- > buckle's > buckle/UDSG 21024d17669 < buckminsterfullerene 21031a17677 > buckyball/SM 21039c17685 < budgerigar/SM --- > budgerigar/MS 21051c17697,17698 < bug/CSM --- > bug's > bug/CS 21065a17713 > builtin 21085c17733 < bulletproof/GSD --- > bulletproof/SDG 21092c17740 < bullheaded/YP --- > bullheaded/PY 21106c17754 < bully/DRSMTG --- > bully/DSMG 21124c17772 < bumptious/YP --- > bumptious/PY 21130c17778 < bunco/MDG --- > bunco/SMDG 21133d17780 < bundled/U 21141c17788,17789 < bunk/CDGSM --- > bunk's > bunk/CDGS 21144c17792 < bunko/M --- > bunko/SMDG 21155c17803,17804 < burden/USGDM --- > burden's > burden/USGD 21160c17809 < bureaucrat/SM --- > bureaucrat/MS 21176c17825 < burgomaster/MS --- > burgomaster/SM 21179,21180c17828 < buried/U < burk/S --- > burka/S 21186c17834 < burn/MDRZGSBJ --- > burn/MDRZGSB 21188d17835 < burned/U 21195c17842 < burnt/U --- > burnt 21196a17844 > burqa/S 21216d17863 < bushfire 21219d17865 < bushland 21231,21232c17877 < businesspeople < businessperson/MS --- > businessperson/SM 21239,21240c17884 < busmen < buss/MD --- > buss/M 21242d17885 < bustard/S 21260a17904 > buttercream 21272,21273c17916,17918 < button/USDGM < buttonhole/MGDS --- > button's > button/USDG > buttonhole/DSMG 21277c17922 < buxom/RT --- > buxom 21284a17930 > buzzkill/SM 21322c17968 < cabinetmaker/SM --- > cabinetmaker/MS 21327c17973 < cablecast/MGS --- > cablecast/GMS 21346a17993 > caddie/MDS 21349c17996 < caddy/GDSM --- > caddying 21360d18006 < caesarian/MS 21368a18015 > café/SM 21370a18018,18019 > cagier > cagiest 21374d18022 < cagy/PTR 21402c18050 < calculate/AXGNVDS --- > calculate/AGNVDSX 21406c18054 < calculator/MS --- > calculator/SM 21412c18060 < calender/MDGS --- > calender's 21417d18064 < calibrated/U 21420c18067 < calico/M --- > calico/MS 21422d18068 < calif/MS 21454,21455d18099 < calorimeter/S < calorimetry 21457c18101 < calumniate/DSGN --- > calumniate/GNDS 21478d18121 < camerae 21489c18132,18133 < camp/CSTGDM --- > camp's > camp/CSGD 21493,21494c18137 < campanological < campanologist/SM --- > campanologist/MS 21506c18149 < can/SMDRJZG --- > can/SMDRZG 21510a18154 > canapé/MS 21516d18159 < canceled/U 21518c18161 < cancellation/MS --- > cancellation/SM 21526,21527c18169 < candelas < candid/RYPT --- > candid/YP 21538,21539c18180,18181 < candlestick/SM < candlewick/MS --- > candlestick/MS > candlewick/SM 21558c18200 < cannibalize/DSG --- > cannibalize/GDS 21566d18207 < cannula 21574c18215 < canonization/MS --- > canonization/SM 21579c18220,18221 < cant/CZRDGSM --- > cant's > cant/CZRDGS 21581d18222 < cantaloup/SM 21591c18232 < cantilever/GSMD --- > cantilever/MDGS 21595c18236 < cantonment/SM --- > cantonment/MS 21605c18246 < capable/TR --- > capable/I 21611d18251 < capacitive 21614c18254 < caparison/MDSG --- > caparison/MDGS 21630c18270 < capitulate/AGNXDS --- > capitulate/ADSXGN 21639c18279 < capricious/YP --- > capricious/PY 21662d18301 < caracul/M 21665c18304 < caramelize/GDS --- > caramelize/DSG 21668a18308 > caravansarai/S 21675c18315 < carbohydrate/MS --- > carbohydrate/SM 21681d18320 < carbonic 21684d18322 < carbonyl 21687a18326 > carbs 21690,21691c18329 < carburetor/MS < carcase/S --- > carburetor/SM 21694,21695c18332 < carcinogenesis < carcinogenic/SM --- > carcinogenic/MS 21708,21709c18345,18346 < cardinality < cardiogram/MS --- > cardio > cardiogram/SM 21712,21713c18349 < cardioid < cardiologist/SM --- > cardiologist/MS 21714a18351 > cardiomyopathy 21720d18356 < cared/U 21731c18367 < careless/YP --- > careless/PY 21744,21746c18380 < caricaturisation < caricaturist/MS < caricaturization --- > caricaturist/SM 21761a18396 > carnie/M 21763a18399 > carnivora 21765c18401 < carnivorous/YP --- > carnivorous/PY 21781c18417 < carpenter/MDSG --- > carpenter/MDGS 21795d18430 < carrell/SM 21801,21802c18436 < carroty/RT < carrousel/SM --- > carroty 21818c18452 < cartographer/MS --- > cartographer/SM 21823c18457 < cartoonist/SM --- > cartoonist/MS 21837c18471 < caseharden/GSD --- > caseharden/DGS 21843a18478 > cashback/M 21867c18502 < castigator/MS --- > castigator/SM 21874d18508 < castrato 21888c18522 < cataleptic/SM --- > cataleptic/MS 21890a18525,18526 > catalogue/DSMG > catalogued/U 21901c18537 < catastrophe/SM --- > catastrophe/MS 21914,21915c18550 < catchphrase/MS < catchup/M --- > catchphrase/SM 21929c18564 < caterwaul/GSMD --- > caterwaul/SMDG 21937c18572 < catheterize/GDS --- > catheterize/DSG 21943d18577 < cationic 21950a18585 > catsup/MS 21969d18603 < caulking/M 22003d18636 < cavitation 22009d18641 < cayman/MS 22020d18651 < cedarwood 22031d18661 < celebrated/U 22036d18665 < celebs 22052a18682 > cellulitis 22073c18703 < cent/ARM --- > cent/SZMR 22076c18706 < centenarian/SM --- > centenarian/MS 22079c18709 < center/MDGS --- > center/MDG 22081,22082c18711,18712 < centerfold/SM < centerpiece/SM --- > centerfold/MS > centerpiece/MS 22085c18715 < centiliter/SM --- > centiliter/MS 22087c18717 < centimeter/SM --- > centimeter/MS 22089c18719 < central/TSMRY --- > central/SMY 22094,22096c18724,18725 < centralize/CDSG < centralizer/SM < centric/F --- > centralize/CGDS > centralizer/MS 22098c18727 < centrifuge/MGDS --- > centrifuge/DSMG 22102,22103d18730 < centroid/S < cents 22117a18745 > cerebrovascular 22129,22130c18757 < certain/UYT < certainer --- > certain/UY 22134,22136c18761,18763 < certificate/MGNXDS < certification/M < certify/DSG --- > certificate/MGDS > certification's > certify/CDSNXG 22158c18785,18786 < chain/UGDSM --- > chain's > chain/UGDS 22163c18791 < chairmanship/MS --- > chairmanship/SM 22165c18793 < chairperson/MS --- > chairperson/SM 22179d18806 < challenging/Y 22182,22184c18809,18810 < chamberlain/SM < chambermaid/SM < chamberpot/S --- > chamberlain/MS > chambermaid/MS 22187d18812 < chammy/SM 22197c18822 < chancellor/SM --- > chancellor/MS 22203c18828 < chandelier/MS --- > chandelier/SM 22218c18843 < channelize/GDS --- > channelize/DSG 22220c18845 < chant/ZGMDRJS --- > chant/ZGMDRS 22224,22226c18849 < chanticleer/SM < chantry/S < chanty/SM --- > chanticleer/MS 22252c18875 < characteristic/MS --- > characteristic/SM 22255c18878 < characterize/GDS --- > characterize/DSG 22263c18886 < charge/EAMGDS --- > charge/AESDGM 22270c18893 < charioteer/SM --- > charioteer/MS 22272,22273c18895 < charismatic/SM < charismatically --- > charismatic/MS 22285c18907 < charming/TRY --- > charming/Y 22291c18913,18914 < charter/ASGDM --- > charter's > charter/ASGD 22293d18915 < chartists 22306c18928 < chastisement/MS --- > chastisement/SM 22311a18934 > chateaux 22323c18946 < chauffeur/MDGS --- > chauffeur/GMDS 22330d18952 < cheapish 22333c18955 < cheapskate/SM --- > cheapskate/MS 22336c18958,18959 < check/AGMDSU --- > check's/A > check/UAGDS 22338c18961 < checked/U --- > checkbox 22340c18963 < checkerboard/MS --- > checkerboard/SM 22347a18971 > checksum 22365,22366c18989,18990 < cheerleader/MS < cheerless/YP --- > cheerleader/SM > cheerless/PY 22371c18995 < cheeseburger/MS --- > cheeseburger/SM 22382,22383d19005 < chemiluminescence < chemiluminescent 22386c19008 < chemistry/MS --- > chemistry/SM 22388d19009 < chemosynthesis 22406c19027 < chesterfield/MS --- > chesterfield/SM 22413c19034 < chew/SBZGMDR --- > chew/SZGMDR 22424c19045 < chichi/TMRS --- > chichi/MS 22431c19052 < chickenshit/SM! --- > chickenshit/MS! 22442c19063 < chieftainship/MS --- > chieftainship/SM 22455c19076 < childish/PY --- > childish/YP 22462c19083 < childproof/SGD --- > childproof/GSD 22464d19084 < chile/MS 22469d19088 < chilli/TPMR 22473c19092 < chilly/S --- > chilly/TPR 22475d19093 < chimaerical 22483c19101 < chimpanzee/MS --- > chimpanzee/SM 22507d19124 < chiral 22511,22512c19128,19129 < chiropractic/MS < chiropractor/MS --- > chiropractic/SM > chiropractor/SM 22518a19136 > chiselled 22519a19138 > chiselling 22526d19144 < chitlings/M 22527a19146 > chitosan 22529d19147 < chivalric 22539d19156 < chlorate 22542c19159 < chlorinate/DSGN --- > chlorinate/GNDS 22545,22546c19162,19163 < chlorofluorocarbon/MS < chloroform/SMDG --- > chlorofluorocarbon/SM > chloroform/SGMD 22549d19165 < chloroquine 22552d19167 < chocaholic/SM 22555c19170 < chocoholic/MS --- > chocoholic/SM 22562c19177 < choirmaster/MS --- > choirmaster/SM 22565a19181,19182 > cholecystectomy > cholecystitis 22570d19186 < choline 22574d19189 < choosey 22593c19208 < choreograph/ZGDR --- > choreograph/DRZG 22610,22611c19225 < christened/U < christening/SM --- > christening/MS 22613c19227 < chroma --- > christology 22616d19229 < chromaticism 22618d19230 < chromatographic 22621d19232 < chromite 22628d19238 < chronicled/U 22633c19243 < chronologist/SM --- > chronologist/MS 22635,22636c19245 < chronometer/MS < chronometric --- > chronometer/SM 22645c19254 < chuff/D --- > chuffed 22658c19267 < chunk/MS --- > chunk/GMDS 22667c19276 < churchwarden/SM --- > churchwarden/MS 22678d19286 < chutzpa/M 22680a19289,19292 > château/M > châteaux > châtelaine/SM > ciabatta/SM 22683c19295 < cicatrice/SM --- > cicatrices 22687c19299,19300 < cider/MS --- > cider's > cider/S 22689d19301 < cigaret/MS 22692d19303 < ciggy/S 22708c19319,19320 < cipher/CGDSM --- > cipher's > cipher/CGDS 22721d19332 < circulant 22724,22725c19335,19336 < circularize/GDS < circulate/ADSGN --- > circularize/DSG > circulate/ADSG 22728c19339 < circumcise/GNDSX --- > circumcise/XDSGN 22731c19342 < circumference/SM --- > circumference/MS 22736c19347 < circumnavigate/XDSGN --- > circumnavigate/XGNDS 22738d19348 < circumnavigational 22740,22741c19350,19351 < circumscribe/DSG < circumscription/SM --- > circumscribe/GDS > circumscription/MS 22744c19354 < circumstance/DSMG --- > circumstance/MGDS 22746,22747c19356,19357 < circumvent/GDBS < circumvention/MS --- > circumvent/DSG > circumvention/M 22754d19363 < cissy/S 22759c19368,19369 < cite/IAGSDM --- > cite's > cite/IAGSD 22764d19373 < citrate 22771d19379 < cityscape 22776d19383 < civies/M 22780c19387 < civilization/SM --- > civilization/MS 22789c19396,19398 < claim/CKEAGDSMB --- > claim's > claim/CKEAGDS > claimable/AKE 22792c19401 < claimer/CEMS --- > claimer/ECSM 22794c19403 < clairvoyant/SM --- > clairvoyant/MS 22805c19414 < clamorous/Y --- > clamorous 22821c19430 < clapboard/MDSG --- > clapboard/MDGS 22830c19439 < clarify/NXDSG --- > clarify/XDSNG 22837c19446,19447 < clasp/UGDSM --- > clasp's > clasp/UGDS 22842,22843c19452,19453 < classicist/SM < classifiable/U --- > classicist/MS > classifiable 22846,22848c19456,19459 < classificatory < classified/MSU < classifier/SM --- > classified's > classified/U > classifieds > classifier/MS 22864,22865c19475,19477 < claw/SGMD < clay/SM --- > claw's > claw/CSGD > clay/M 22869d19480 < claymore/S 22913c19524,19526 < click/ZGMDRS --- > cliché/MS > clichéd > click/BZGMDRS 22916a19530 > clientèle/MS 22927,22928c19541 < climatological < climatologist/MS --- > climatologist/SM 22932,22934d19544 < climbable/U < climbdown < climbed/U 22950c19560 < cliometrician/SM --- > cliometrician/MS 22959,22960d19568 < cliquier < cliquiest 22962a19571 > clit/SM 22969c19578,19579 < cloak/USDGM --- > cloak's > cloak/USDG 22974d19583 < clockmaker 22980c19589,19590 < clog/USM --- > clog's > clog/US 22983a19594 > cloisonné/M 22993,22994c19604,19605 < close/EIGTSDMB < closed/U --- > closable/I > close/DRSMYTGBJP 22996d19606 < closely 23000d19609 < closer/S 23003,23004c19612,19613 < closing/SM < closure/IEMS --- > closing/M > closure/ESM 23008,23009c19617,19618 < clotheshorse/SM < clothesline/MS --- > clotheshorse/MS > clothesline/SM 23022d19630 < cloudscape/S 23028c19636,19637 < cloverleaf/MS --- > cloverleaf/SM > cloverleaves 23030c19639 < clownish/PY --- > clownish/YP 23043d19651 < clubroom 23089c19697 < coalmine/ZS --- > coalmine/S 23147,23148c19755 < cockshies < cocksucker/SM! --- > cocksucker/MS! 23154d19760 < cocoanut/MS 23157c19763 < cod/ZSMR --- > cod/SM 23162,23164c19768,19770 < code/CAGDSM < codebreaker < codec/MS --- > code's > code/CZGDRS > codec/SM 23166d19771 < codename/D 23168,23170c19773,19774 < codependent/MS < coder/CSM < codeword/S --- > codependent/SM > coder/CM 23178,23180c19782,19783 < codify/DRSNXZG < codling < codon/MS --- > codify/XDRSNZG > codon/SM 23187c19790 < coelenterate/SM --- > coelenterate/MS 23189c19792 < coerce/XDRSZGNV --- > coerce/DRSZGNV 23191d19793 < coercible 23201c19803 < coffeemaker/MS --- > coffeemaker/SM 23237c19839 < coif/MS --- > coif/MDGS 23241c19843,19844 < coil/UADGSM --- > coil's/A > coil/UADGS 23245c19848 < coincidence/SM --- > coincidence/MS 23250d19852 < cointreau 23260d19861 < coldish 23271c19872 < collaborate/GNVXDS --- > collaborate/DSXGNV 23275c19876 < collaborator/SM --- > collaborator/MS 23285d19885 < collated/U 23291,23292c19891,19893 < collect/ASGVDM < collectable/SM --- > collect's > collect/ASGVD > collectable/MS 23296,23297c19897,19898 < collection/ASM < collective/SMY --- > collection/AMS > collective/MYS 23299,23300c19900 < collectivist/MS < collectivity --- > collectivist/SM 23302c19902 < collectivize/GDS --- > collectivize/DSG 23306d19905 < collegial 23314,23316d19912 < collimation < collimator < collinear 23318,23319c19914 < collisional < collocate/MGNXDS --- > collocate/MGNDSX 23325c19920 < colloquialism/MS --- > colloquialism/SM 23327c19922 < colloquium/SM --- > colloquium/MS 23339,23340c19934 < colonialist/SM < colonic --- > colonialist/MS 23342,23343c19936 < colonization/CAM < colonizations --- > colonization/ACM 23347c19940 < colonoscope/SM --- > colonoscope/MS 23351c19944,19945 < color/AEGDSM --- > color's > color/AEGDS 23357c19951,19953 < colored/MSU --- > colored's > colored/U > coloreds 23362,23363c19958 < colorimetric < coloring/SM --- > coloring's 23367d19961 < colorizing/C 23384d19977 < comae 23393,23395c19986,19988 < combination/MS < combinatorial < combine/ADSGM --- > combination/SM > combine's > combine/ADSG 23400d19992 < combusted 23402c19994 < combustible/SM --- > combustible/MS 23414c20006 < comer/M --- > comer's 23417,23419c20009,20011 < cometary < comeuppance/MS < comfit/ESM --- > comeuppance/SM > comfit's > comfit/ES 23421c20013 < comfortable/UP --- > comfortable/P 23437c20029 < commandeer/DGS --- > commandeer/GDS 23439,23440c20031 < commanding/Y < commandment/SM --- > commandment/MS 23442c20033 < commemorate/XDSGNV --- > commemorate/XGNVDS 23445c20036 < commence/ALDSG --- > commence/ADSLG 23450c20041 < commendation/ASM --- > commendation/AMS 23452c20043 < commensurable/I --- > commensurable 23454c20045 < comment/GSMDRZ --- > comment/ZGSMD 23465c20056 < commiserate/DSXGNV --- > commiserate/GNVDSX 23468c20059 < commissariat/MS --- > commissariat/SM 23470c20061,20062 < commission/ACGSDM --- > commission's > commission/ACSGD 23481a20074 > committer/S 23483c20076,20078 < commode/EISM --- > commode's > commode/EIS > commodification 23487c20082,20083 < common/UPRYTM --- > common's > common/UPRYT 23492c20088 < commonplace/SM --- > commonplace/MS 23495d20090 < commonsensical 23501d20095 < communality 23506,23507c20100,20101 < communicant/SM < communicate/XDSGNV --- > communicant/MS > communicate/GNVDSX 23509,23510c20103,20104 < communicative/P < communicator/MS --- > communicative/U > communicator/SM 23516d20109 < communitarian 23520d20112 < commutativity 23526c20118 < compaction/S --- > compaction 23529c20121 < companion/SMB --- > companion/SBM 23537,23538c20129 < comparative/SMY < comparator/S --- > comparative/MYS 23541c20132 < compartment/MS --- > compartment/SM 23548c20139 < compatibility/ISM --- > compatibility/IM 23558c20149 < compensate/DSGNX --- > compensate/DSXGN 23561d20151 < compensator 23570,23572c20160,20161 < competition/MS < competitive/UP < competitively --- > competition/SM > competitive/PY 23575,23577c20164,20166 < compilable/U < compilation/ASM < compile/BDRSZG --- > compilation/AM > compilations > compile/DRSZG 23585d20173 < complaining/UY 23590,23591c20178 < complement/MDGS < complementarity --- > complement/SGMD 23593c20180 < complete/PYTGNBXDRS --- > complete/PYTGNXDRS 23597c20184 < complex/TMRSY --- > complex/MSY 23608c20195 < compliment/MDSG --- > compliment/MDGS 23610c20197 < comply/XDSNG --- > comply/NDSXG 23618,23620c20205,20206 < composite/MYNSX < composition/CSM < compositional --- > composite/MYGNXPDS > composition/CM 23635c20221,20222 < compress/CGVDSM --- > compress's > compress/CGDS 23637,23638c20224 < compressibility < compressible/I --- > compressible 23640,23641d20225 < compressional < compressions 23644,23645c20228,20229 < compromise/DSMG < comptroller/SM --- > compromise/MGDS > comptroller/MS 23647c20231 < compulsive/PY --- > compulsive/YP 23651,23654c20235,20236 < compunction/MS < computability < computably < computation/MS --- > compunction/SM > computation/SM 23656c20238 < compute/ADSBG --- > compute/ADSG 23661a20244 > compère/DSG 23665c20248 < concatenate/DSGNX --- > concatenate/XDSGN 23676d20258 < conceivability/I 23680c20262 < concentrate/MGNDSX --- > concentrate/DSMGNX 23682c20264 < concentrator/S --- > concentric 23689c20271 < conceptualize/GDS --- > conceptualize/DSG 23694c20276,20277 < concert/ESDGM --- > concert's > concert/ESDG 23697c20280 < concertina/SMDG --- > concertina/SGMD 23699c20282 < concertmaster/SM --- > concertmaster/MS 23708d20290 < conciliar 23711c20293 < conciliator/MS --- > conciliator/SM 23719c20301 < conclusive/IPY --- > conclusive/IYP 23723c20305 < concomitant/SMY --- > concomitant/MYS 23725c20307 < concordance/MS --- > concordance/SM 23729c20311 < concrete/DSMYGNPX --- > concrete/DSPMYGNX 23738c20320 < concurrence/MS --- > concurrence/SM 23742,23744c20324,20326 < concussion/MS < condemn/SBDRZG < condemnation/SM --- > concussion/SM > condemn/SDRZG > condemnation/MS 23747c20329 < condensate/MNSX --- > condensate/MNXS 23755c20337,20338 < condition/AGSDM --- > condition's > condition/AGSD 23757d20339 < conditionality 23764,23765c20346,20347 < condominium/SM < condone/DSGB --- > condominium/MS > condone/DSG 23768c20350 < conduct/SMV --- > conduct/MDGV 23773c20355 < conductivity/SM --- > conductivity/M 23782c20364 < confabulate/XGNDS --- > confabulate/XDSGN 23784c20366 < confection/SMRZ --- > confection/SZMR 23787d20368 < confectionist 23792c20373 < conference/SMG --- > conference/MGS 23800c20381 < confessional/MS --- > confessional/SM 23812,23814c20393,20394 < config/MS < configuration/AS < configure/ABGDS --- > configuration/S > configure/B 23816c20396 < confinement/SM --- > confinement/MS 23818c20398 < confirmation/AMS --- > confirmation/ASM 23821c20401 < confiscate/GNXDS --- > confiscate/DSGNX 23825c20405 < conflagration/SM --- > conflagration/MS 23829,23830d20408 < conflicting/Y < conflictual 23833c20411 < confocal --- > conform/ZB 23835d20412 < conformal 23838d20414 < conformational 23842d20417 < confounded/Y 23846c20421,20422 < confuse/BRZ --- > confrère/SM > confuse/RZ 23858c20434 < conglomerate/XMGNDS --- > conglomerate/DSXMGN 23861c20437 < congratulate/DSXGN --- > congratulate/XGNDS 23864,23865c20440,20441 < congregant/SM < congregate/XDSGN --- > congregant/MS > congregate/GNDSX 23878,23879c20454 < congruence/SM < congruency --- > congruence/M 23881d20455 < congruential 23891d20464 < conjugacy 23896,23897c20469,20470 < conjunctiva/MS < conjunctive/MS --- > conjunctiva/SM > conjunctive/SM 23899c20472 < conjuration/SM --- > conjuration/MS 23903d20475 < conman 23907,23912c20479,20480 < connectedness < connecter/MS < connectible < connection/ESM < connectionless < connective/SM --- > connection/EMS > connective/MS 23917c20485 < conniption/SM --- > conniption/MS 23921,23922c20489 < connoisseur/MS < connoisseurship --- > connoisseur/SM 23937,23938c20504 < conscionable/U < conscious/UPY --- > conscious/UYP 23946a20513 > consensual 23949c20516 < consequence/MS --- > consequence/SM 23953c20520 < conservation/MS --- > conservation/M 23957c20524 < conservative/PMYS --- > conservative/MYS 23964c20531 < considerate/IYNP --- > considerate/IPYN 23966c20533 < consideration/IAM --- > consideration/AIM 23971c20538 < consignment/SM --- > consignment/MS 23978c20545 < consolation/SM --- > consolation/MS 23980,23981c20547 < consoled/U < consolidate/GNXDS --- > consolidate/XDSGN 23984c20550 < consolidator/SM --- > consolidator/MS 23986a20553 > consommé/M 23989d20555 < consonantal 23996c20562 < conspirator/SM --- > conspirator/MS 24004d20569 < consternating 24006c20571 < constipate/DSGN --- > constipate/GNDS 24009c20574 < constituent/MS --- > constituent/SM 24014d20578 < constitutionalists 24018,24020c20582,20584 < constraint/MS < constrict/SGVD < constriction/MS --- > constraint/SM > constrict/GVSD > constriction/SM 24023,24025c20587,20589 < construct/CADVGSM < constructable < construction/CASM --- > construct's > construct/CADVGS > construction/CAMS 24030,24032c20594 < constructivism < constructivist < constructor/SM --- > constructor/MS 24038c20600 < consult/AGD --- > consult/GSD 24041c20603 < consultation/SM --- > consultation/MS 24043,24044c20605 < consults < consumable/MS --- > consumable/SM 24049,24050c20610,20611 < consumerist/SM < consummate/YGNDSX --- > consumerist/MS > consummate/YGNXDS 24052c20613 < consumption/SM --- > consumption/M 24061d20621 < containable/U 24064c20624 < containerize/GDS --- > containerize/DSG 24070c20630 < contaminator/MS --- > contaminator/SM 24073c20633 < contemplate/XGNVDS --- > contemplate/DSGNV 24087c20647 < contention/MS --- > contention/SM 24106d20665 < continuable 24108,24109c20667,20668 < continuance/ESM < continuation/ESM --- > continuance/EMS > continuation/EMS 24117d20675 < contra/S 24118a20677 > contrabassoon/S 24126c20685 < contradict/DGS --- > contradict/SDG 24128d20686 < contradictorily 24130c20688 < contradistinction/SM --- > contradistinction/MS 24133c20691 < contraindicate/GNDSX --- > contraindicate/GNXDS 24137a20696,20697 > contrarian/SM > contrarianism 24142,24145c20702,20703 < contrary/SMP < contrast/MDGVS < contrasting/Y < contrasty --- > contrary/PSM > contrast/MDGS 24149c20707 < contribute/GNDX --- > contribute/XGND 24151c20709 < contributor/SM --- > contributor/MS 24154c20712 < contrivance/SM --- > contrivance/MS 24157c20715,20716 < control/CSM --- > control's > control/CS 24162c20721 < controversial/UY --- > controversial/Y 24164c20723 < controvert/DGS --- > controvert/DSG 24173,24174c20732,20733 < conurbation/SM < convalesce/GDS --- > conurbation/MS > convalesce/DSG 24177d20735 < convect/GVSD 24179a20738 > convective 24184a20744 > convenor/MS 24186,24187c20746,20747 < conventicle/SM < convention/MS --- > conventicle/MS > convention/SM 24189,24190d20748 < conventionalism < conventionalist 24194c20752 < convergence/SM --- > convergence/MS 24200d20757 < conversazione 24202c20759,20760 < convert/AGSDM --- > convert's > convert/AGSD 24210c20768 < convey/SBDRZG --- > convey/SBDG 24212d20769 < conveyer/M 24215c20772 < conviction/SM --- > conviction/MS 24224d20780 < convolve/D 24231c20787,20788 < cook/ADGSM --- > cook's > cook/ADGS 24237c20794 < cookie/SM --- > cookie/M 24254c20811 < cooperative/PSMY --- > cooperative/PMYS 24256,24257c20813,20814 < cooperator/MS < coordinate/MYGNDS --- > cooperator/SM > coordinate/DSMYGN 24260c20817 < coordinator/SM --- > coordinator/MS 24267c20824 < copier/M --- > copier/SM 24272d20828 < coplanar 24275c20831 < copperhead/MS --- > copperhead/SM 24278d20833 < coppice/DSMG 24281,24283d20835 < coprocessor/S < coprolite < coprophagous 24287c20839 < copulate/XGNVDS --- > copulate/GNVDS 24290,24291c20842,20843 < copulatory < copy/DRSMZGB --- > copy's > copy/ADSG 24297,24299c20849,20851 < copyleft/S < copyright/SGMDB < copywriter/SM --- > copyleft > copyright/GSMD > copywriter/MS 24306d20857 < coralline 24322c20873 < corespondent/SM --- > corespondent/MS 24325c20876,20877 < cork/UDGSM --- > cork's > cork/UDGS 24342d20893 < cornflake/S 24345c20896 < cornflower/MS --- > cornflower/SM 24366,24367c20917 < corporate/SN < corporately --- > corporate/XYN 24369d20918 < corporations 24371d20919 < corporatist 24388d20935 < correctable/U 24390c20937 < correction/MS --- > correction/SM 24392c20939 < corrective/MS --- > corrective/SM 24394,24395c20941,20942 < corrector/S < correlate/DSXMGNV --- > corrector > correlate/XDSMGNV 24398c20945 < correlative/SM --- > correlative/MS 24400c20947 < correspondence/MS --- > correspondence/SM 24405d20951 < corrigenda 24408c20954 < corroborate/GNVXDS --- > corroborate/GNVDSX 24419d20964 < corrupted/U 24423c20968 < corruption/SM --- > corruption/MS 24432,24433d20976 < corticosteroid/S < cortisol 24434a20978 > cortège/SM 24445d20988 < cosiness/M 24448c20991 < cosmetician/SM --- > cosmetician/MS 24452c20995 < cosmical/Y --- > cosmically 24455,24456c20998,20999 < cosmological/Y < cosmologist/MS --- > cosmological > cosmologist/SM 24459c21002 < cosmopolitan/SM --- > cosmopolitan/MS 24462,24463c21005,21006 < cosponsor/SGMD < cossacks --- > cosplay > cosponsor/GSMD 24467c21010 < cost/MYGSJ --- > cost/MDYGSJ 24471d21013 < costless 24490,24491c21032,21033 < cottonseed/SM < cottontail/SM --- > cottonseed/MS > cottontail/MS 24505a21048 > coulée/SM 24515,24516c21058 < count/ERBZGDMS < countability/E --- > count/EASMDG 24518c21060 < countably/U --- > countably 24521,24523c21063,21065 < countenance/EGDSM < counter/EM < counteract/GVSD --- > countenance/EMGDS > counter/EMS > counteract/SGVD 24526,24527c21068,21069 < counterattack/MDGS < counterbalance/DSMG --- > counterattack/GMDS > counterbalance/MGDS 24529c21071 < counterclaim/SGMD --- > counterclaim/GSMD 24534a21077 > counterfactual 24542c21085 < countermand/MDGS --- > countermand/GMDS 24545c21088 < counteroffensive/MS --- > counteroffensive/SM 24547,24548c21090,21092 < counterpane/MS < counterpart/MS --- > counterpane/SM > counterpart/SM > counterpetition 24552c21096 < counterrevolution/MS --- > counterrevolution/SM 24554c21098 < countersign/GMDS --- > countersign/GSMD 24556c21100 < countersink/GMS --- > countersink/GSM 24558d21101 < counterstrike 24561c21104 < countervail/GDS --- > countervail/GSD 24575c21118,21119 < coup/ASM --- > coup's > coup/AS 24577,24578c21121,21122 < couple/CUDSGM < coupler/S --- > couple's > couple/UCGSD 24605c21149 < cousin/SMY --- > cousin/SM 24608,24609d21151 < covalent/Y < covariance/S 24613,24614c21155,21157 < cover/AEUGDSM < coverage/MS --- > cover's > cover/AEUGDS > coverage/M 24616c21159,21160 < covering/MS --- > covering's > coverings 24618d21161 < coversheet 24639c21182 < cowl/MDGSJ --- > cowl/MGSJ 24677,24678c21220 < crack/SMDRYZGBJ < crackable/U --- > crack/SMDRYZGJ 24685d21226 < crackly/TR 24713c21254 < crank/SMDRTG --- > crank/SMDG 24724c21265 < crappie/RSMT --- > crappie/M 24726c21267 < crappy --- > crappy/RSPT 24728,24730c21269,21270 < crapshooter/SM < crash/MDRSZG < crashing/Y --- > crapshooter/MS > crash/MDSG 24744c21284 < crawlspace/MS --- > crawlspace/SM 24765,24769c21305,21306 < creased/U < creatable < create/KADSGNV < created/U < creation/ASMK --- > create/AKVNGSDX > creation/KAM 24780c21317 < credential/GSMD --- > credential/SGMD 24786d21322 < creditability 24788d21323 < credited/U 24807c21342 < crematorium/SM --- > crematorium/MS 24810c21345 < crenelate/GNXDS --- > crenelate/XGNDS 24849d21383 < criminalization/C 24851d21384 < criminological 24863c21396 < crippleware/S --- > crippleware 24872c21405 < crisscross/MDSG --- > crisscross/GMDS 24907c21440 < croquet/MDG --- > croquet/M 24910c21443,21444 < cross/AUGTSDM --- > cross's > cross/AUGTSD 24918,24920c21452,21454 < crossbreed/SMG < crosscheck/SGMD < crosscurrent/SM --- > crossbreed/SGM > crosscheck/SMDG > crosscurrent/MS 24925c21459 < crosshatch/DSG --- > crosshatch/GDS 24934d21467 < crosstalk 24937d21469 < crossways 24943,24944c21475 < crotchety/P < crotchless --- > crotchety 24954,24955c21485 < crowdfunded < crowdfunding --- > crowdfund/SDG 24957c21487 < crowfoot/M --- > crowfoot/SM 24960a21491 > croûton/MS 24962d21492 < cruciate 24964d21493 < crucifiable 24966c21495 < crucifixion/MS --- > crucifixion/SM 24974a21504 > crudités/M 24979,24980c21509,21510 < cruft/SDG < crufty/S --- > cruft/SD > crufty 24993c21523 < crunch/ZGMDRS --- > crunch/GMDRS 25003c21533 < crust/ISDGM --- > crust/SMDG 25015,25017c21545 < cryonic < cryonics < cryostat --- > cryonic/S 25019,25022c21547 < crypt/CSM < cryptanalysis < cryptanalyst < cryptanalytic --- > crypt/SM 25026,25028c21551 < cryptographer/MS < cryptographic < cryptographically --- > cryptographer/SM 25031d21553 < cryptology 25037d21558 < crystallographer/S 25039a21561 > crèche/MS 25044c21566 < cub/ZGSJMDR --- > cub/ZGSMDR 25049c21571 < cubical/Y --- > cubical 25051d21572 < cubing/GD 25062c21583 < cuddly/TRP --- > cuddly/TR 25066d21586 < cufflink/SM 25072c21592 < culminate/DSXGN --- > culminate/XDSGN 25083,25084c21603,21604 < cultivar/MS < cultivate/DSBXGN --- > cultivar/SM > cultivate/BDSGN 25093,25094c21613,21614 < cumber/ISDG < cumbersome/PY --- > cumber/SDG > cumbersome/P 25100d21619 < cumquat/MS 25115d21633 < cupidinously 25131c21649 < curatorships --- > curaçao 25138c21656,21657 < cure/KZGBDRSM --- > cure's > cure/KZGBDRS 25145d21663 < curial 25149c21667 < curious/RYTP --- > curious/YP 25152c21670,21671 < curl/UDGSM --- > curl's > curl/UDGS 25159d21677 < curlycue/MS 25163,25164c21681,21682 < current/FAYSM < curricle --- > current's > current/FSY 25170,25172c21688,21692 < curse/DSMGV < cursed/TRY < cursive/EAYM --- > curse's > curse/ADSGV > cursed/Y > cursive's > cursive/EAY 25179c21699 < curtailment/MS --- > curtailment/SM 25182d21701 < curtsey/MDGS 25186d21704 < curvacious 25189d21706 < curvilinear 25196c21713,21714 < cuss/FEGSDM --- > cuss's > cuss/EFGSD 25207,25209c21725,21727 < customhouse/MS < customization/MS < customize/DSGB --- > customhouse/SM > customization/M > customize/DSG 25216d21733 < cutesie 25221d21737 < cutlas/M 25231d21746 < cuttle 25239d21753 < cyanogen 25240a21755 > cyberbully/S 25241a21757 > cybercafé/S 25244a21761 > cybersex 25249d21765 < cycleway/S 25253d21768 < cycloid 25257c21772 < cyclopaedia/SM --- > cyclopaedia/MS 25262d21776 < cyder/SM 25265c21779 < cylindrical/Y --- > cylindrical 25272c21786 < cypher/MDSG --- > cypher/M 25275d21788 < cysteine/M 25278,25281c21791,21792 < cytochrome < cytokine/MS < cytological < cytologist/MS --- > cytokine/SM > cytologist/SM 25286d21796 < cytotoxic 25291,25292c21801,21802 < d'Arezzo < d'Estaing --- > d'Arezzo/M > d'Estaing/M 25310c21820 < dado/M --- > dado/SM 25341d21850 < dalesman 25351d21859 < damaging/Y 25360,25361c21868 < damned/TR < damning/Y --- > damned/T 25371d21877 < danceable 25382c21888 < dangerous/PY --- > dangerous/Y 25401,25402d21906 < darkish < darkly/TR 25420d21923 < databank/SM 25422,25423c21925,21927 < datasheet/MS < date/DRSBMZGV --- > datasheet/SM > datatype > date/DRSMZGV 25430c21934 < datum/MS --- > datum/M 25453d21956 < daysack 25468c21971 < dead/PXTMNRY --- > dead/XTMNRY 25480d21982 < deadweight/MS 25488c21990 < dealership/MS --- > dealership/SM 25506d22007 < deathly/RT 25522c22023 < debilitate/GNDS --- > debilitate/DSGN 25527d22027 < debonaire 25529a22030 > debridement 25535d22035 < debutant 25542c22042 < decaffeinate/GDS --- > decaffeinate/DSG 25546c22046 < decapitate/XDSGN --- > decapitate/XGNDS 25554c22054 < deceitful/PY --- > deceitful/YP 25559c22059 < decelerate/XDSGN --- > decelerate/GNDS 25561c22061 < decelerator/MS --- > decelerator/SM 25564c22064 < decent/ITRY --- > decent/IY 25568d22067 < decertify/DSGNX 25570d22068 < decidability/U 25575d22072 < deciles 25579d22075 < decimalize 25583,25584c22079 < decipherable/IU < decipherment/S --- > decipherable/UI 25593c22088 < declamation/SM --- > declamation/MS 25595c22090 < declaration/SM --- > declaration/MS 25602c22097 < declination/MS --- > declination/M 25606,25607c22101 < deco < decolletage/MS --- > decolletage/SM 25609d22102 < decompose/B 25611d22103 < deconstruct/V 25613,25614d22104 < deconvolution < deconvolve 25617d22106 < decorated/U 25631,25632c22120,22121 < decrement/GDS < decremental --- > decremented > decrements 25637d22125 < decrypt/GD 25639d22126 < decustomised 25645a22133 > deduct/GVD 25654d22141 < deepish 25656c22143 < deer/SM --- > deer/M 25659d22145 < deerstalking 25663,25664c22149 < defaecate < defalcate/XDSGN --- > defalcate/DSXGN 25680c22165 < defective/MYSP --- > defective/MPYS 25685c22170 < defenestrate/NDX --- > defenestration/S 25687c22172 < defenseless/PY --- > defenseless/YP 25689d22173 < defensibility 25701a22186 > defibrillation 25706d22190 < defiled/U 25709,25710c22193 < definably/I < define/AGDRS --- > define/AGDS 25715,25718c22198,22201 < definition/ASM < definitional < definitive/PY < deflate/GNBDS --- > definition/AM > definitions > definitive/Y > deflate/GNDS 25729d22211 < deform/B 25741,25743c22223,22224 < degauss/GD < degeneracy/SM < degenerate/MV --- > degeneracy/M > degenerate/MVX 25745d22225 < degrease 25750d22229 < deictic 25765,25766c22244,22245 < delete/BXGNDRS < deleterious/Y --- > delete/XGNDS > deleterious 25771c22250 < deliberate/YVPX --- > deliberate/XYVP 25777c22256 < delicious/YP --- > delicious/PY 25781,25782c22260,22261 < deliminator/S < delineate/GNDSX --- > deliminator > delineate/GNXDS 25786c22265 < deliquesce/GDS --- > deliquesce/DSG 25788c22267 < delirious/PY --- > delirious/YP 25792c22271,22272 < deliverable/US --- > deliverable/S > deliverables/U 25799d22278 < deltoids 25808d22286 < demagog/MS 25816c22294 < demarcate/XDSGN --- > demarcate/DSGNX 25834c22312 < democratically/U --- > democratically 25836c22314 < democratize/DSG --- > democratize/GDS 25838,25840c22316,22317 < demodulator < demographer/MS < demographic/MS --- > demographer/SM > demographic/SM 25844c22321 < demolish/DRSG --- > demolish/DSG 25857c22334 < demonstrate/GNVXDS --- > demonstrate/XGNVDS 25859c22336 < demonstrative/SMYP --- > demonstrative/MYSP 25861c22338 < demonstrator/SM --- > demonstrator/MS 25864c22341 < demount/BG --- > demount 25874a22352 > denaturation 25877,25878d22354 < dendrochronological < dendrochronology 25879a22356 > deniability 25883c22360 < denigrate/DSXGN --- > denigrate/DSGN 25885a22363 > denitrification 25888d22365 < denotational 25890,25891c22367,22368 < denouement/SM < denounce/DSGL --- > denouement/MS > denounce/LDSG 25908c22385 < denunciation/MS --- > denunciation/SM 25923d22399 < dependance/M 25938c22414 < deportation/SM --- > deportation/MS 25942d22417 < depositary 25947c22422 < deprecate/GNXDS --- > deprecate/GNDS 25953,25954c22428,22429 < depredation/MS < depressant/MS --- > depredation/SM > depressant/SM 25956,25957c22431,22432 < depression/MS < depressive/MS --- > depression/SM > depressive/SM 25961d22435 < deprogram/S 25965c22439 < deputation/SM --- > deputation/MS 25969,25971c22443,22444 < dequeue/DSG < derailleur/MS < derailment/MS --- > derailleur/SM > derailment/SM 25975,25976c22448,22449 < dereliction/MS < deride/D --- > dereliction/M > deride/GDS 25982c22455 < derivative/MYS --- > derivative/MS 25987c22460 < dermatologist/MS --- > dermatologist/SM 25996a22470 > derrière/SM 25999c22473 < desalinate/DSGN --- > desalinate/GNDS 26005,26007c22479,22480 < descendant/SM < descendent/SM < descender/S --- > descendant/MS > descender 26009c22482,22483 < describer/MS --- > describe/BZGDR > describer/M 26011c22485 < descriptive/YP --- > descriptive/PY 26013d22486 < descriptivism 26032,26033c22505 < design/MRZB < designate/XDSGN --- > designate/DSGNX 26036,26038d22507 < designational < designator/S < designed/Y 26040d22508 < desirabilia 26051c22519 < desolate/DSPYGN --- > desolate/PDSYGN 26054d22521 < desorption 26059c22526 < desperate/PYN --- > desperate/YNP 26067d22533 < despond 26077,26079c22543 < dessicated < dessication < destination/MS --- > destination/SM 26084c22548 < destroy/SBZGDR --- > destroy/SZGDR 26094c22558 < desultory/P --- > desultory 26096c22560 < detachment/SM --- > detachment/MS 26101d22564 < detectability/U 26103d22565 < detectably/U 26105,26106c22567 < detectible < detection/SM --- > detection/M 26117d22577 < determinacy/I 26119c22579 < determinate/YV --- > determinate 26125d22584 < determinist 26127d22585 < deterministically 26132d22589 < detest/RZB 26135c22592 < dethrone/GL --- > dethrone/DSLG 26138d22594 < detonated/U 26150d22605 < deuteron 26177c22632 < devoted/PY --- > devoted/Y 26181c22636 < devour/SDRZG --- > devour/SDG 26184c22639 < dew/SM --- > dew/M 26195c22650 < dextrous/Y --- > dharma 26202,26203d22656 < diabolism < diachronic 26205c22658 < diacritical/S --- > diacritical 26209,26211c22662 < diagnosable/U < diagnose/DSBG < diagnosed/U --- > diagnose/DSG 26215c22666 < diagnostician/MS --- > diagnostician/SM 26218d22668 < diagonalize/DSG 26228c22678 < dialectical/Y --- > dialectical 26230d22679 < dialer 26232,26233c22681,22683 < dialog/SMGD < dialogue/SMRGD --- > dialog/SDG > dialogue/DRSMG > dialyses 26237a22688 > diamanté 26242c22693 < diamondback/SM --- > diamondback/MS 26263a22715 > dices/I 26265d22716 < dichloride 26274c22725 < dicky/RMT --- > dicky/SM 26298c22749 < dido/M --- > dido/MS 26303d22753 < dieing 26317c22767,22768 < difference/MGS --- > difference/IM > differences 26319,26322c22770,22771 < differentiability < differentiable < differential/MYS < differentiate/DSGNX --- > differential/SM > differentiate/DSGN 26325d22773 < differentiators 26332c22780 < diffuse/DRSYZGNVP --- > diffuse/DSYGNVP 26335,26336d22782 < diffusional < diffusivity 26348a22795 > digicam/S 26353c22800 < digitize/ZGDRS --- > digitize/GDS 26361,26362c22808 < digression/SM < dihedral --- > digression/MS 26382,26383c22828 < dillydally/GDS < diluent --- > dillydally/DSG 26387c22832 < dim/ZPSRY --- > dim/PSRY 26389,26391c22834,22835 < dimension/SGMD < dimensional/Y < dimensionality --- > dimension/SM > dimensional 26393c22837 < diminish/GBDS --- > diminish/GDS 26395a22840 > diminuendoes 26404,26405d22848 < dimorphic < dimorphism 26407c22850 < dimply/RT --- > dimply 26422c22865 < dingo/SM --- > dingo/M 26426c22869 < dink/RT --- > dink/R 26434c22877 < dint/MS --- > dint/M 26438d22880 < diopter/S 26445d22886 < diplexers 26453c22894,22895 < diplomatist/SM --- > diplomatist/MS > diplopia 26466c22908 < dire/YTPR --- > dire/YTR 26468d22909 < directed/U 26470,26472c22911,22912 < direction/ISM < directional/Y < directionality --- > direction/IM > directional 26473a22914 > directions 26495,26496c22936 < disaggregation < disambiguate/DGN --- > disambiguate/N 26499d22938 < disassemble/R 26505,26506c22944,22945 < disburse/LDSG < disbursement/SM --- > disburse/DSGL > disbursement/MS 26516c22955 < disciplinarian/MS --- > disciplinarian/SM 26520c22959 < disclose/DSG --- > disclose/DSBG 26527c22966 < discomfit/GD --- > discomfit/DG 26529c22968 < discommode/GD --- > discommode/DG 26533c22972 < disconsolate/YN --- > disconsolate/Y 26536c22975 < discotheque/MS --- > discotheque/SM 26538c22977 < discouragement/MS --- > discouragement/SM 26541d22979 < discoverable 26549c22987 < discrete/YNP --- > discrete/PYN 26553,26555c22991,22992 < discriminant/S < discriminate/DSGNV < discriminated/U --- > discriminant > discriminate/GNDS 26562,26565c22999,23000 < discuss/B < discussant/MS < discussed/A < discussion/MS --- > discussant/SM > discussion/SM 26568c23003 < disembowel/GLSD --- > disembowel/SDLG 26570c23005 < disfigurement/MS --- > disfigurement/SM 26573c23008 < disgruntle/LDSG --- > disgruntle/LGDS 26575a23011 > disguised/U 26584c23020 < dishevel/DGSL --- > dishevel/DGLS 26590c23026 < dishwasher/SM --- > dishwasher/MS 26593c23029 < disillusion/DGL --- > disillusion/GLD 26595c23031 < disinfectant/SM --- > disinfectant/MS 26596a23033 > disinterested/PY 26598,26600c23035 < disinvest < disjoint/P < disjointed/PY --- > disjointed/YP 26602d23036 < disjunction/S 26607d23040 < dislike/DSMG 26609c23042 < dismal/RYT --- > dismal/Y 26615d23047 < dismissible 26619c23051 < disparage/LDSG --- > disparage/DSGL 26632,26633c23064 < dispersant < disperse/XZGNVDRS --- > disperse/GNDS 26635d23065 < dispersive/Y 26637,26639d23066 < dispirited/Y < displace/R < displayed/AU 26642a23070 > disposed/I 26645a23074,23075 > disproportional > disprove/B 26649c23079 < disputation/MS --- > disputation/SM 26655c23085 < disquisition/SM --- > disquisition/MS 26662,26663d23091 < disruptor < diss/DSG 26664a23093 > dissed 26668c23097 < disseminate/DSGN --- > disseminate/GNDS 26670c23099 < dissension/MS --- > dissension/SM 26674c23103 < dissertation/MS --- > dissertation/SM 26679,26680c23108,23109 < dissipate/GNVDS < dissipated/U --- > dissing > dissipate/GNDS 26682c23111 < dissociate/GNVDS --- > dissociate/GNDS 26684d23112 < dissociative/Y 26700,26701c23128,23129 < distention/MS < distil/S --- > distemper/M > distention/SM 26708c23136 < distinctive/PY --- > distinctive/YP 26713d23140 < distinguishably/I 26716d23142 < distorted/U 26718,26719c23144,23145 < distracted/YP < distracting/Y --- > distract/DG > distracted/Y 26726c23152 < distribute/AGNVDSB --- > distribute/AGNVDS 26732,26733c23158,23159 < distributivity < distributor/SM --- > distributor's > distributor/AS 26735c23161,23162 < district/ASM --- > district's > district/AS 26741d23167 < disulphide 26744d23169 < disyllable 26749c23174 < ditsy/RT --- > ditsy 26750a23176 > dittoes 26753,26754c23179 < ditzy/RT < diuresis --- > ditzy/R 26769c23194 < diversify/NGDS --- > diversify/GNDS 26776c23201 < divestiture/SM --- > divestiture/MS 26796c23221,23222 < divorcement/SM --- > divorcement/MS > divorcée/MS 26805d23230 < djellabah/M 26807,26808c23232,23233 < djinn/M < do/SJRHZG --- > djinn > do/SJMRHZG 26814a23240 > dobro 26823c23249 < dockworker/SM --- > dockworker/MS 26829c23255 < doctrinal/Y --- > doctrinal 26839,26841d23264 < dodecahedra < dodecahedral < dodecahedron 26872a23296 > doglike 26877a23302 > dognapper 26884d23308 < dogy/SM 26889c23313,23314 < dole/FGDSM --- > dole's > dole/FGDS 26891,26892d23315 < dolefuller < dolefullest 26894d23316 < dolerite 26912c23334 < domesticate/GNDS --- > domesticate/DSGN 26935c23357 < done/AU --- > done/FAU 26942c23364 < donnybrook/SM --- > donnybrook/MS 26944c23366 < donuts/S --- > donuts 26957c23379,23380 < door/ISM --- > door's > door/IS 26959d23381 < doorhandles 26967d23388 < doornail 26980a23402,23403 > dopier > dopiest 26984c23407 < dopy/RTP --- > doppelgänger/S 27000c23423 < doss/DRZG --- > doss/DRSZG 27006a23430 > dotcom/SM 27012,27013c23436,23438 < dotty/RPT < double/ADSGM --- > dotty/RT > double's > double/ADSG 27015d23439 < doubler 27018,27019d23441 < doubletalk < doublethink 27024c23446 < doubtful/YP --- > doubtful/PY 27031d23452 < doughs 27053a23475 > downfield 27055c23477 < downhearted/YP --- > downhearted/PY 27058,27060c23480 < downland/S < download/MDSG < downloadable --- > download/MDBSG 27062d23481 < downpipes 27084c23503 < downward/YS --- > downward/S 27097a23517 > dpi 27105,27106c23525,23526 < draft/ASDGM < draftboard --- > draft's > draft/ASDG 27129c23549 < drainboard/MS --- > drainboard/SM 27139c23559 < dramatization/MS --- > dramatization/SM 27149,27152c23569,23570 < draughtboards < draughtswoman < draughtswomen < draw/MRZGSBJ --- > draughtboard/S > draw/MRZGSJ 27155d23572 < drawcord 27159c23576 < drawn/AI --- > drawn/A 27166d23582 < dreadnaught/SM 27177c23593 < dreamworld/MS --- > dreamworld/SM 27206c23622 < drillmaster/MS --- > drillmaster/SM 27215c23631 < drive/RSMZGBJ --- > drive/RSMZGJ 27219a23636 > driveshaft/SM 27222c23639 < drizzly/TR --- > drizzly 27234d23650 < drooping/Y 27248,27250c23664 < drouth/M < drouths < drove/RSMZG --- > drove/RSMZ 27266c23680 < druggie/M --- > druggie/SM 27269c23683 < druggy/SM --- > druggy 27289d23702 < dryish 27292d23704 < drystone 27294c23706 < dual/YS --- > dual 27296,27298c23708 < dualist < dualistic < duality/SM --- > duality/M 27311c23721 < duck/JMDGS --- > duck/MDGS 27316d23725 < duckpond 27319c23728,23729 < duct/CIFDGM --- > duct's/K > duct/CKIFS 27321a23732 > ducting 27323d23733 < ducts/IKC 27327c23737,23738 < due/ISM --- > due's > due/IS 27334d23744 < duffel 27347d23756 < dulness/M 27357d23765 < dumfound/GDS 27361a23770 > dumpsite/S 27366c23775 < dunderhead/SM --- > dunderhead/MS 27383d23791 < duologue 27389,27390c23797,23798 < duplicability < duplicate/AGNDSM --- > duplicate's > duplicate/AGNDS 27392d23799 < duplications 27395c23802 < duplicity/SM --- > duplicity/M 27397c23804 < durable/S --- > durable 27400c23807 < duration/MS --- > duration/M 27412d23818 < dustcover 27414d23819 < dustily 27429c23834 < dwarf/STGMDR --- > dwarf/SGMD 27438d23842 < dyad 27445c23849 < dyestuff/SM --- > dyestuff/M 27457d23860 < dyne 27459c23862 < dysfunction/SM --- > dysfunction/MS 27464d23866 < dyslexically 27466a23869 > dysphagia 27468c23871 < dystrophy --- > dystonia 27469a23873,23880 > débridement > débutante/SM > décolletage/SM > décolleté > démodé > dérailleur/MS > déshabillé/M > détente/M 27475a23887 > eMusic/M 27483a23896 > earbud/SM 27505c23918,23919 < earth/UDYGM --- > earth's > earth/UDYG 27527c23941 < east/MG --- > east/M 27544c23958 < eavesdropper/MS --- > eavesdropper/SM 27554a23969 > ecclesial 27559c23974,23975 < echo/ADGM --- > echo's > echo/ADG 27579c23995 < econometric/S --- > econometric 27584d23999 < economization 27588a24004,24005 > ecotourism/M > ecotourist/MS 27593,27594d24009 < ectopic < ectoplasm 27600a24016 > edamame 27605d24020 < edgeless 27622c24037,24038 < edit/ADGSM --- > edit's > edit/ADGS 27628,27629c24044,24045 < editorialize/GDS < editorship/MS --- > editorialize/DSG > editorship/M 27642d24057 < eduction 27646c24061 < eerie --- > eerie/RT 27649d24063 < eery/RTP 27654c24068 < effective/IYP --- > effective/IPY 27656d24069 < effector/S 27658c24071 < effectuate/GDS --- > effectuate/DSG 27670c24083 < efficiency/ISM --- > efficiency/IM 27680c24093 < effortless/PY --- > effortless/YP 27699d24111 < egis/M 27722,27724d24133 < eidetic < eigenfunction/S < eigenstate/S 27730d24138 < eightfold 27735d24142 < eightpence 27744d24150 < ejecta 27748c24154 < elaborate/PYGNDSX --- > elaborate/YGNDSPX 27757c24163 < elasticity/SM --- > elasticity/M 27759d24164 < elastodynamics 27767c24172 < elderflower --- > eldercare/M 27769,27772c24174,24177 < elect/ASDGVM < electability < electable/U < elected/U --- > eldritch > elect's > elect/ASDGV > electable 27774c24179 < electioneer/DSG --- > electioneer/DGS 27785,27786c24190,24191 < electrify/NZGDRS < electrocardiogram/SM --- > electrify/ZGNDRS > electrocardiogram/MS 27790,27791c24195 < electrochemical/Y < electrocute/GNDSX --- > electrocute/DSXGN 27794c24198 < electrodynamic/S --- > electrodynamics 27801d24204 < electroluminescent 27805,27806d24207 < electrolytically < electrolyze/GD 27811,27812d24211 < electromechanical < electromechanics 27815d24213 < electronegative 27816a24215 > electronica/M 27819d24217 < electrophoresis 27836d24233 < elementarily 27858,27859c24255 < eligibly/I < eliminate/DSXGN --- > eliminate/XDSGN 27888c24284 < elucidate/XDSGN --- > elucidate/DSGNX 27893,27894d24288 < eluted < elven 27897,27898c24291,24293 < elvish/S < em/SM --- > elvish > em's > em/S 27904c24299 < emancipate/GNDS --- > emancipate/DSGN 27906,27908c24301,24302 < emancipator/SM < emancipatory < emasculate/DSGN --- > emancipator/MS > emasculate/GNDS 27919c24313 < embarrass/LGDS --- > embarrass/GLDS 27926d24319 < embeddable 27928,27929c24321,24322 < embedding/S < embellish/LDSG --- > embedding > embellish/LGDS 27935c24328 < embitter/GDLS --- > embitter/GLDS 27943d24335 < embodiments 27947c24339 < embosom --- > embolization 27963c24355 < embryologist/SM --- > embryologist/MS 27969c24361 < emendation/SM --- > emendation/MS 27990d24381 < emissivity/S 27994a24386,24387 > emo/SM > emoji 28002,28003c24395 < emotionality < emotionalize/DSG --- > emotionalize/GDS 28008,28009d24399 < empathetical < empathic 28024,28025c24414,24416 < emplacement/MS < employ/ADGLSM --- > emplacement/SM > employ's > employ/ADGLS 28027d24417 < employe/RSMZB 28029c24419 < employer/M --- > employer/SM 28060c24450 < encapsulate/GNXDS --- > encapsulate/XGNDS 28066d24455 < encephalopathy 28076,28077c24465,24466 < encircle/LDSG < encirclement/SM --- > encircle/DSGL > encirclement/M 28089c24478 < encourage/DRSGL --- > encourage/DSLG 28092c24481 < encroach/GDSL --- > encroach/GLDS 28095c24484 < encrustation/MS --- > encrustation/SM 28097d24485 < encrypted/U 28101c24489 < encumbrance/SM --- > encumbrance/MS 28105d24492 < encyclopaedic 28124a24512 > endocarditis 28129,28131c24517,24520 < endomorphism/S < endoplasmic < endorphin/MS --- > endometrial > endometriosis > endometrium > endorphin/M 28133c24522 < endorsement/SM --- > endorsement/MS 28137a24527 > endothelial 28141d24530 < endpapers 28144d24532 < endungeoned 28149d24536 < endwise 28152c24539 < energetic/S --- > energetic 28163,28164c24550 < enforce/AGDS < enforceability --- > enforce/LZGDRS 28167,28169c24553,24555 < enforcement/MS < enforcer/MS < enfranchise/ELGDS --- > enforcement/M > enforcer/M > enfranchise/EGDSL 28171d24556 < enfranchiser 28173,28174c24558 < engaged/U < engagement/ESM --- > engagement/EMS 28177c24561 < engine/DSM --- > engine/SM 28182d24565 < engrained 28192d24574 < enhanceable 28194d24575 < enharmonic 28198d24578 < enjambement/SM 28202d24581 < enjoyability 28209c24588 < enlighten/LSGD --- > enlighten/SGLD 28211d24589 < enlightening/U 28226c24604 < enormous/YP --- > enormous/PY 28237d24614 < enrobed 28242c24619 < enshrine/GDSL --- > enshrine/GLDS 28256c24633 < entangle/EDSGL --- > entangle/EDSLG 28259d24635 < entangler 28262c24638 < entered/U --- > enteric 28264c24640 < enterprise/SMG --- > enterprise/MGS 28266c24642 < entertain/DRSZGL --- > entertain/ZGDRSL 28270d24645 < enthalpy/S 28273c24648 < enthrone/LGDS --- > enthrone/GDSL 28279c24654 < enthusiastically/U --- > enthusiastically 28291c24666 < entomologist/SM --- > entomologist/MS 28296,28297c24671 < entrain/DL < entrance/DSLMG --- > entrance/LDSMG 28311c24685 < entrepreneur/MS --- > entrepreneur/SM 28314d24687 < entropic 28319a24693 > entrée/MS 28338d24711 < environ/SL 28342c24715 < environmentalist/MS --- > environmentalist/SM 28352a24726,24727 > eosinophil/S > eosinophilic 28354d24728 < epaulette/MS 28359d24732 < ephemeris 28361d24733 < epically 28365,28366d24736 < epicycles < epicycloid 28370c24740 < epidemiologist/MS --- > epidemiologist/SM 28380d24749 < epigraphical 28385d24753 < epilog/MS 28387d24754 < epinephrin/M 28390,28391d24756 < epiphenomena < epiphenomenon 28394d24758 < episcopalian 28406,28407d24769 < epitaxial < epitaxy 28411d24772 < epithetic 28424c24785 < equality/ISM --- > equality/IM 28437d24797 < equiangular 28439,28441c24799 < equilateral/MS < equilibrating < equilibration --- > equilateral/SM 28448,28449c24806 < equipartition < equipment/MS --- > equipment/M 28458c24815 < equivalence/SM --- > equivalence/MS 28463c24820 < equivocate/XGNDS --- > equivocate/GNXDS 28465,28466c24822,24823 < equivocator/MS < er --- > equivocator/SM > er/C 28486d24842 < ergodic 28490d24845 < ergophobia 28498d24852 < erosional 28504d24857 < erotics/S 28524c24877,24878 < erythrocyte/MS --- > erythrocyte/SM > erythromycin 28530d24883 < escalop/GDS 28535c24888 < escapement/MS --- > escapement/SM 28542c24895 < escarpment/SM --- > escarpment/MS 28548d24900 < escorted/U 28552c24904 < escutcheon/MS --- > escutcheon/SM 28555c24907 < esophagus/M --- > esophagus/MS 28557d24908 < esoterica 28560c24911 < espadrille/SM --- > espadrille/MS 28576d24926 < essentialist 28578,28579c24928 < establish/EASDGL < established/U --- > establish/AESDGL 28585d24933 < esthete/SM 28587,28588d24934 < esthetically < esthetics/M 28595c24941 < estrangement/SM --- > estrangement/MS 28599d24944 < estuarine 28613d24957 < etherized 28616d24959 < ethicist 28628c24971 < ethnologist/MS --- > ethnologist/SM 28653d24995 < eukaryote 28665d25006 < euphonium/S 28680c25021 < evade/DRSZGB --- > evade/DRSZG 28682d25022 < evaluable 28684d25023 < evaluated/U 28686,28687d25024 < evaluational < evaluator/S 28709c25046 < event/SMG --- > event/SM 28719,28720c25056 < everlasting/SMY < everliving --- > everlasting/MYS 28725d25060 < everyman 28734d25068 < evidential 28747d25080 < evolute/NX 28749d25081 < evolutionarily 28751,28752c25083 < evolutionism < evolutionist/MS --- > evolutionist/SM 28760c25091 < exact/SPDRYTGB --- > exact/SBPDRYTG 28762,28763c25093,25094 < exacting/YP < exaction/MS --- > exacting/PY > exaction/SM 28767c25098 < exaggerate/DSGNX --- > exaggerate/XDSGN 28770c25101 < exaggerator/SM --- > exaggerator/MS 28774d25104 < examinable 28777,28778d25106 < examined/U < examinees 28799c25127 < exception/SMB --- > exception/BSM 28801a25130 > exceptionalism 28805c25134 < exchange/DRSMZG --- > exchange/DSMG 28812c25141 < excitation/SM --- > excitation/M 28818,28819c25147 < exciton < excl/S --- > excl 28821c25149 < exclamation/MS --- > exclamation/SM 28826c25154 < exclusive/MYPS --- > exclusive/PMYS 28829c25157 < excommunicate/GNXDS --- > excommunicate/GNDSX 28831c25159 < excoriate/DSXGN --- > excoriate/DSGNX 28842d25169 < excruciation 28847c25174 < excursionist/SM --- > excursionist/MS 28855,28856d25181 < execked < execking 28862c25187 < execution/MRZ --- > execution/ZMR 28875c25200 < exemplify/XGDSN --- > exemplify/GDSXN 28878c25203 < exercise/DRSBMZG --- > exercise/DRSMZG 28892c25217 < exhibition/ZMRS --- > exhibition/MS 28896c25221 < exhilarate/GNDS --- > exhilarate/DSGN 28899c25224 < exhortation/SM --- > exhortation/MS 28913,28914c25238 < existentialist/SM < existentialistic --- > existentialist/MS 28917d25240 < exocrine 28922a25246 > exoplanet/MS 28928,28929c25252 < exorcize/DSG < exoskeleton/MS --- > exoskeleton/SM 28932d25254 < exothermically 28938,28940c25260 < expand/BGSDR < expandability < expanded/U --- > expand/BGSD 28947c25267 < expansive/PY --- > expansive/YP 28952c25272 < expatriate/MGNDS --- > expatriate/DSMGN 28955c25275 < expectancy/SM --- > expectancy/M 28957,28960c25277,25279 < expectation/MS < expectational < expectorant/MS < expectorate/GNDS --- > expectation/SM > expectorant/SM > expectorate/DSGN 28971c25290 < expeditious/YP --- > expeditious/PY 28973d25291 < expeditor/SM 28979c25297 < expenditure/MS --- > expenditure/SM 28981c25299 < expensive/IPY --- > expensive/IYP 28983c25301 < experience/IDM --- > experience/IMD 28987c25305 < experiment/ZGSMDR --- > experiment/MDRSZG 28990d25307 < experimentalist/S 28995d25311 < expertize 29001d25316 < expiratory 29006c25321 < explainable/U --- > explainable 29012c25327 < explicate/XGNVDS --- > explicate/XGNDS 29016,29017c25331 < explode/ZGDRS < exploded/U --- > explode/GDS 29019c25333 < exploitation/MS --- > exploitation/M 29025c25339 < explore/BZGDRS --- > explore/ZGDRS 29029c25343 < explosive/SMYP --- > explosive/SPMY 29036d25349 < exportability 29052c25365 < expression/MS --- > expression/SM 29057c25370 < expressive/YP --- > expressive/PY 29059,29060c25372,25373 < expressway/MS < expropriate/XGNDS --- > expressway/SM > expropriate/GNXDS 29062c25375 < expropriator/MS --- > expropriator/SM 29065c25378 < expurgate/XDSGN --- > expurgate/DSGNX 29072c25385 < extemporaneous/YP --- > extemporaneous/PY 29078d25390 < extendability 29081,29082c25393 < extensibility < extensible/I --- > extensible 29084c25395 < extensional/Y --- > extensional 29087d25397 < extensors 29092c25402 < exterminate/GNDSX --- > exterminate/DSXGN 29094c25404 < exterminator/SM --- > exterminator/MS 29097c25407 < externalize/GDS --- > externalize/DSG 29100c25410 < extinguish/BZGDRS --- > extinguish/ZGBDRS 29106c25416,25417 < extoll/SGD --- > extolled > extolling 29108c25419 < extortion/ZMR --- > extortion/MRZ 29111c25422 < extortionist/SM --- > extortionist/MS 29114,29115c25425,25426 < extract/BMDGVS < extraction/MS --- > extract/MDGS > extraction/SM 29118c25429 < extradite/GNDSBX --- > extradite/GNBXDS 29120d25430 < extragalactic 29123d25432 < extralinguistic 29130c25439 < extrapolate/GNXDS --- > extrapolate/XGNDS 29133,29134c25442 < extrasolar < extraterrestrial/SM --- > extraterrestrial/MS 29137c25445 < extravagance/SM --- > extravagance/MS 29139c25447 < extravaganza/SM --- > extravaganza/MS 29141,29143d25448 < extravert/MS < extrema < extremal 29161d25465 < exudate/N 29167d25470 < exulting/Y 29170c25473 < exurbanite/MS --- > exurbanite/SM 29177a25481 > eyeing 29186d25489 < eyeshadow 29194,29195d25496 < eyrie/M < eyry/SM 29201c25502 < fabricate/DSXGN --- > fabricate/DSGNX 29203,29204c25504 < fabricator/MS < fabulists --- > fabricator/SM 29207c25507,25508 < face/ACSDGM --- > face's > face/ACSDG 29212d25512 < faceplate 29218c25518 < facilitate/GNVDS --- > facilitate/GNDS 29220c25520 < facilitator/SM --- > facilitator/MS 29232c25532,25533 < factor/SMDG --- > factor's > factor/ASDG 29234,29235c25535 < factorisable < factorization/S --- > factorization 29246d25545 < fadeout 29248,29249c25547 < faerie/M < faery/SM --- > faerie/SM 29256d25553 < fagoting/M 29267c25564 < fairground/SM --- > fairground/MS 29269,29270d25565 < fairings/S < fairish 29275d25569 < fairytale 29277c25571,25572 < faithful/UPYM --- > faithful's > faithful/UPY 29291c25586 < fall/MNRZGS --- > fall/MNGS 29300d25594 < fallopian 29308,29309c25602 < falsifiability < falsifiable/U --- > falsifiable 29312c25605 < falsify/DRSZGXN --- > falsify/DRSZGNX 29316c25609,25610 < fame/DM --- > fame's > fame/D 29319d25612 < familiarities 29330a25624 > fanboy/SM 29333c25627 < fanciful/PY --- > fanciful/YP 29339a25634 > fandom 29356c25651 < faradize/DSG --- > faradize/DG 29388c25683 < fascinate/XGNDS --- > fascinate/GNDSX 29397a25693 > fashionista/MS 29404c25700 < fastidious/YP --- > fastidious/PY 29419d25714 < fatheaded/P 29426d25720 < fathomed/U 29429d25722 < fatigued/U 29433d25725 < fatted 29445c25737 < faultfinder/MS --- > faultfinder/SM 29449c25741 < faultless/YP --- > faultless/PY 29461d25752 < favored/U 29466d25756 < fawning/Y 29470a25761 > faïence/M 29474,29475d25764 < fearfuller < fearfullest 29479c25768 < fearsome/YP --- > fearsome 29482c25771 < feasibly/U --- > feasibly 29489d25777 < featherlight 29521,29522d25808 < feedstock < feedstuffs 29532d25817 < felafel/S 29534c25819 < felicitate/XGNDS --- > felicitate/GNXDS 29545c25830 < fellowship/SM --- > fellowship/MS 29562,29563d25846 < fenced/U < fencepost 29569d25851 < fenland 29576d25857 < fermion/S 29580c25861 < ferocious/YP --- > ferocious/PY 29585d25865 < ferrite 29619d25898 < fetich/MS 29627c25906,25907 < fetter/USGDM --- > fetter's > fetter/USGD 29647c25927,25929 < fiasco/M --- > fiancé/SM > fiancée/MS > fiasco/SM 29654c25936 < fiber/MD --- > fiber/M 29662d25943 < fibroblast/S 29669d25949 < fices 29676,29677c25956,25957 < fictionalization/MS < fictionalize/GDS --- > fictionalization/SM > fictionalize/DSG 29681c25961 < fiddle/DRSJMZG --- > fiddle/DRSMZG 29698c25978 < fieldwork/ZMR --- > fieldwork/MRZ 29704d25983 < fierily 29718c25997 < fig/SLM --- > fig/FSM 29724d26002 < figural 29727c26005,26006 < figure/FEGSDM --- > figure's > figure/EFGSD 29731d26009 < filamentary 29735,29738c26013,26017 < file/CAKGDSM < filer/CSM < filesystem/MS < filet/GSMD --- > file/KCSRDGZM > filename/S > filer/KCM > filesystem/SM > filet 29740c26019 < filibuster/ZGSMDR --- > filibuster/MDRSZG 29744,29745c26023,26026 < filing/SM < fill/AIDGSM --- > filing's > filings > fill's > fill/AIDGS 29766,29767c26047,26048 < filtrable < filtrate/IGNDSM --- > filtrate's > filtrate/IGNDS 29778,29780c26059,26061 < finance/ADSGM < financial/Y < financials --- > finance's > finance/ADSG > financial/YS 29784c26065 < find/BJMRZGS --- > find/JMRZGS 29788c26069,26070 < fine/CAFTGDSM --- > fine's/F > fine/CAFTGDS 29795c26077 < fingerboard/MS --- > fingerboard/SM 29797d26078 < fingerless 29801c26082 < fingerprint/MDSG --- > fingerprint/SGMD 29808c26089,26090 < finish/ADSGM --- > finish's > finish/ADSG 29811c26093 < finite/PY --- > finite/IY 29814,29815c26096 < finny/TR < fiord/SM --- > finny 29827d26107 < fired/U 29829c26109 < firefight/MRSJZG --- > firefight/MRSZG 29843d26122 < firesafe 29853d26131 < firkin 29857c26135 < firmware/MS --- > firmware/M 29883,29884c26161,26162 < fission/BSM < fissure/DSM --- > fission/BM > fissure/SM 29902d26179 < fivefold 29918c26195 < flabbergast/GSD --- > flabbergast/SGD 29949,29950c26226 < flam < flamage/S --- > flamage 29956a26233 > flambé/MD 29959,29960c26236,26237 < flameproof/DSG < flamethrower/MS --- > flameproof/DGS > flamethrower/SM 29965c26242 < flange/MDS --- > flange/MS 29969d26245 < flannelet/M 29994a26271 > flatbread 30021d26297 < flautist/SM 30032c26308 < flay/DRZGS --- > flay/DGS 30039d26314 < fledgeling/SM 30052d26326 < fleshless 30059d26332 < flexibilities 30064c26337 < flexitime/M --- > flexion 30066c26339 < flibbertigibbet/MS --- > flibbertigibbet/SM 30069d26341 < flickery 30071c26343 < flight/MDS --- > flight/MS 30074d26345 < flightpath 30088c26359,26361 < flippable --- > flipflop/S > flipflopped > flipflopping 30097c26370 < flirtation/SM --- > flirtation/MS 30105d26377 < floatation 30107,30108d26378 < floaty < flocculation 30118c26388 < floodlight/MDGS --- > floodlight/MDSG 30121c26391 < floodwater/M --- > floodwater/MS 30125,30126c26395 < floorspace < floorwalker/MS --- > floorwalker/SM 30132d26400 < flopper 30152c26420 < flouncy/TR --- > flouncy 30156c26424 < floury/RT --- > floury 30159c26427 < flow/IMGS --- > flow/MDGS 30161,30162c26429,26430 < flowed < flower/CSDGM --- > flower's > flower/CSDG 30175c26443 < fluctuate/XGNDS --- > fluctuate/GNDSX 30185c26453 < fluidize/DSG --- > fluidize/GS 30187d26454 < flukey 30193d26459 < flunkey/MS 30203,30204c26469,26470 < fluorocarbon/SM < fluoroscope/MS --- > fluorocarbon/MS > fluoroscope/SM 30215,30216c26481,26484 < flux/ADGM < fluxes --- > flux's/A > flux/IMS > fluxed > fluxing 30223c26491 < flyer/MS --- > flyer/SM 30237,30238c26505 < fo'c's'le < fo'c'sle --- > fo'c'sle/MS 30248c26515,26516 < focus/ADSGM --- > focus's > focus/ADSG 30252,30253c26520,26521 < foetid < fog/CSM --- > fog's > fog/CS 30267c26535,26536 < fold/IAUSGDM --- > fold's > fold/AUSGD 30272c26541 < foliate --- > folic 30281d26549 < folksong 30287,30288c26555 < follicular < follow/SDRZGBJ --- > follow/SDRZGJ 30299d26565 < fondu/M 30305c26571 < foobar/S --- > foobar 30313,30314c26579,26580 < foolhardy/PTR < foolish/TRYP --- > foolhardy/TPR > foolish/YP 30322c26588 < footbridge/MS --- > footbridge/SM 30334d26599 < footmarks 30337d26601 < footpads 30377d26640 < fordable/U 30387c26650 < foreclosure/SM --- > foreclosure/MS 30389d26651 < foredeck 30396,30397c26658,26660 < foregather/SGD < foregoing --- > foregather/GDS > forego/G > foregoes 30399c26662 < foreground/MDGS --- > foreground/GMDS 30421c26684 < foreordain/GDS --- > foreordain/GSD 30423d26685 < forepaws 30426c26688 < forequarter/SM --- > forequarter/MS 30431d26692 < foreseeability 30436c26697 < foreshadow/SGD --- > foreshadow/GDS 30438c26699 < foreshorten/SDG --- > foreshorten/DSG 30442c26703,26704 < forest/ACGDSM --- > forest's > forest/ACGDS 30448,30450d26709 < foreswear/GS < foreswore < foresworn 30470c26729 < forgetful/PY --- > forgetful/YP 30477c26736 < forgiven/U --- > forgiven 30490,30492c26749,26752 < forlorn/PTRY < form/CAIFDGSM < forma --- > forlorn/Y > form's > form/CAIFDGS > forma/K 30496c26756 < formalism/MS --- > formalism/M 30498d26757 < formalistic 30501c26760 < formalization/MS --- > formalization/M 30503d26761 < formant 30509c26767 < former/AIFMS --- > former/FIAM 30517a26776 > formulae 30537c26796 < forthright/PY --- > forthright/YP 30545c26804 < fortify/DRSZGNX --- > fortify/DRSNZGX 30550c26809 < fortuitous/PY --- > fortuitous/YP 30562a26822 > fossa 30564d26823 < fossiliferous 30575d26833 < foundational 30585,30587c26843 < fourpence < fourpenny < fourposter/MS --- > fourposter/SM 30613,30614c26869 < frack/DRGS < fracker/S --- > frack/SDRZG 30616c26871 < fraction/IASM --- > fraction/ISM 30618d26872 < fractionate/GND 30638c26892,26893 < franchise/EDSGM --- > franchise's > franchise/EDSG 30652a26908 > frappé/M 30661c26917,26918 < fraud/SM --- > fraud's > fraud/S 30666c26923,26924 < fray/CDGSM --- > fray's > fray/CDGS 30674c26932 < freckly/TR --- > freckly 30703c26961 < freeware/SM --- > freeware/M 30705c26963 < freewheel/DSG --- > freewheel/DGS 30708c26966,26967 < freeze/UAGSM --- > freeze's > freeze/UAGS 30710c26969 < freezing/M --- > freezing's 30718d26976 < freon/S 30736d26993 < fretboard 30751d27007 < frictionless 30754,30755c27010,27012 < friend/SM < friendless/P --- > friend's > friend/US > friendless 30757d27013 < friendlily 30759,30760c27015,27017 < friendly/UTPRM < friendship/SM --- > friendly's > friendly/UPTR > friendship/MS 30767c27024 < frighten/DZG --- > frighten/DG 30776c27033,27034 < fringe/IDSGM --- > fringe's > fringe/IDSG 30786c27044 < frivolous/YP --- > frivolous/PY 30788d27045 < friz/M 30791d27047 < frizzly/TR 30794c27050,27051 < frock/CUSM --- > frock's > frock/CUS 30796c27053 < frogging/DGS --- > frogging/S 30808c27065,27066 < front/FSDGM --- > front's > front/FSDG 30817,30818c27075 < frontispiece/SM < frontrunner/SM --- > frontispiece/MS 30821c27078,27079 < frost/CSDGM --- > frost's > frost/CSDG 30837,30838d27094 < frowning/Y < frowsty 30852,30854c27108 < fruitful/PY < fruitfuller < fruitfullest --- > fruitful/YP 30858c27112 < fruitless/YP --- > fruitless/PY 30864,30865c27118 < frustrate/GNDSX < frustrated/Y --- > frustrate/GNXDS 30869c27122 < fry/ZGDRSM --- > fry/GDSM 30872c27125 < ftp/ZGSR --- > ftp/ZGS 30875c27128 < fucker/SM! --- > fucker/M! 30880c27133,27134 < fuel/ADGSM --- > fuel's > fuel/ADGS 30889a27144 > fulfilling/U 30894d27148 < fullish 30896d27149 < fullstops 30900d27152 < fulness/M 30904d27155 < fumarole/S 30913d27163 < fuming/Y 30920c27170 < functionality --- > functionality/S 30922d27171 < functionless 30926c27175 < fundamentalist/MS --- > fundamentalist/SM 30928,30929d27176 < fundholders < fundholding 30961c27208,27209 < furl/UDGSM --- > furl's > furl/UDGS 30987c27235,27236 < fuse/CAIFGDSM --- > fuse's/A > fuse/CAIFGDS 30997c27246 < fussbudget/SM --- > fussbudget/MS 31017d27265 < fuze/MGDS 31025c27273,27274 < g/SNXB --- > fête/SM > g/SNXVB 31055c27304,27305 < gain/ADGSM --- > gain's > gain/ADGS 31067c27317,27318 < gale/ASM --- > gale's > gale/AS 31071,31072c27322,27323 < gallantry/SM < gallbladder/SM --- > gallantry/M > gallbladder/MS 31075c27326 < gallery/DSM --- > gallery/SM 31087d27337 < galoshe/M 31095d27344 < galvanometric 31101c27350 < game/MYZTGDRSP --- > game/MYTGDRSP 31103c27352 < gamekeeper/SM --- > gamekeeper/MS 31106d27354 < gamesmen 31111c27359 < gamify/NGDS --- > gamify/DSNG 31122c27370 < gang/MDYGS --- > gang/MDGS 31129d27376 < gangly/RT 31135d27381 < gangsterism 31141,31142d27386 < gaolbirds < gaolbreak/S 31145d27388 < gaping/Y 31173,31174c27416 < garnishment/MS < garote/DSMG --- > garnishment/SM 31182c27424 < garrulous/YP --- > garrulous/PY 31185c27427,27429 < gas/CSM --- > garçon/SM > gas's > gas/CS 31215c27459 < gateau/S --- > gateau 31224d27467 < gathered/I 31236c27479 < gaunt/RYPT --- > gaunt/RPT 31251,31252c27494 < gay/TSPMRY < gayety/M --- > gay/TSPMR 31267d27508 < gearstick 31272d27512 < geegaw/SM 31277d27516 < geez/RZ 31282d27520 < gelatine/M 31299d27536 < genderless 31302c27539 < genealogist/SM --- > genealogist/MS 31306c27543 < generalissimo/SM --- > generalissimo/MS 31310c27547 < generalize/GBDS --- > generalize/GDS 31313c27550,27551 < generation/ASMC --- > generation's/A > generation/CSM 31319c27557 < generous/UY --- > generous/PY 31325c27563 < geneticist/SM --- > geneticist/MS 31328a27567 > geniculate 31342,31343c27581 < genomic/S < genotype/S --- > genomics 31346c27584 < genteel/RYTP --- > genteel/YP 31352c27590 < gentlefolk/SM --- > gentlefolk/MS 31368a27607 > geocache/DSG 31371d27609 < geochemical 31376a27615 > geoengineering 31388d27626 < geomagnetically 31390c27628 < geometer/S --- > geometer 31394d27631 < geomorphology 31400d27636 < geoscientific 31403c27639 < geosyncline/SM --- > geosyncline/MS 31418d27653 < germinated/U 31420d27654 < gerontocracy 31422c27656 < gerontologist/SM --- > gerontologist/MS 31424c27658 < gerrymander/SMDG --- > gerrymander/GMDS 31426c27660 < gerund/VMS --- > gerund/MS 31432c27666 < gesticulate/XDSGN --- > gesticulate/DSGNX 31437c27671 < get/SM --- > get/S 31439,31440d27672 < gettable < getter 31453d27684 < ghostlike 31461c27692 < ghoulish/PY --- > ghoulish/YP 31465d27695 < giantkiller 31478c27708 < gigabit/MS --- > gigabit/SM 31481c27711 < gigajoule/MS --- > gigajoule/SM 31485,31486c27715 < gigavolt < gigawatt/MS --- > gigawatt/SM 31509c27738 < gimpy/RT --- > gimpy 31517,31518c27746 < gingko/M < ginkgo/M --- > ginkgo/SM 31524d27751 < gipsy/SM 31530c27757 < girlfriend/SM --- > girlfriend/MS 31540d27766 < gismo/SM 31544c27770 < give/MZGJRS --- > give/ZGJRS 31558,31560c27784 < glaciological < glaciologist/S < glaciology --- > glacé/SDG 31571d27794 < gladly/TR 31573c27796 < gladsome/RT --- > gladsome 31578a27802 > glamour/GMDS 31594d27817 < glassless 31599d27821 < glazed/U 31609a27832,27833 > glenohumeral > glenoid 31646c27870 < glockenspiel/MS --- > glockenspiel/SM 31652c27876 < gloppy/TR --- > gloppy 31654c27878 < glorify/GNDS --- > glorify/GDSN 31669a27894 > glucagon 31680d27904 < gluon 31682d27905 < glutamate 31694d27916 < glycine 31696d27917 < glycol 31698d27918 < glyphs 31710,31711d27929 < gnostic < gnosticism 31713c27931 < go/SJMRHZG --- > go/JMRHZG 31717c27935 < goalkeeper/SM --- > goalkeeper/MS 31724,31725c27942 < goalscoring < goaltender/SM --- > goaltender/MS 31735d27951 < gobbledegook/M 31745,31746c27961,27962 < godchildren < goddam --- > godchildren/M > goddam/D 31749c27965 < goddaughter/SM --- > goddaughter/MS 31772,31773c27988,27989 < gold/MNRTS < goldbrick/SZGMDR --- > gold/MNS > goldbrick/ZGSMDR 31794c28010 < gonk/DGS --- > gonk/S 31818a28035 > google/DSMG 31834c28051,28052 < gorge/EDSGM --- > gorge's > gorge/EDSG 31879c28097 < governorship/MS --- > governorship/M 31890,31891d28107 < gracefuller < gracefullest 31893c28109 < graceless/YP --- > graceless/PY 31898c28114 < grad/MRZSBJ --- > grad/MRZSB 31900,31901c28116,28118 < gradation/CSM < grade/CADSGM --- > gradation/CM > grade's > grade/CADSG 31907d28123 < gradualist 31909d28124 < graduand/S 31917c28132 < grail/S --- > grail 31924a28140 > grammatically/K 31930,31931c28146 < grandad/S < grandaddy/S --- > grandad/MS 31935c28150 < grandchildren --- > grandchildren/M 31938c28153 < granddaughter/MS --- > granddaughter/SM 31942c28157 < grandfather/SMDYG --- > grandfather/GMDYS 31948d28162 < grandmaster/S 31956c28170 < grandstand/SMDG --- > grandstand/SGMD 31959c28173 < granite/MS --- > granite/M 31967d28180 < grantor/MS 31975c28188 < grapefruit/SM --- > grapefruit/MS 31982c28195 < graphologist/SM --- > graphologist/MS 31987c28200 < grasp/SMDRBG --- > grasp/SMDBG 31989c28202 < grasshopper/SM --- > grasshopper/MS 31995,31996d28207 < gratefuller < gratefullest 31999d28209 < graticule 32001c28211 < gratify/XNGDS --- > gratify/GNXDS 32012c28222 < gravedigger/MS --- > gravedigger/SM 32020c28230 < gravimeter/SM --- > gravimeter/MS 32024,32026c28234,28235 < gravitational/Y < graviton/S < gravity/SM --- > gravitational > gravity/M 32036d28244 < greaseproof 32056,32057c28264 < greengrocer/MS < greengrocery --- > greengrocer/SM 32079,32080c28286,28288 < grey/MDRTGSP < greybeard/SM --- > grey/MDRTGS > greybeard's > greybeards 32082,32083c28290 < greyish < greyness/M --- > greyness's 32086d28292 < gridded 32095c28301 < grievous/YP --- > grievous/PY 32112c28318 < grindstone/SM --- > grindstone/MS 32115d28320 < grinner 32126d28330 < gristly/RT 32137c28341 < groan/SZGMDR --- > groan/SGMD 32157c28361 < grope/DRSJMZG --- > grope/DRSMZG 32159d28362 < groping/Y 32164c28367 < grotesque/SMYP --- > grotesque/SPMY 32177d28379 < grounded/U 32212d28413 < groyne/S 32240d28440 < gryphon/SM 32245a28446 > guaranies 32251c28452 < guarded/YP --- > guarded/Y 32262c28463 < gudgeon --- > guerilla/SM 32265d28465 < guessable/U 32270c28470 < guestbook/MS --- > guestbook/SM 32287c28487 < guileless/PY --- > guileless/YP 32306d28505 < gulley/MS 32324d28522 < gumtree/S 32333c28531 < gunky/TR --- > gunky 32375c28573 < guttersnipe/SM --- > guttersnipe/MS 32377c28575 < guttural/MYS --- > guttural/MS 32395c28593 < gynecologist/MS --- > gynecologist/SM 32409d28606 < gyromagnetic 32416c28613 < haberdasher/MS --- > haberdasher/SM 32419c28616,28617 < habit/ISBM --- > habit's > habit/ISB 32427a28626 > habitué/SM 32429c28628 < hack/BMDRZGS --- > hack/MDRZGS 32432,32434c28631 < hackish/SP < hackishness/S < hackitude/S --- > hackish 32437a28635 > hacktivist/S 32441,32443d28638 < hadj/M < hadjes < hadji/SM 32445d28639 < hadron/S 32470d28663 < haircare 32474c28667 < hairdresser/MS --- > hairdresser/SM 32476c28669 < hairdrier/S --- > hairdrier/MS 32488c28681 < hairsplitter/MS --- > hairsplitter/SM 32491,32493c28684,28686 < hairspring/SM < hairstyle/MGS < hairstylist/MS --- > hairspring/MS > hairstyle/MS > hairstylist/SM 32506,32507c28699 < halfbreed < halfhearted/YP --- > halfhearted/PY 32511d28702 < halfpennyworth 32517d28707 < halide/S 32521,32522d28710 < halleluiah/M < halleluiahs 32525d28712 < halliard/MS 32527d28713 < hallo/M 32531c28717 < hallucinate/DSXGN --- > hallucinate/GNXDS 32535c28721 < hallucinogenic/MS --- > hallucinogenic/SM 32539,32540c28725 < halogenated < halon/S --- > halon 32563c28748 < hamstring/SGM --- > hamstring/GSM 32565c28750,28751 < hand/UDGSM --- > hand's > hand/UDGS 32569d28754 < handbasin 32585c28770 < handicapper/SM --- > handicapper/MS 32591c28776 < handkerchief/SM --- > handkerchief/MS 32641c28826 < happenstance/MS --- > happenstance/SM 32670,32671c28855 < hardline/ZR < hardliner/M --- > hardliner/MS 32690,32691c28874 < hark/DNXGS < harken/DG --- > hark/DGS 32695c28878 < harm/MDRGS --- > harm/MDGS 32712c28895,28896 < harness/UDSGM --- > harness's > harness/UDSG 32717,32718c28901,28902 < harpsichord/SM < harpsichordist/MS --- > harpsichord/MS > harpsichordist/SM 32733d28916 < hasheesh/M 32735c28918 < hashtag/S --- > hashtag/SM 32784d28966 < havering 32796d28977 < hayfield 32804d28984 < haywain 32814a28995 > hazmat 32850d29030 < headmastership 32853d29032 < headnote 32857c29036 < headquarter/SGD --- > headquarter/SDG 32865c29044 < headshrinker/MS --- > headshrinker/SM 32870d29048 < headstock 32874c29052 < headwaiter/MS --- > headwaiter/SM 32884c29062 < healthcare/M --- > healthcare 32889d29066 < healths 32898c29075,29076 < hearse/ASM --- > hearse's > hearse/AS 32902c29080 < heartbreak/MSG --- > heartbreak/SMG 32910c29088 < hearthstone/MS --- > hearthstone/SM 32914c29092 < heartless/YP --- > heartless/PY 32924c29102,29103 < heat/ADGSM --- > heat's > heat/ADGS 32928c29107 < heath/MNRXZ --- > heath/MNRX 32934,32935d29112 < heathery < heathland 32952c29129 < heavyweight/SM --- > heavyweight/MS 32961d29137 < hectoliters 33001c29177 < helicopter/SMDG --- > helicopter/SGMD 33003,33004d29178 < heliography < heliosphere 33010c29184 < hell/MS --- > hell/M 33014d29187 < hellfire 33033c29206 < helpline/S --- > helpline/SM 33035d29207 < helpmeet/SM 33041c29213 < hematologist/SM --- > hematologist/MS 33054c29226 < hemophiliac/SM --- > hemophiliac/MS 33067d29238 < henge 33070c29241 < hentai/! --- > hentai 33074a29246 > hepatocyte/S 33079d29250 < heptane 33081d29251 < her/M 33090d29259 < herbalism 33116d29284 < hereunder 33120d29287 < heritability 33125d29291 < hermeneutic/S 33164d29329 < heterozygous 33176c29341,29342 < hexane/SM --- > hexane's > hexanes 33187c29353 < hibernator/SM --- > hibernator/MS 33188a29355,29356 > hiccough/DG > hiccoughs 33194c29362 < hidden/U --- > hidden 33208d29375 < hieratic 33210c29377 < hieroglyphic/SM --- > hieroglyphic/MS 33219d29385 < highfaluting 33222,33223d29387 < highish < highjack/SGMD 33229,33230d29392 < highpoint < highrise/MS 33241d29402 < hijinks 33254d29414 < hillwalking 33257c29417 < him/SM --- > him/S 33266c29426,29427 < hinge/UDSGM --- > hinge's > hinge/UDSG 33269c29430 < hinterland/MS --- > hinterland/SM 33279c29440 < hippie/SM --- > hippie/M 33284a29446 > hippy/SM 33286c29448,29450 < hire/AGDSM --- > hiragana > hire's > hire/AGDS 33288d29451 < hirer 33291c29454 < hiss/MDSGJ --- > hiss/MDSG 33295d29457 < histological 33301d29462 < historicist 33304d29464 < historiographical 33311c29471,29472 < hitch/UDSGM --- > hitch's > hitch/UDSG 33317d29477 < hittable 33325,33327c29485 < hoagie/M < hoagy/SM < hoar --- > hoagie/MS 33350a29509 > hoboes 33365d29523 < hogger 33379c29537 < hold/MRBJSZG --- > hold/MRJSZG 33427d29584 < homeomorphism/S 33447a29605 > homewrecker/SM 33451a29610 > homie/RSMT 33455a29615 > hominoid/S 33459d29618 < homogenates 33464d29622 < homogenous 33467d29624 < homological 33469,33471d29625 < homologue < homology/S < homomorphism/S 33473d29626 < homophobes 33477,33478c29630 < homophony < homosexual/SMY --- > homosexual/SM 33480,33483d29631 < homotopy < homozygous < homunculus < homy/RPT 33493c29641 < honeycomb/GMDS --- > honeycomb/MDSG 33496c29644 < honeymoon/MDRSZG --- > honeymoon/ZGMDRS 33510d29657 < honored/U 33515a29663 > hoodie/MS 33521,33522c29669,29670 < hook/UDSGM < hooka/SM --- > hook's > hook/UDSG 33526d29673 < hookey/M 33534c29681 < hooray/MDSG --- > hooray/MS 33544d29690 < hoped/U 33547c29693 < hopeless/PY --- > hopeless/YP 33552c29698 < hopscotch/GMDS --- > hopscotch/MDSG 33557,33558c29703,29704 < horizontal/MYS < hormonal/Y --- > horizontal/SMY > hormonal 33561d29706 < hornbeam 33583c29728,29729 < horse/UDSGM --- > horse's > horse/UDSG 33621a29768 > hospholipase 33627,33628c29774,29775 < hospitalization/MS < hospitalize/GDS --- > hospitalization/SM > hospitalize/DSG 33644d29790 < hotchpotch 33654a29801 > hotkey/S 33662d29808 < hotspot/MS 33665a29812 > hottie/S 33667,33668d29813 < houmous < houmus 33673c29818,29819 < house/ADSGM --- > house's > house/ADSG 33682,33683c29828 < housebuilding < houseclean/DGS --- > houseclean/DSG 33690c29835 < househusband/MS --- > househusband/SM 33701d29845 < housemoving 33708c29852 < housewarming/MS --- > housewarming/SM 33715c29859 < hover/SGDR --- > hover/SGD 33716a29861,29862 > how'd > how're 33758d29903 < hullo/M 33766c29911 < humanitarian/SM --- > humanitarian/MS 33794c29939 < humiliate/XDSGN --- > humiliate/DSGNX 33798d29942 < hummable 33807a29952 > humoresque 33809c29954 < humorless/PY --- > humorless/YP 33817d29961 < humungous 33825c29969 < hundredweight/MS --- > hundredweight/SM 33847,33848c29991,29993 < hurrah/M < hurray/GSMD --- > hurrah/GMD > hurrahs > hurray 33873,33874d30017 < hutzpa/M < hutzpah/M 33888c30031,30032 < hydrate/CGNDSM --- > hydrate's > hydrate/CGNDS 33893,33894d30036 < hydrazine < hydride 33896c30038 < hydrocarbon/SM --- > hydrocarbon/MS 33898,33900d30039 < hydrocephaly/M < hydrochloric < hydrochloride 33902d30040 < hydrodynamical 33907d30044 < hydrofluoric 33910c30047 < hydrogenate/CDSGN --- > hydrogenate/CGDS 33913d30049 < hydrological 33915a30052 > hydrolyses 33918,33919d30054 < hydromagnetic < hydromechanics 33924,33925c30059,30060 < hydrophone/MS < hydroplane/MGDS --- > hydrophone/SM > hydroplane/GDSM 33930d30064 < hydrostatic/S 33932d30065 < hydrothermal 33941d30073 < hygroscopic 33954d30085 < hyperboloid/S 33956,33957d30086 < hypercube/S < hyperfine 33960c30089 < hyperlink/SM --- > hyperlink/GSMD 33963c30092 < hyperplane/S --- > hyperparathyroidism 33967d30095 < hypersonic 33969d30096 < hypersphere 33971c30098 < hypertensive/MS --- > hypertensive/SM 33975c30102 < hypertrophy/GDSM --- > hypertrophy/DSMG 33980d30106 < hyphenated/U 33993d30118 < hypocaust 33995c30120 < hypochondriac/MS --- > hypochondriac/SM 33999c30124 < hypodermic/SM --- > hypodermic/MS 34002c30127 < hypotenuse/SM --- > hypotenuse/MS 34008c30133 < hypothesize/GDRS --- > hypothesize/DSG 34012d30136 < hypoxia 34020a30145 > iPad/M 34028d30152 < iatrogenic 34034c30158,30159 < ice/CDSGM --- > ice's > ice/CDSG 34039c30164 < icebreaker/MS --- > icebreaker/SM 34043,34045d30167 < icepack < icepick/S < ichneumon 34056c30178 < iconoclast/MS --- > iconoclast/SM 34058d30179 < iconographic 34060,34062d30180 < icosahedra < icosahedral < icosahedron 34072c30190 < idealization/SM --- > idealization/MS 34078d30195 < identifiably 34086d30202 < ideographic 34089c30205 < ideologist/MS --- > ideologist/SM 34094d30209 < idiolect 34116d30230 < idyl/MS 34127d30240 < ignitible 34136c30249 < ignore/GDSB --- > ignore/GDS 34140d30252 < ikon/MS 34160d30271 < illiquid 34166,34167c30277 < illuminant < illuminate/XDSGN --- > illuminate/GNXDS 34175,34176c30285 < illustrate/GNVDSX < illustrated/U --- > illustrate/GNVXDS 34182d30290 < ilmenite 34186a30295 > imaginal 34188c30297 < imagination/SM --- > imagination/MS 34191d30299 < imagined/U 34199,34201d30306 < imbed/S < imbedded < imbedding 34227c30332 < immediate/YP --- > immediate/PY 34230c30335 < immense/RYTP --- > immense/Y 34236c30341 < immigrate/DSGNX --- > immigrate/DSGN 34240d30344 < immiscible 34242d30345 < immobilisers 34255c30358 < immortalize/GDS --- > immortalize/DSG 34259d30361 < immoveable 34261,34262c30363,30364 < immunity/SM < immunization/MS --- > immunity/M > immunization/SM 34264d30365 < immunoassay 34266a30368 > immunoglobulin/S 34268c30370 < immunological/Y --- > immunological 34277d30378 < impaction 34280c30381 < impairment/SM --- > impairment/MS 34282c30383 < impale/DRSGL --- > impale/DSGL 34296c30397 < impassive/PY --- > impassive/YP 34315c30416 < impediment/MS --- > impediment/SM 34327c30428 < imperative/MYS --- > imperative/SMY 34333,34334c30434,30435 < imperfect/SPMY < imperfection/SM --- > imperfect/SMYP > imperfection/MS 34354,34355c30455 < impersonality < impersonate/XDSGN --- > impersonate/GNXDS 34357c30457 < impersonator/MS --- > impersonator/SM 34384c30484 < implement/BZGMDRS --- > implement/GBMDRS 34387,34388c30487 < implemented/UA < implementing/A --- > implemented/U 34393d30491 < implied/Y 34403c30501 < imponderable/SM --- > imponderable/MS 34407c30505 < importation/SM --- > importation/MS 34409d30506 < importing/A 34413d30509 < imposable 34418c30514 < imposition/SM --- > imposition/MS 34430c30526 < impoverish/LGDS --- > impoverish/DSLG 34436c30532 < impracticality/SM --- > impracticality/M 34452c30548 < impression/MSB --- > impression/BSM 34457c30553 < impressive/YP --- > impressive/PY 34459c30555 < imprimatur/MS --- > imprimatur/SM 34462,34463c30558,30559 < imprison/SDGL < imprisonment/MS --- > imprison/SDLG > imprisonment/SM 34470c30566 < improve/GBDRSL --- > improve/GBDSL 34472c30568 < improvement/SM --- > improvement/MS 34477d30572 < improvisatory 34485c30580 < impugn/ZGBSDR --- > impugn/ZGSDR 34496a30592 > inaccuracy/S 34498d30593 < inactivity 34509d30603 < inapplicability 34515c30609 < inaugurate/GNDSX --- > inaugurate/XGNDS 34518,34519c30612,30613 < inbound/s < inbox/M --- > inbound > inbox/MS 34525d30618 < incant 34527,34530c30620,30621 < incantatory < incapable < incapacitate/DSGN < incarcerate/GNXDS --- > incapacitate/GDS > incarcerate/XDSGN 34532c30623 < incarnadine/GDS --- > incarnadine/DSG 34537,34538c30628,30630 < incentive/ESM < incentivize/SDG --- > incentive's > incentive/ES > incentivize/DSG 34541c30633 < incest/MS --- > incest/M 34552c30644 < incinerator/SM --- > incinerator/MS 34557c30649 < incisive/YP --- > incisive/PY 34566c30658,30659 < incline/EGDSM --- > incline's > incline/EGDS 34572d30664 < incoherency 34577c30669,30670 < incompetent/SM --- > incompatibility/S > incompetent/MS 34586c30679 < incontinent/Y --- > incontinent 34588,34590c30681,30682 < inconvenience/DG < incorporable < incorporate/AGNDS --- > inconvenience/GD > incorporate/ADSGN 34595c30687 < incorrigibleness --- > incorrigible/P 34598c30690 < increment/SMDG --- > increment/SMD 34600c30692,30693 < incrementation --- > incrementalism > incrementalist/SM 34604c30697 < incrustation/MS --- > incrustation/SM 34626,34627d30718 < indecent/T < indeclinable 34632a30724 > indefinably 34636c30728 < indemnify/XGNDS --- > indemnify/GDSXN 34638c30730 < indentation/SM --- > indentation/MS 34649d30740 < indicant/S 34654d30744 < indices 34658d30747 < indifference/M 34673d30761 < indispose/D 34675a30764 > indistinguishably 34680c30769 < individualist/SM --- > individualist/MS 34685c30774 < individualize/DSG --- > individualize/GDS 34689c30778 < indoctrinate/DSXGN --- > indoctrinate/GNDS 34691d30779 < indoctrinator/S 34696d30783 < indorse/GDS 34702c30789 < inducible --- > induct/DGV 34707d30793 < inductor/S 34709,34710c30795,30796 < indulge/DRSG < indulgence/MS --- > indulge/DSG > indulgence/SM 34714c30800 < industrialist/MS --- > industrialist/SM 34716c30802 < industrialize/GDS --- > industrialize/DSG 34727c30813 < ineffectual/P --- > inefficiency/S 34729a30816 > ineligibly 34735c30822 < ineradicably --- > inequality/S 34747d30833 < inexactitude/S 34756d30841 < inexpressibility 34765c30850 < infanticide/SM --- > infanticide/MS 34774,34775c30859 < infeasibility < infect/AESDVG --- > infect/AESDG 34782c30866 < inferential/Y --- > inferential 34790c30874 < infestation/SM --- > infestation/MS 34793d30876 < infiltrate/X 34795c30878 < infinite/MYV --- > infinite/MV 34798c30881 < infinitive/SM --- > infinitive/MS 34816,34817c30899,30900 < inflict/SDRGV < infliction/MS --- > inflict/SDGV > infliction/M 34818a30902 > inflow/SM 34823d30906 < influx/MS 34825c30908,30909 < infomercial/MS --- > infomercial/SM > inform/Z 34828d30911 < informatics 34831c30914 < informative/UY --- > informative/PY 34833d30915 < informatory 34840c30922 < infrastructure/MS --- > infrastructure/SM 34856d30937 < ingoing 34865d30945 < ingression 34866a30947 > ingénue/SM 34872c30953 < inhalation/SM --- > inhalation/MS 34886,34887d30966 < inhomogeneity/S < inhomogeneous 34895,34898c30974,30977 < initialization/S < initialize/ADG < initialized/U < initializes --- > initialism > initialization > initialize/DSG > initialized/AU 34911c30990 < injurious/Y --- > injurious 34915c30994 < inkjet/MS --- > inkjet/SM 34937c31016 < innocent/MRYST --- > innocent/MYS 34944a31024 > innuendoes 34956c31036 < inquisition/SM --- > inquisition/MS 34960,34961c31040,31041 < inquisitor/MS < inquisitorial/Y --- > inquisitor/SM > inquisitorial 34964d31043 < insanity/S 34967,34968c31046,31048 < inscriber/SM < inscription/SM --- > inscribe/ZGDR > inscriber/M > inscription/MS 34975c31055 < insecticide/SM --- > insecticide/MS 34979c31059 < inseminate/GNDS --- > inseminate/DSGN 34984,34985c31064,31066 < inseparable/SM < insert/AGSDM --- > inseparable/MS > insert's > insert/AGSD 34992c31073 < insidious/PY --- > insidious/YP 34996d31076 < insigne/M 34998,34999c31078 < insinuate/GNVXDS < insinuating/Y --- > insinuate/GNVDSX 35023,35024c31102,31103 < inspectorate/SM < inspiration/SM --- > inspectorate/MS > inspiration/MS 35030,35034c31109,31111 < instal/S < install/UBZRSDG < installation/SM < installer/UM < installment/MS --- > installation/MS > installer/UMS > installment/SM 35038c31115,31116 < instantiate/GNDSX --- > instantiate/DSG > instar 35043,35044c31121 < instigator/SM < instil/S --- > instigator/MS 35049c31126 < institute/MZGNXDRS --- > institute/XMZGNDRS 35053d31129 < institutionalism 35055,35056c31131,31132 < institutionalize/GDS < institutor/SM --- > institutionalize/DSG > institutor/MS 35060c31136 < instruction/SM --- > instruction/MS 35064,35066c31140,31142 < instrument/GMDS < instrumental/SMY < instrumentalist/MS --- > instrument/MDSG > instrumental/MYS > instrumentalist/SM 35075d31150 < insulated/U 35079c31154 < insult/SMDRG --- > insult/SMDG 35091,35092c31166,31167 < insurrection/MS < insurrectionist/MS --- > insurrection/SM > insurrectionist/SM 35097,35098d31171 < integrability < integrable 35100,35104c31173,31175 < integrand/S < integrate/EAVNGSD < integration/AEM < integrations < integrator/S --- > integrate/AEVNGSD > integration/EAM > integrator 35108c31179 < intellectual/SMY --- > intellectual/MYS 35110d31180 < intellectuality 35112c31182 < intelligence/MS --- > intelligence/M 35122c31192 < intensify/ZGDRSN --- > intensify/DRSZGN 35124c31194 < intensive/PMYS --- > intensive/MYPS 35127c31197 < intention/MDS --- > intention/MS 35129d31198 < intentionality 35134c31203 < interactive/PY --- > interactive/Y 35136d31204 < interbank 35138c31206 < interbreed/SG --- > interbreed/GS 35143,35144c31211,31212 < intercession/MS < intercessor/SM --- > intercession/SM > intercessor/MS 35153c31221 < intercommunicate/GNDS --- > intercommunicate/DSGN 35155,35156c31223 < interconnect/GSD < interconnected/P --- > interconnect/GDS 35159d31225 < interconversion 35165d31230 < interdependency 35171c31236 < interested/UEY --- > interested/U 35175,35179c31240,31241 < interfere/GDRS < interference/MS < interferometer/S < interferometric < interferometry --- > interfere/GDS > interference/M 35183d31244 < interglacial 35188,35190c31249,31250 < interject/DGS < interjection/MS < interjectional --- > interject/GDS > interjection/SM 35192,35193c31252,31253 < interlard/GDS < interleave/GDS --- > interlard/DGS > interleave/DSG 35195c31255 < interline/JGDS --- > interline/GDSJ 35197d31256 < interlingual 35199c31258 < interlink/GDS --- > interlink/DSG 35201c31260 < interlocutor/MS --- > interlocutor/SM 35206,35207c31265,31266 < intermarriage/MS < intermarry/DSG --- > intermarriage/SM > intermarry/GDS 35210,35212c31269,31271 < intermediate/SMYPGD < intermediation/SE < intermediator/SM --- > intermediate/XMYGNPDS > intermediation/ES > intermediator/MS 35219c31278 < intermission/MS --- > intermission/SM 35222,35223d31280 < intermolecular < intern/GDL 35226c31283 < internalize/DSG --- > internalize/GDS 35229c31286 < internationalist/MS --- > internationalist/SM 35231,35232c31288,31289 < internationalize/GDS < interne/MGDS --- > internationalize/DSG > interne/GDL 35234a31292 > interneship/S 35237c31295 < internment/MS --- > internment/M 35239,35240d31296 < internuclear < interocular 35242,35244c31298 < interoperability < interoperable < interpenetrate/GNDS --- > interpenetrate/DSGN 35247,35248c31301,31302 < interplay/MS < interpolate/BXGNDS --- > interplay/M > interpolate/XDSGN 35253,35254c31307 < interpretable/U < interpretation/ASM --- > interpretation/AMS 35258d31310 < interpretive/Y 35261,35263c31313,31314 < interregnum/MS < interrelate/XGNDS < interrelated/P --- > interregnum/SM > interrelate/XDSGN 35267c31318 < interrogate/GNVDSX --- > interrogate/DSGNVX 35274d31324 < interruptibility 35280c31330 < intersession/MS --- > intersession/SM 35290,35291c31340 < interstitial/Y < intertidal --- > interstitial 35299c31348 < interview/MDRZGS --- > interview/ZGMDRS 35304c31353 < interweave/SG --- > interweave/GS 35311d31359 < intifada 35318d31365 < intimidatory 35320,35322c31367,31368 < intonational < intoxicant/MS < intoxicate/GNDS --- > intoxicant/SM > intoxicate/DSGN 35324c31370 < intracellular --- > intracranial 35327c31373 < intranet/S --- > intranet/MS 35329c31375 < intransigent/SMY --- > intransigent/MYS 35344c31390,31391 < introduction/ASM --- > introduction/AM > introductions 35347c31394 < introspect/DGVS --- > introspect/GVDS 35359,35360c31406 < intuitionist < intuitive/YP --- > intuitive/PY 35371c31417 < invariance --- > invariant 35374c31420 < invective/SM --- > invective/M 35380d31425 < invented/U 35385c31430 < inventory/GDSM --- > inventory/DSMG 35387,35388c31432 < invert/SMDRZG < invertible --- > invert/SMDG 35390c31434 < investigate/DSXGNV --- > investigate/GNVDSX 35392c31436 < investigator/MS --- > investigator/SM 35395c31439 < investment/EAM --- > investment/AEM 35399c31443 < invidious/PY --- > invidious/YP 35411,35412c31455,31456 < invitation/MS < invitational/MS --- > invitation/SM > invitational/SM 35417c31461 < invoke/DRSZGB --- > invoke/DSG 35420d31463 < involute/XN 35423d31465 < involved/U 35434d31475 < ionized/C 35443c31484 < irate/RYTP --- > irate/YP 35467c31508 < ironwork/MS --- > ironwork/M 35472c31513 < irrationality/SM --- > irrationality/M 35481d31521 < irreducibility 35489,35490c31529,31530 < irrelevance/SM < irrelevancy/SM --- > irrelevance/MS > irrelevancy/MS 35491a31532 > irreligion 35508,35509c31549 < irresolvable < irrespective/Y --- > irrespective 35517d31556 < irreversibility 35530d31568 < irritated/Y 35551,35552c31589 < isolationist/MS < isolator/S --- > isolationist/SM 35560,35561d31596 < isomorphism/S < isoperimetrical 35563d31597 < isostatic 35565,35566d31598 < isothermal/Y < isotonic 35570,35572d31601 < isotropically < isotropy < issuable 35575d31603 < issued/U 35595d31622 < iterative/Y 35622c31649 < jackrabbit/SM --- > jackrabbit/MS 35625d31651 < jacuzzi 35633c31659 < jaggies/S --- > jaggies 35640d31665 < jailor/SM 35641a31667 > jalapeño/MS 35648,35649c31674,31675 < jammed/U < jamming/U --- > jammed > jamming 35653d31678 < jangly 35661a31687 > jardinière/SM 35670d31695 < jaundiced/U 35679c31704 < jawbreaker/SM --- > jawbreaker/MS 35697d31721 < jehad/SM 35711c31735 < jeopardize/DSG --- > jeopardize/GDS 35720a31745 > jerrican/S 35724d31748 < jessamine/MS 35738,35739c31762 < jewelery/S < jewellery/M --- > jewellery 35748c31771,31772 < jig/ASM --- > jig's > jig/AS 35750c31774,31775 < jigger/ASDGM --- > jigger's > jigger/ASDG 35753c31778 < jiggly/RT --- > jiggly 35755a31781 > jihadist/SM 35760,35761c31786 < jingly/TR < jingo --- > jingly 35768c31793 < jinricksha/MS --- > jinricksha/SM 35770d31794 < jinriksha/MS 35773d31796 < jitter/S 35780d31802 < jiujitsu/M 35812c31834,31835 < join/AFDSGM --- > join's > join/AFDSG 35815c31838,31839 < joint/EGSDM --- > joint's > joint/EGSD 35817d31840 < jointures 35823c31846,31847 < jokily --- > jokier > jokiest 35825d31848 < joky/RT 35843c31866 < jouncy/TR --- > jouncy 35880,35881c31903,31906 < judge/ADSGM < judgement/MS --- > judge's > judge/ADSG > judgement/SM > judgemental 35889c31914 < judicious/IPY --- > judicious/IYP 35908d31932 < jujutsu/M 35926d31949 < juniority 35942d31964 < jurisprudential 35951,35953c31973 < jussive < just/UYPT < juster --- > just/RYPT 35955d31974 < justifiability 35959,35961c31978,31979 < justificatory < justified/AU < justify/NGDSX --- > justified/U > justify/XGDSN 35969c31987 < juxtaposition/MS --- > juxtaposition/SM 35973a31992,31993 > kabbala > kabbalah 35980d31999 < kaftan/MS 35984c32003 < kaleidoscope/SM --- > kaleidoscope/MS 35987a32007 > kana 35988a32009 > kanji 35999a32021 > katakana 36019c32041 < kelp/MZ --- > kelp/M 36028a32051 > keratitis 36032d32054 < kerned 36034d32055 < kerning 36036d32056 < kerosine/M 36042d32061 < kettleful 36043a32063 > keybinding/S 36046c32066 < keyboardist/MS --- > keyboardist/SM 36049c32069 < keylogging/MS --- > keylogging/SM 36055d32074 < keyring 36061d32079 < khalif/S 36084,36086c32102 < kiddy/SM < kidnap/ZSR < kidnaper/M --- > kidnap/S 36102d32117 < kilobits 36107d32121 < kilojoules 36115c32129 < kin/SM --- > kin/M 36117c32131,32132 < kind/UPRYTM --- > kind's > kind/UPRYT 36119,36120c32134 < kindergarten/MRSZ < kindergartener/M --- > kindergarten/MS 36121a32136 > kindergärtner/SM 36142c32157 < kingfisher/MS --- > kingfisher/SM 36162d32176 < kirk/MS 36166d32179 < kissagram/S 36173c32186 < kitchenette/SM --- > kitchenette/MS 36183d32195 < kittiwakes 36188a32201 > kleptocracy 36190c32203 < kleptomaniac/MS --- > kleptomaniac/SM 36192c32205 < kluge/DSG --- > kluge/DS 36200c32213 < knackwurst/SM --- > knackwurst/MS 36234c32247 < knock/JSZGMDR --- > knock/SZGMDR 36248,36249c32261 < knowing/UTYS < knowinger --- > knowing/UYS 36266d32277 < kookie 36276,36277c32287 < kraut/MS! < kriegspiel --- > kraut/SM! 36283a32294,32295 > króna/M > krónur 36288d32299 < kulaks 36292d32302 < kyle/S 36296c32306,32307 < label/ASDGM --- > label's > label/ASDG 36299d32309 < labellings/A 36315c32325,32326 < lace/UGDSM --- > lace's > lace/UGDS 36360d32370 < lagnappe/MS 36393d32402 < lamented/U 36403c32412 < lamplight/ZMR --- > lamplight/MRZ 36406d32414 < lampoonery 36418,36420c32426,32427 < landforms < landholder/MS < landholding/SM --- > landholder/SM > landholding/MS 36424c32431 < landlines --- > landline/MS 36457a32465,32467 > laparoscopic > laparoscopy > laparotomy 36481d32490 < largesse/M 36509c32518,32519 < latch/UDSGM --- > latch's > latch/UDSG 36513c32523 < latency/SM --- > latency/M 36517d32526 < lateralization 36550c32559 < launderette/MS --- > launderette/SM 36552,36553c32561 < laundrette/SM < laundromat/SM --- > laundromat/MS 36563c32571 < lava/MS --- > lava/M 36565d32572 < lavalier/MS 36614d32620 < lazuli 36631c32637 < leafy/PRT --- > leafy/RT 36648c32654 < learning/M --- > learning's 36654c32660,32661 < leash/UDSGM --- > leash's > leash/UDSG 36656d32662 < leastways 36668d32673 < lebensraum 36676c32681 < lector/MS --- > lector/SM 36679c32684 < lectureship/MS --- > lectureship/SM 36687d32691 < leering/Y 36692d32695 < leftie/M 36702c32705 < legalese/MS --- > legalese/M 36711c32714 < legation/ACM --- > legation's/AC 36732c32735 < legislator/SM --- > legislator/MS 36736,36737c32739,32740 < legitimate/DSYGN < legitimatize/DSG --- > legitimate/DSYG > legitimatize/GDS 36744d32746 < legstraps 36770d32771 < lengthways 36777,36778c32778,32779 < lens/MSG < lent/N --- > lens/MS > lent 36784d32784 < leopardskin 36787c32787 < lepidopterist/SM --- > lepidopterist/MS 36802d32801 < letch/S 36805d32803 < lethality 36825c32823 < level/PSZTGMDRY --- > level/PSZGMDRY 36831c32829,32830 < leverage/DSMG --- > leverage's > leverage/CDSG 36840d32838 < lexeme/S 36842,36843c32840,32841 < lexical/Y < lexicographer/SM --- > lexical > lexicographer/MS 36845c32843 < lexicographical/Y --- > lexicographical 36850c32848,32849 < liability/ASM --- > liabilities > liability/AM 36865c32864 < liberalize/DSG --- > liberalize/GDS 36869d32867 < liberationists 36871,36873c32869 < libero < libertarian/MS < libertarianism --- > libertarian/SM 36888c32884 < licentiate/MS --- > licentiate/SM 36891,36892c32887 < lichee/MS < lichen/MDS --- > lichen/MS 36895d32889 < lickerish 36909c32903 < lieutenant/SM --- > lieutenant/MS 36914d32907 < lifeboatmen 36918c32911 < lifeless/PY --- > lifeless/YP 36928d32920 < lifetaking 36935d32926 < ligand/S 36939c32930,32931 < light/CASTGDM --- > light's/C > light/CASTGD 36946c32938 < lighthearted/PY --- > lighthearted/YP 36949c32941 < lighting/M --- > lighting's 36959a32952 > likable/P 36961,36963c32954,32957 < like/MYTGPDRSBJ < likeability < likeable/U --- > like/EMGDST > likeability/M > likeable/P > likeableness/M 36970a32965 > liker 36979,36980c32974 < limber/UDSTG < limberer --- > limber/UDSG 36986d32979 < limekiln 36992c32985,32986 < limit/CSZGDRM --- > limit's > limit/CSZGDR 36996c32990 < limiter/M --- > limiter's 37015d33008 < linctus 37023,37024c33016 < linearized < linebacker/SM --- > linebacker/MS 37044c33036 < linguini/M --- > linguini/SM 37051c33043 < link/MDRBSZG --- > link/MDRSG 37060c33052,33053 < lint/CDSGM --- > lint's > lint/CDG 37061a33055 > lints 37069d33062 < lipase 37073c33066 < lippy/TR --- > lippy 37089d33081 < liquify/DSG 37091,37092d33082 < liquorice/MS < liquorish 37098,37099c33088 < lissom/P < lissome/P --- > lissome 37115,37116d33103 < literalism < literalistic 37127c33114 < lithograph/ZGMDR --- > lithograph/MDRZG 37133,37134d33119 < lithological < lithology 37150a33136 > littérateur/SM 37157,37158c33143 < liveable < livelihood/MS --- > livelihood/SM 37163c33148,33149 < liver/MS --- > liver's > liver/S 37172c33158 < liveware/S --- > liveware 37180,37181c33166,33168 < lo/H < load/AUGSDM --- > lo > load's > load/AUGSD 37184,37186c33171 < loading/MS < loadstar/MS < loadstone/SM --- > loading's 37189c33174 < loam/MS --- > loam/M 37191c33176 < loan/MDRSBZG --- > loan/MDRSZG 37199c33184 < loathsome/YP --- > loathsome/PY 37210,37211c33195 < lobotomist < lobotomize/GDS --- > lobotomize/DSG 37217c33201 < localization/MS --- > localization/M 37219,37222c33203,33204 < locatable/A < locate/EAGNVDS < location/ESMA < locational --- > locate/AESDNGX > location/EAM 37224,37225c33206 < loch/M < lochs --- > locavore/SM 37228d33208 < locked/A 37248c33228 < lodge/DRSLJMZG --- > lodge/DRSJMZG 37256c33236 < log/KSM --- > log/SM 37260d33239 < logarithmically 37271a33251 > login/S 37276a33257,33258 > logoff/S > logon/S 37277a33260 > logout/S 37285a33269 > lolcat/SM 37300c33284,33285 < long/KDSTGM --- > long's > long/KDSTG 37317d33301 < longsword 37321d33304 < longwise 37328a33312 > lookup 37331c33315 < looney/M --- > loonie/M 37347d33330 < lopper/S 37351c33334 < loquacious/YP --- > loquacious/PY 37363,37364c33346 < lorryload/S < lose/ZGRSBJ --- > lose/ZGRSJ 37367a33350 > lossless 37377d33359 < loudly/TR 37381c33363 < loudspeaker/SM --- > loudspeaker/MS 37387c33369,33370 < louse/CDSGM --- > louse's > louse/CDSG 37397d33379 < loveable 37409d33390 < lovestruck 37453c33434 < lucrative/PY --- > lucrative/YP 37470c33451 < lugubrious/PY --- > lugubrious/YP 37486,37487d33466 < lumen < luminance 37491c33470 < luminosity/SM --- > luminosity/M 37505,37506c33484 < luncheonette/MS < lunchpack --- > luncheonette/SM 37509d33486 < lune 37519d33495 < lurex 37540,37541d33515 < luv/S < luvvie/S 37564c33538 < lymphocyte/MS --- > lymphocyte/SM 37570d33543 < lynchpin/SM 37578c33551,33552 < lysine --- > lysosomal > lysosomes 37604c33578 < mack/S --- > mack/MS 37608a33583 > macramé/M 37616,37617d33590 < macromolecular < macromolecules 37619c33592 < macrophage/S --- > macrophages 37621d33593 < macroscopically 37632c33604 < mademoiselle/SM --- > mademoiselle/MS 37637a33610,33612 > madrasa/S > madrassah > madrassahs 37648c33623 < mage/SM --- > mage/MS 37651c33626 < maggoty/RT --- > maggoty 37661,37662c33636 < magma/SM < magmatic --- > magma/M 37664d33637 < magnanimosity 37678,37680d33650 < magnetodynamics < magnetohydrodynamical < magnetohydrodynamics 37683d33652 < magnetron 37687d33655 < magnified/U 37689c33657 < magnify/NZGDRSX --- > magnify/ZGXDRSN 37695a33664 > magus/M 37711,37712c33680,33681 < maidservant/MS < mail/BJMDRSZG --- > maidservant/SM > mail/JMDRSZG 37724d33692 < mainbrace 37730c33698 < mainspring/SM --- > mainspring/MS 37732,37733c33700,33701 < mainstream/SGMD < maintain/ZGDRBS --- > mainstream/SMDG > maintain/ZGBDRS 37735,37736d33702 < maintainable/U < maintained/U 37739d33704 < maiolica/M 37748a33714,33715 > majoritarian/SM > majoritarianism 37750c33717,33718 < make/UAGSM --- > make's/A > make/UAGS 37759d33726 < maladaptive 37773c33740 < malcontent/SM --- > malcontent/MS 37775,37776c33742,33743 < malediction/MS < malefaction/SM --- > malediction/SM > malefaction/M 37785c33752 < malformation/MS --- > malformation/SM 37787c33754 < malfunction/GSMD --- > malfunction/MDSG 37791c33758 < malign/DSZG --- > malign/DSG 37804d33770 < malnourishment 37815c33781 < malware/MS --- > malware/SM 37820,37821c33786 < mamma/SM < mammae --- > mamma/M 37832c33797,33798 < man/USYMF --- > man's/F > man/UFY 37840,37841c33806 < managerial/Y < managership --- > managerial 37844d33808 < manciple 37855d33818 < mandril/SM 37859c33822 < maneuver/BJMDGS --- > maneuver/MDGSBJ 37862c33825 < manga --- > manga/M 37865d33827 < manged/S 37886c33848 < manifestation/MS --- > manifestation/SM 37891d33852 < manilla/M 37894c33855 < manipulate/GNVXDS --- > manipulate/XGNVDS 37897c33858 < manipulator/SM --- > manipulator/MS 37902c33863 < manly/UTR --- > manly/URT 37908,37910c33869 < mannerist < mannerly/P < mannikin/SM --- > mannerly/U 37914d33872 < manoeuvrings 37919a33878,33879 > manqué > mans 37927c33887 < mantelpiece/MS --- > mantelpiece/SM 37934,37935c33894,33895 < mantle/EGDSM < mantlepiece/S --- > mantle's > mantle/EGDS 37937d33896 < mantrap/S 37939c33898 < manufacture/MZGDRS --- > manufacture/DRSMZG 37947c33906 < manuscript/SM --- > manuscript/MS 37949c33908,33910 < map/ASM --- > manège/M > map's > map/AS 37952,37953c33913 < mappable < mapped/UA --- > mapped/A 37960c33920 < maraschino/SM --- > maraschino/MS 37978d33937 < marginality 37980c33939 < marginalize/DSG --- > marginalize/GDS 37984d33942 < marihuana/M 37994c33952 < marionette/SM --- > marionette/MS 38017c33975 < marl/MS --- > marl/M 38019,38020c33977 < marlinespike/MS < marlinspike/SM --- > marlinespike/SM 38043d33999 < marshaller 38045,38046c34001,34002 < marshmallow/MS < marshy/PRT --- > marshmallow/SM > marshy/RT 38049a34006 > martensite 38069c34026,34028 < mask/UDSGM --- > mashup/MS > mask's > mask/UDSG 38091c34050,34051 < master/ADGSM --- > master's > master/ADGS 38095,38097c34055,34056 < mastermind/MDSG < masterpiece/SM < mastership --- > mastermind/SGMD > masterpiece/MS 38112c34071 < mat/SZGMDRJ --- > mat/SZGMDR 38114,38115c34073 < match/AGMS < matchable/U --- > match/AMS 38119c34077 < matcher --- > matching 38122c34080 < matchmaker/SM --- > matchmaker/MS 38124d34081 < matchplay 38133d34089 < materiality 38135,38137c34091 < materialize/CDS < materialized/A < materializing --- > materialize/DSG 38149a34104 > matinée/SM 38157c34112 < matriculate/GNDS --- > matriculate/DSGN 38159c34114 < matrimonial/Y --- > matrimonial 38166d34120 < mattins/M 38173c34127 < matzo/SM --- > matzo/SMH 38176a34131 > matériel/M 38185d34139 < mavin/SM 38196d34149 < maximality 38198c34151 < maximize/GDRS --- > maximize/GDS 38216d34168 < mazourka/SM 38217a34170 > mañana/M 38219c34172 < me/DS --- > me/DSH 38222d34174 < meadowland 38226d34177 < meagreness 38236c34187 < meanie/MS --- > meanie/M 38238c34189 < meaningful/YP --- > meaningful/PY 38240c34191 < meaningless/PY --- > meaningless/YP 38250c34201 < measurable/U --- > measurable 38252c34203,34204 < measure/ADSGM --- > measure's > measure/ADSG 38255c34207 < measurement/SM --- > measurement/MS 38257d34208 < meataxe 38258a34210 > meathead/MS 38270d34221 < mechanist 38274,38275c34225 < mechanize/DSBG < mechanized/U --- > mechanize/DSG 38300c34250 < medievalist/SM --- > medievalist/MS 38308a34259,34260 > medusa > medusae 38313c34265 < meet/MRJSG --- > meet/MJSG 38321a34274 > megachurch/MS 38323c34276,34277 < megadeath/SM --- > megadeath/M > megadeaths 38325c34279 < megajoule/SM --- > megajoule/M 38332d34285 < megaparsec 38334c34287 < megapixel/MS --- > megapixel/SM 38337a34291 > meh 38343c34297 < melancholy/SM --- > melancholy/M 38347d34300 < melatonin 38352c34305 < mellifluous/YP --- > mellifluous/PY 38366c34319,34320 < melt/ADSGM --- > melt's > melt/ADSG 38368,38369c34322,34323 < melter < member/EASM --- > member's > member/EAS 38386d34339 < memorized/U 38394d34346 < menarche 38431c34383 < mention/BGSMD --- > mention/GSMD 38441c34393 < merchandise/DRSMZG --- > merchandise/MZGDRS 38444,38446c34396 < merchandize/DSG < merchant/MSB < merchantability --- > merchant/MBS 38450c34400 < merciless/YP --- > merciless/PY 38456,38457c34406,34407 < mere/MYTRS < meretricious/PY --- > mere/MYTS > meretricious/YP 38463d34412 < meridional 38471,38472c34420 < meritocrats < meritorious/YP --- > meritorious/PY 38477d34424 < meromorphic 38498c34445 < mesosphere/MS --- > mesosphere/SM 38500,38501d34446 < mesozoic < mesquit/MS 38529,38530d34473 < metalinguistic < metalized 38541c34484 < metamorphose/DSG --- > metamorphose/GDS 38548,38549d34490 < metastability < metastable 38552c34493 < metastasize/GDS --- > metastasize/DSG 38554c34495 < metatarsal/SM --- > metatarsal/MS 38559d34499 < metathesizes 38573,38574d34512 < meth < methadon/M 38580d34517 < methionine 38585a34523 > methotrexate 38590,38591d34527 < methylated < methylene 38595d34530 < metonymy 38603d34537 < metronomic 38622d34555 < micelles 38626d34558 < microanalyses 38630c34562 < microbiologist/SM --- > microbiologist/MS 38636c34568 < microcomputer/SM --- > microcomputer/MS 38639d34570 < microdensitometer 38644d34574 < microfarad 38648,38655c34578,34582 < microfloppies/S < micrograms < micrograph < microgravity < microgroove/MS < microhydrodynamics < microlight/SM < micromanage/GLDS --- > microfloppies > microgroove/SM > microlight/MS > microloan/MS > micromanage/GDSL 38657c34584 < micrometeorite/MS --- > micrometeorite/SM 38662,38663c34589 < microprocessor/SM < microprogram --- > microprocessor/MS 38667d34592 < microscopist 38669c34594 < microsecond/SM --- > microsecond/MS 38682c34607 < middleweight/SM --- > middleweight/MS 38691c34616 < midnight/SM --- > midnight/M 38699c34624 < midsize/D --- > midsize 38707d34631 < midwicket 38710a34635 > midwived 38711a34637 > midwiving 38716c34642 < might/SM --- > might/M 38726c34652 < migrator/SM --- > migrator/MS 38735d34660 < mildewy 38739d34663 < mileometer/S 38742a34667 > milf/MS 38769d34693 < millenarian 38771,38773c34695,34696 < millennial < millennium/SM < millepede/MS --- > millennial/MS > millennium/MS 38785c34708 < millionaire/MS --- > millionaire/SM 38790c34713 < millisecond/MS --- > millisecond/SM 38795c34718 < millwright/MS --- > millwright/SM 38800c34723 < mimeograph/MDG --- > mimeograph/GMD 38815c34738,34739 < mind/ADRSZGM --- > mind's > mind/ADRSZG 38827d34750 < mineralization 38829c34752 < mineralogist/SM --- > mineralogist/MS 38831d34753 < mineshaft 38833,38834c34755 < minesweeper/MS < mineworkers --- > minesweeper/SM 38839c34760 < miniaturist/SM --- > miniaturist/MS 38841c34762 < miniaturize/DSG --- > miniaturize/GDS 38847,38848c34768,34769 < minicomputer/MS < minifloppies/S --- > minicomputer/SM > minifloppies 38853,38854d34773 < minimalistic < minimality 38856c34775 < minimize/DRSG --- > minimize/DSG 38860d34778 < miniscule/MS 38864,38865c34782,34783 < ministerial/Y < ministrant/SM --- > ministerial > ministrant/MS 38870,38871c34788 < minke < minnesinger/SM --- > minnesinger/MS 38875d34791 < minotaur/S 38896c34812 < miraculous/YP --- > miraculous/Y 38906c34822 < misadventure/SM --- > misadventure/MS 38910c34826,34827 < misanalysed --- > misandrist/MS > misandry 38914c34831 < misanthropist/SM --- > misanthropist/MS 38918c34835 < misapprehend/SDG --- > misapprehend/GSD 38920c34837 < misappropriate/DSXGN --- > misappropriate/XDSGN 38926c34843 < miscalculate/GNXDS --- > miscalculate/DSXGN 38929c34846 < miscarriage/SM --- > miscarriage/MS 38933d34849 < miscellanea 38942d34857 < misclassified 38944,38945c34859 < miscomprehended < misconceive/DSG --- > misconceive/GDS 38948,38951c34862,34863 < misconfiguration < misconstruction/SM < misconstrue/DSG < miscopying --- > misconstruction/MS > misconstrue/GDS 38962,38963c34874,34875 < misdirect/GSD < misdirection/SM --- > misdirect/SDG > misdirection/M 38975d34886 < misfield 38983c34894 < misgovern/SDLG --- > misgovern/SDGL 39000,39002c34911,34913 < misjudge/DSG < misjudgement/MS < misjudgment/MS --- > misjudge/LDSG > misjudgement/SM > misjudgment/SM 39014c34925 < misogamist/SM --- > misogamist/MS 39020c34931 < misplace/GDSL --- > misplace/GLDS 39023d34933 < mispositioned 39026c34936 < mispronounce/GDS --- > mispronounce/DSG 39032,39035c34942,34944 < misremember/DG < misreport/MDSG < misrepresent/SDG < misrepresentation/SM --- > misreport/MDGS > misrepresent/GDS > misrepresentation/MS 39037c34946,34947 < miss/EDSGVM --- > miss's > miss/EDSGV 39038a34949 > missed/U 39043d34953 < missilry/M 39050c34960 < misspell/GDSJ --- > misspell/GDJS 39056,39057c34966,34967 < misstate/LGDS < misstatement/MS --- > misstate/GDSL > misstatement/SM 39060c34970,34971 < mist/CDRSZGM --- > mist's > mist/CDRSZG 39064c34975 < mister/M --- > mister's 39072,39074d34982 < mistranslates < mistranslating < mistranslation/S 39082,39083c34990,34991 < mistype/JGDS < misunderstand/GSJ --- > mistype/GS > misunderstand/SGJ 39086c34994 < misuse/DRSMG --- > misuse/DSMG 39089c34997 < mitigate/DSGN --- > mitigate/XDSGN 39091,39092c34999 < mitigation/MS < mitigatory --- > mitigation/M 39094a35002 > mitochondrion 39115c35023,35024 < mob/CSM --- > mob's > mob/CS 39119,39120c35028 < mobility/SM < mobilizable --- > mobility/M 39132,39133c35040 < mockingbird/MS < mockup/MS --- > mockingbird/SM 39150c35057 < modern/MRYPTS --- > modern/MYPS 39155c35062 < modernization/SM --- > modernization/M 39159c35066 < modest/RYT --- > modest/Y 39162c35069 < modifiable/U --- > modifiable 39166c35073 < modify/NDRSZGX --- > modify/DRSXZGN 39170,39172d35076 < modularity < modularization < modularize/DG 39178d35081 < moduli 39181,39182c35084 < moggie < moggy/S --- > moggy 39197d35098 < molarity/S 39212c35113 < molestation/SM --- > molestation/M 39217c35118 < mollify/NDSG --- > mollify/DSNG 39221c35122 < molluskan/SM --- > molluskan/S 39223c35124 < mollycoddle/MGDS --- > mollycoddle/DSMG 39233c35134 < momentous/YP --- > momentous/PY 39236,39237d35136 < momma/SM < mommie/M 39239d35137 < monadic 39244c35142 < monarchist/SM --- > monarchist/MS 39255c35153 < monetarist/SM --- > monetarist/MS 39261d35158 < moneychangers 39264,39265c35161 < moneylender/MS < moneyless --- > moneylender/SM 39274,39275d35169 < monicker/MS < monied 39282d35175 < monitored/U 39286c35179 < monkeyshine/MS --- > monkeyshine/SM 39291c35184 < monochrome/SM --- > monochrome/MS 39294c35187 < monocotyledon/MS --- > monocotyledon/SM 39297d35189 < monoculture 39309d35200 < monolayers 39314d35204 < monolog/SM 39317c35207 < monologuist/MS --- > monologuist/SM 39322,39324d35211 < monomeric < monomial/S < monomolecular 39327d35213 < monophthongs 39329d35214 < monopole/S 39337d35221 < monostable 39346,39347c35230 < monotonicity < monotonous/YP --- > monotonous/PY 39381d35263 < moonrise 39394c35276 < moot/DRSG --- > moot/DSG 39399a35282,35283 > mopier > mopiest 39404d35287 < mopy/RT 39430,39431c35313 < moribund/Y < moribundity --- > moribund 39446,39449c35328,35329 < morphism/S < morphogenesis < morphological/Y < morphology/SM --- > morphological > morphology/M 39456,39458c35336,35338 < mortarboard/MS < mortgage/AGDSM < mortgageable --- > mortarboard/SM > mortgage's > mortgage/AGDS 39460d35339 < mortgager/MS 39462d35340 < mortice/DSMG 39479c35357,35358 < mote/KCXSVNM --- > mote's > mote/KCXSVN 39486c35365 < motherfucker/SM! --- > motherfucker/MS! 39503c35382 < motivation/MS --- > motivation/SM 39526c35405 < motorsport/MS --- > motorsport/SM 39532,39533d35410 < moulder/DGS < moult/SGMD 39535c35412 < mount/AEDMGS --- > mount/EASGMD 39538c35415 < mountaineer/GMDS --- > mountaineer/SMDG 39542c35419 < mountaintop/MS --- > mountaintop/SM 39544c35421 < mounted/UC --- > mounted/U 39546,39547c35423 < mounties < mounting/MS --- > mounting/SM 39548a35425 > mourned/U 39551,39552d35427 < mournfuller < mournfullest 39564d35438 < moustachioed 39569d35442 < mouthorgan 39584,39585c35457 < moving/U < movingly --- > moving/Y 39597c35469 < much/MP --- > much/M 39604d35475 < mucosa 39615d35485 < mudflow/S 39617d35486 < mudlarks 39637a35507 > muggle/MS 39650c35520 < muleskinner/SM --- > muleskinner/MS 39661a35532 > multi 39663,39664c35534 < multichannel < multicolor/D --- > multicolored 39674,39675d35543 < multifunction < multifunctional 39677c35545 < multilayer --- > multilayered 39682,39685c35550,35551 < multimeter < multimillion < multimillionaire/MS < multinational/MS --- > multimillionaire/SM > multinational/SM 39687c35553 < multiphase --- > multiplayer/M 39691,39692c35557 < multiplexor/MS < multiplicand/SM --- > multiplicand/MS 39697c35562 < multiply/NXZGDRS --- > multiply/NZGDRSX 39700d35564 < multiprogramming 39705c35569 < multitask/SG --- > multitask/GS 39709d35572 < multivalued 39711c35574,35576 < multivitamin/SM --- > multiverse/SM > multivitamin/MS > multiyear 39713c35578 < mumble/JMZGDRS --- > mumble/MZGDRS 39719c35584 < mummify/NGDS --- > mummify/GNDS 39723c35588 < munch/ZGDRS --- > munch/GDS 39733d35597 < muons 39780c35644 < muskellunge/SM --- > muskellunge/MS 39815d35678 < mutilated/U 39833d35695 < muzzled/U 39836d35697 < mySimon 39841,39842c35702 < mynah/M < mynahs --- > mynah/MS 39843a35704 > myocardium 39853c35714 < mysterious/YP --- > mysterious/PY 39866,39867c35727,35728 < mythologist/MS < mythologize/GDS --- > mythologist/SM > mythologize/DSG 39870a35732,35733 > métier/MS > mêlée/MS 39888c35751 < nagware/S --- > nagware 39897c35760,35761 < naked/TPRY --- > naiveté/M > naked/PY 39899c35763,35764 < name/AGDSM --- > name's > name/AGDS 39908,39910c35773 < namespace/MS < naming/S < nan/S --- > namespace/SM 39914d35776 < nanometer/S 39916c35778 < nanotechnology/S --- > nanotechnology/SM 39941c35803 < nark/MDSG --- > nark 39946d35807 < narratology 39967c35828 < nationalist/MS --- > nationalist/SM 39971,39973c35832,35833 < nationalization/SM < nationalize/CGDS < nationalized/A --- > nationalization/MS > nationalize/CDSG 39976c35836 < native/MSY --- > native/MYS 39983c35843,35844 < natural/UPYM --- > natural's > natural/UPY 39985c35846 < naturalist/MS --- > naturalist/SM 39988c35849 < naturalize/GDS --- > naturalize/DSG 39991c35852,35853 < nature/CSM --- > nature's > nature/CS 40001c35863 < nauseous/YP --- > nauseous/PY 40009c35871 < navigable/U --- > navigable 40019c35881 < neanderthal/SM --- > neanderthal/MS 40023d35884 < nearly/TR 40024a35886 > nearshore 40026c35888 < nearsighted/PY --- > nearsighted/YP 40035,40036c35897 < nebulosity < nebulous/YP --- > nebulous/PY 40040c35901 < necessitate/GDS --- > necessitate/DSG 40051c35912 < necromancer/MS --- > necromancer/SM 40053d35913 < necromantic 40057d35916 < necropsy 40069d35927 < needlecraft 40071c35929 < needless/PY --- > needless/YP 40078c35936 < nefarious/PY --- > nefarious/YP 40088c35946 < neglectful/PY --- > neglectful/YP 40090d35947 < neglige/SM 40094d35950 < negligibility 40120a35977 > neocon/S 40128c35985 < neophilia/S --- > neophilia 40144,40145c36001,36003 < nerve/UDSGM < nerveless/PY --- > nerve's > nerve/UDSG > nerveless/YP 40151c36009 < nest/BMDSG --- > nest/MDSG 40155a36014 > netbook/MS 40160c36019,36020 < nett/DRZG --- > netted > netter/S 40173d36032 < neurobiology 40175c36034 < neurologist/MS --- > neurologist/SM 40179,40180c36038,36040 < neurophysiology/M < neuroscience/MS --- > neurophysiology's > neuroscience's > neurosciences 40212c36072 < newish --- > newfound 40226c36086 < newsletter/SM --- > newsletter/MS 40233a36094 > newspeak 40244c36105 < newsworthy/PRT --- > newsworthy/P 40260c36121 < nickelodeon/MS --- > nickelodeon/SM 40263d36123 < nicknack/SM 40269d36128 < niftily 40270a36130 > nigga/S 40272a36133 > niggaz 40287,40288c36148,36149 < nightie/SM < nightingale/MS --- > nightie/M > nightingale/SM 40317d36177 < ninepence 40348,40349d36207 < nitric < nitride/S 40358d36215 < nitrous 40391c36248 < noisemaker/SM --- > noisemaker/MS 40400,40401c36257,36258 < nominate/ACGNVDS < nomination/CSMA --- > nominate/CASDXVNG > nomination/ACM 40418c36275 < nonagenarian/SM --- > nonagenarian/MS 40424c36281 < nonappearance/SM --- > nonappearance/MS 40442c36299 < nonclerical/SM --- > nonclerical/MS 40447c36304 < noncombatant/SM --- > noncombatant/MS 40449c36306 < noncommercial/SM --- > noncommercial/MS 40458c36315 < nonconductor/SM --- > nonconductor/MS 40461c36318 < nonconformist/SM --- > nonconformist/MS 40475c36332 < noncriminal/MS --- > noncriminal/SM 40487c36344 < nondescript/Y --- > nondescript 40495c36352 < nondrinker/SM --- > nondrinker/MS 40506c36363 < nonequivalent/SM --- > nonequivalent/MS 40516c36373 < nonexplosive/SM --- > nonexplosive/MS 40545c36402 < nonintellectual/SM --- > nonintellectual/MS 40551a36409 > nonissue 40581,40582c36439 < nonparallel/SM < nonparametric --- > nonparallel/MS 40586c36443 < nonpartisan/MS --- > nonpartisan/SM 40588c36445 < nonpayment/MS --- > nonpayment/SM 40605,40606c36462,36463 < nonprofessional/MS < nonprofit/SBM --- > nonprofessional/SM > nonprofit/SMB 40614c36471 < nonreciprocal/MS --- > nonreciprocal/SM 40625c36482 < nonresident/SM --- > nonresident/MS 40631c36488 < nonreturnable/SM --- > nonreturnable/MS 40642c36499 < nonsense/MS --- > nonsense/M 40653c36510 < nonspecialist/SM --- > nonspecialist/MS 40656c36513 < nonspiritual/MS --- > nonspiritual/SM 40659c36516 < nonstarter/SM --- > nonstarter/MS 40666c36523 < nonsupport/MG --- > nonsupport/GM 40705c36562 < noon/MS --- > noon/M 40713,40716c36570,36571 < noradrenalin < noradrenaline < norm/MDS < normal/MYS --- > norm/MS > normal/MY 40719,40720c36574,36575 < normalization/MS < normalize/DRSBZG --- > normalization/M > normalize/DSG 40733d36587 < northmen 40765d36618 < notational/Y 40767c36620,36621 < note/FCSDGM --- > note's > note/FCSDG 40784c36638 < notify/NXDRSZG --- > notify/NDRSXZG 40791a36646 > nought/MS 40793d36647 < nounal 40802,40803c36656 < novelistic < novelization/SM --- > novelization/MS 40817c36670 < noxious/YP --- > noxious 40826d36678 < nuclease 40828d36679 < nucleated/A 40835c36686,36687 < nucleotide/S --- > nucleoside > nucleotide 40851c36703,36704 < number/ASDGM --- > number's > number/ASDG 40853d36705 < numbering/S 40855,40857d36706 < numberplate < numbers/S < numbing/Y 40868,40869c36717 < numerological < numerologist/SM --- > numerologist/MS 40875c36723 < numismatist/MS --- > numismatist/SM 40882c36730 < nurseling/MS --- > nurselings 40893d36740 < nutation 40906c36753 < nutritionist/MS --- > nutritionist/SM 40918,40919c36765 < nybble/DSG < nyetwork/S --- > nybble/S 40925d36770 < nympholepsy 40927c36772 < nymphomaniac/MS --- > nymphomaniac/SM 40928a36774 > née 40964c36810 < obfuscate/GNDSX --- > obfuscate/GNXDS 40966d36811 < obfuscatory 40972,40974c36817,36819 < objectify/GDSN < objection/BSM < objectionable/P --- > objectify/NGDS > objection/SMB > objectionable/U 40976c36821 < objective/PSMY --- > objective/SMYP 40979d36823 < objectless 40990,40992c36834,36835 < obliging/U < obligingly < oblique/DSMYP --- > obliging/Y > oblique/SMYP 40995c36838 < obliterate/GNDS --- > obliterate/DSGN 40998c36841 < oblivious/PY --- > oblivious/YP 41009,41011c36852,36853 < obscurantist/MS < obscuration < obscure/DRSLPYTG --- > obscurantist/SM > obscure/DRSYTG 41017,41018d36858 < observability < observable/S 41020c36860 < observance/SM --- > observance/MS 41022,41023c36862,36863 < observation/MS < observational/Y --- > observation/SM > observational 41031c36871 < obsessive/SMYP --- > obsessive/PSMY 41041c36881 < obstetrician/MS --- > obstetrician/SM 41045c36885 < obstreperous/PY --- > obstreperous/YP 41049c36889 < obstruction/MS --- > obstruction/SM 41051c36891 < obstructionist/SM --- > obstructionist/MS 41059c36899 < obtrusive/UYP --- > obtrusive/UPY 41072d36911 < occipital 41076c36915 < occult/MS --- > occult/M 41079c36918 < occupancy/SM --- > occupancy/M 41092c36931 < oceanfront/MS --- > oceanfront/SM 41100c36939 < och/ZR --- > och/R 41105,41106d36943 < octahedral < octahedron 41109d36945 < octant 41113,41114c36949 < octette/MS < octogenarian/MS --- > octogenarian/SM 41144d36978 < offcuts 41148c36982,36983 < offensive/IYPM --- > offensive's > offensive/IPY 41155c36990 < offhanded/YP --- > offhanded/PY 41158c36993 < officeholder/MS --- > officeholder/SM 41160,41161c36995 < officership/S < official/MYSP --- > official/MYS 41168c37002 < officious/YP --- > officious/PY 41178c37012 < offshore --- > offshore/G 41184c37018 < oft/TNR --- > oft 41193d37026 < ogrish 41196d37028 < ohmic 41210d37041 < oilseed 41217c37048 < okay/MSG --- > okay/MDSG 41220d37050 < olde 41228d37057 < olefin 41238c37067 < oligonucleotide --- > oligonucleotide/S 41241c37070 < olivine --- > olé/M 41246a37076 > omelette/MS 41256d37085 < omnidirectional 41269c37098 < oncologist/MS --- > oncologist/SM 41284d37112 < only/T 41298c37126 < ontological/Y --- > ontological 41301c37129 < onward/S --- > onward 41306d37133 < oolitic 41317a37145 > opcode/S 41340c37168 < ophthalmic/S --- > ophthalmic 41347d37174 < opioid 41354c37181 < opportunist/MS --- > opportunist/SM 41358c37185 < oppose/DSGRB --- > oppose/DRSBG 41362d37188 < oppositional 41364,41365c37190,37191 < oppression/SM < oppressive/PY --- > oppression/M > oppressive/YP 41377d37202 < optimality 41383,41384c37208 < optimize/DRSZG < optimized/U --- > optimize/DRSG 41388,41389d37211 < optionality < optoelectronic 41403d37224 < orangutang/MS 41414a37236 > orc/S 41418c37240 < orchestrate/XGNDS --- > orchestrate/DSXGN 41420d37241 < orchestrator 41426d37246 < ordered/U 41428d37247 < orderless 41433d37251 < ordinands 41436c37254 < ordinary/RSMPT --- > ordinary/SMP 41445d37262 < organdie/M 41453d37269 < organizable 41465,41466c37281,37282 < orient/AEDGSM < orientable --- > orient's > orient/AEDGS 41470,41471d37285 < orientated/A < orientates/A 41483c37297 < originator/MS --- > originator/SM 41495c37309 < ornithologist/SM --- > ornithologist/MS 41508c37322 < orthogonal/Y --- > orthogonal 41511c37325 < orthographical/Y --- > orthographically 41513d37326 < orthonormal 41517d37329 < orthorhombic 41519c37331 < oscillate/XGNDS --- > oscillate/GNDSX 41521c37333 < oscillator/MS --- > oscillator/SM 41532c37344 < ossify/GNDS --- > ossify/NGDS 41566c37378 < outbalance/GDS --- > outbalance/DSG 41581c37393 < outcropping/MS --- > outcropping/SM 41585c37397 < outdistance/DSG --- > outdistance/GDS 41626c37438 < outlandish/YP --- > outlandish/PY 41630d37441 < outlawry 41633d37443 < outlier/S 41638c37448 < outmaneuver/SGD --- > outmaneuver/GDS 41643,41644c37453,37454 < outpatient/SM < outperform/DSG --- > outpatient/MS > outperform/GSD 41666a37477 > outré 41675c37486 < outsize/MDS --- > outsize/MS 41683c37494 < outspoken/PY --- > outspoken/YP 41689c37500 < outstretch/GDS --- > outstretch/DSG 41727d37537 < overallocation 41736c37546 < overbalance/DSMG --- > overbalance/MGDS 41751c37561 < overburden/SDG --- > overburden/GSD 41755c37565 < overcapitalize/GDS --- > overcapitalize/DSG 41759,41761c37569,37571 < overcharge/MGDS < overclock/SDG < overcloud/SDG --- > overcharge/DSMG > overclock/GD > overcloud/SGD 41764,41765c37574 < overcommitment/S < overcompensate/GNDS --- > overcompensate/DSGN 41767,41768d37575 < overcomplexity < overcomplicated 41774c37581 < overcrowd/GSD --- > overcrowd/SDG 41778,41779c37585 < overdetermined < overdevelop/SGD --- > overdevelop/SDG 41799c37605 < overemphasize/DSG --- > overemphasize/GDS 41801c37607 < overestimate/DSMGN --- > overestimate/MGNDS 41803,41805c37609,37611 < overexcite/GDS < overexercise/DSG < overexert/GSD --- > overexcite/DSG > overexercise/GDS > overexert/SDG 41809c37615 < overextend/GDS --- > overextend/DGS 41813d37618 < overfishing 41838d37642 < overincredulous 41842d37645 < overinflated 41863,41864c37666 < overmaster/SGD < overmatching --- > overmaster/SDG 41874c37676 < overpay/LGS --- > overpay/GS 41878,41879c37680 < overpopulous < overpower/GSD --- > overpower/SDG 41883d37683 < overpressure 41885,41886c37685,37686 < overprint/GSMD < overproduce/DSG --- > overprint/SMDG > overproduce/GDS 41892c37692 < overreach/DSG --- > overreach/GDS 41896d37695 < overrepresented 41904d37702 < oversampled 41915d37712 < oversensitivity 41917c37714,37715 < overshadow/GDS --- > overshadow/DSG > overshare/DSG 41919c37717 < overshoot/SG --- > overshoot/GS 41924,41926c37722,37724 < oversimplify/NXDSG < oversize < oversleep/SG --- > oversimplify/DSNGX > oversize/D > oversleep/GS 41931c37729 < overspend/GS --- > overspend/SG 41933d37730 < overspill/GSM 41936,41937c37733,37734 < overstate/LDSG < overstatement/SM --- > overstate/DSLG > overstatement/MS 41944,41945c37741 < overstress/D < overstretch/DSG --- > overstretch/GDS 41951c37747 < oversupply/DSG --- > oversupply/GDS 41953,41954c37749,37750 < overt/YP < overtake/ZGRS --- > overt/Y > overtake/GS 41956a37753,37754 > overthink/SG > overthought 41958c37756 < overthrow/GSM --- > overthrow/SMG 41960d37757 < overtightened 41973c37770 < overwhelm/GSD --- > overwhelm/SGD 41996d37792 < owned/U 41998,42001c37794,37795 < ownership/SM < ox/MNS < oxalate < oxalic --- > ownership/M > ox/MN 42030d37823 < pacemen 42032c37825 < pacesetter/MS --- > pacesetter/SM 42035c37828 < pachysandra/SM --- > pachysandra/MS 42044,42046c37837,37840 < pack/UADSGM < packable < package/AGDSM --- > pack's > pack/AUGSD > package's > package/AGDS 42051,42053c37845,37846 < packhorse < packing/M < packinghouse/MS --- > packing's > packinghouse/SM 42068d37860 < paeony 42075d37866 < pageful 42089c37880 < painkiller/SM --- > painkiller/MS 42112,42114d37902 < palaeolithic < palaeontologist/S < palaeontology 42124a37913,37914 > palazzi > palazzo 42128,42129c37918 < paleographer/SM < paleographic --- > paleographer/MS 42132,42133c37921 < paleontological < paleontologist/MS --- > paleontologist/SM 42138c37926 < palimpsest/SM --- > palimpsest/MS 42150c37938 < palliative/MS --- > palliative/SM 42166c37954 < palpitate/GNDSX --- > palpitate/XGNDS 42171d37958 < paludal 42175,42176c37962,37963 < pamphleteer/SM < pan/SMD --- > pamphleteer/MS > pan/SM 42184a37972 > pancreatitis 42190c37978 < pane/MS --- > pane/KM 42194a37983 > panes 42196d37984 < pangolin 42202,42204c37990 < panicky/TR < panier/MS < panjandrum --- > panicky 42222,42223d38007 < pantiled < pantiles 42225,42226d38008 < pantograph < pantographs 42229c38011 < pantomimist/MS --- > pantomimist/SM 42236d38017 < panzer 42253c38034 < paperhanger/MS --- > paperhanger/SM 42273d38053 < paraboloid/S 42276c38056 < parachutist/SM --- > parachutist/MS 42292d38071 < paralinguistic 42296,42299c38075,38077 < parallelepiped < parallelism/SM < parallelization/SM < parallelize/SGD --- > parallelism/MS > parallelization/MS > parallelize/GDS 42304d38081 < paralytically 42307,42308d38083 < paramagnetic < paramagnetism 42312c38087 < paramedical/SM --- > paramedical/MS 42315,42317d38089 < parametrically < parametrization < parametrize/DS 42328c38100 < paraphrase/MGDS --- > paraphrase/DSMG 42330c38102 < paraplegic/MS --- > paraplegic/SM 42332c38104 < parapsychologist/SM --- > parapsychologist/MS 42334a38107 > parasailing 42340,42341d38112 < parasitologist < parasitology 42364d38134 < parenteral 42367c38137 < parenthesize/GDS --- > parenthesize/DSG 42379c38149 < parimutuel/SM --- > parimutuel/MS 42382c38152 < parishioner/SM --- > parishioner/MS 42395c38165 < parliamentarian/MS --- > parliamentarian/SM 42398d38167 < parlormaid 42404,42405d38172 < parochiality < parodied/U 42420c38187 < parse/DRSJZG --- > parse/DRSG 42428c38195,38196 < part/CDSGM --- > part's > part/CDSG 42436,42437c38204,38205 < participant/MS < participate/GNVDS --- > participant/SM > participate/DSGN 42439c38207 < participator/SM --- > participator/MS 42442c38210 < participle/SM --- > participle/MS 42446d38213 < particularism 42450c38217 < particulate/MS --- > particulate/SM 42454c38221,38222 < partition/ADGMS --- > partition/GMDS > partitions/A 42455a38224 > partizan/SM 42471c38240 < passageway/SM --- > passageway/MS 42483,42484c38252 < passionateness < passionflower/MS --- > passionflower/SM 42486d38253 < passivated 42489,42490d38255 < passivisation < passivise/DSG 42495,42496c38260 < passmark < passover --- > passphrase/S 42498a38263 > passé 42503d38267 < pasted/U 42507c38271 < pasteurize/DRSZG --- > pasteurize/ZGDRS 42515d38278 < pastis 42518d38280 < pastoralism 42526c38288 < pat/SZMR --- > pat/SM 42528d38289 < patchable 42537c38298 < patent/GMDYBS --- > patent/GMDYS 42544c38305 < paternoster/SM --- > paternoster/MS 42551d38311 < pathogenesis 42554,42555c38314,38315 < pathologist/MS < pathology/SM --- > pathologist/SM > pathology/M 42571c38331 < patriarchate/SM --- > patriarchate/MS 42592d38351 < patronization 42601d38359 < patten/S 42604d38361 < patternless 42623c38380 < pawnbroker/SM --- > pawnbroker/MS 42627c38384,38385 < pay/ASGBLM --- > pay's > pay/ASGBL 42643c38401,38402 < payware/S --- > paywall/SM > payware 42651,42652d38409 < peacefuller < peacefullest 42654c38411 < peacekeeper/MS --- > peacekeeper/SM 42656c38413 < peacemaker/SM --- > peacemaker/MS 42665c38422 < peaky/P --- > peaky 42671d38427 < peartrees 42674c38430 < peashooter/MS --- > peashooter/SM 42678c38434 < pebbly/TR --- > pebbly 42689c38445 < peculate/GNXDS --- > peculate/GNDS 42691c38447 < peculator/M --- > peculator/SM 42695d38450 < pedagog/SM 42713c38468 < pedestrianize/DSG --- > pedestrianize/GDS 42722,42723d38476 < pedlar/MS < pedology 42767d38519 < pellmell 42790c38542 < penetrate/XDSGNV --- > penetrate/DSGNVX 42807d38558 < penlite/MS 42817c38568 < pennyweight/SM --- > pennyweight/MS 42830,42832c38581,38582 < pentameter/MS < pentasyllabic < pentathlete/SM --- > pentameter/SM > pentathlete/MS 42834,42835d38583 < pentatonic < pentecostal 42838c38586 < penultimate/SMY --- > penultimate/SM 42841c38589 < penurious/YP --- > penurious/PY 42849d38596 < peperoni 42853c38600 < peppermint/MS --- > peppermint/SM 42863c38610 < perambulate/DSGNX --- > perambulate/XGNDS 42865c38612 < perambulator/SM --- > perambulator/MS 42872d38618 < perceptibility 42875c38621 < perception/MS --- > perception/SM 42877c38623 < perceptive/YP --- > perceptive/PY 42879d38624 < percepts 42883d38627 < perchlorate 42889d38632 < percuss/GVDS 42891,42892c38634,38635 < percussionist/SM < percussive/Y --- > percussionist/MS > percussive 42895c38638 < peregrinate/GNXDS --- > peregrinate/DSXGN 42899c38642 < peremptory/P --- > peremptory 42908c38651 < perfectionist/MS --- > perfectionist/SM 42912c38655 < perforate/GNDSX --- > perforate/GNXDS 42915c38658 < perform/BSDRZG --- > perform/SDRZG 42916a38660 > performative 42924d38667 < perfused 42928d38670 < periastron 42929a38672,38673 > pericardial > pericarditis 42932d38675 < periglacial 42948,42949c38691,38692 < peripatetic/SM < peripheral/SMY --- > peripatetic/MS > peripheral/MYS 42975c38718 < permalink/MS --- > permalink/SM 42979d38721 < permanganate 42984d38725 < permissibility 42987c38728 < permission/SM --- > permission/MS 42994,42995c38735 < permittivity < permutation/MS --- > permutation/SM 42997c38737 < pernicious/PY --- > pernicious/YP 42999d38738 < pernickety 43001d38739 < peroxidase 43003c38741 < perpendicular/MYS --- > perpendicular/SMY 43005c38743 < perpetrate/GNDS --- > perpetrate/DSGN 43007c38745 < perpetrator/SM --- > perpetrator/MS 43009c38747 < perpetuate/GNDS --- > perpetuate/DSGN 43016,43017c38754 < perry < persecute/GNDSX --- > persecute/GNXDS 43022d38758 < persevering/Y 43030c38766 < persona/M --- > persona/SM 43036,43038c38772 < personalization/C < personalize/CGDS < personalized/U --- > personalize/CDSG 43041c38775 < personify/XDSGN --- > personify/GDSNX 43043c38777 < perspective/SM --- > perspective/MS 43048c38782 < perspicuous/Y --- > perspicuous 43055c38789 < persuasive/YP --- > persuasive/PY 43065c38799 < perturbation/MS --- > perturbation/SM 43086c38820 < pessimal/SDYG --- > pessimal 43106d38839 < pethidine 43110c38843 < petitioner/MS --- > petitioner/M 43113c38846 < petrify/NDSG --- > petrify/DSG 43115,43117c38848 < petrodollar/SM < petrographic < petrographical --- > petrodollar/MS 43121d38851 < petrological 43134c38864 < pettish/YP --- > pettish/Y 43160d38889 < phantasy/GDSM 43167c38896 < pharmaceutical/MS --- > pharmaceutical/SM 43169c38898 < pharmacist/SM --- > pharmacist/MS 43171c38900 < pharmacologist/MS --- > pharmacologist/SM 43174c38903 < pharmacopoeia/SM --- > pharmacopoeia/MS 43186,43188c38915 < phenol/MS < phenolic < phenolphthalein --- > phenol/M 43192c38919 < phenomenological/Y --- > phenomenological 43195,43196c38922 < phenotype/S < phenylalanine --- > phenotype 43201c38927 < philander/DRSZG --- > philander/ZGDRS 43206c38932 < philanthropist/SM --- > philanthropist/MS 43209c38935 < philatelist/SM --- > philatelist/MS 43213c38939 < philistine/SM --- > philistine/MS 43219c38945 < philosopher/SM --- > philosopher/MS 43222c38948 < philosophize/ZGDRS --- > philosophize/DRSZG 43226d38951 < philtre/MS 43230,43232c38955,38956 < phlebotomist/SM < phlebotomize/SGD < phlebotomy --- > phlebotomist/MS > phlebotomize/GDS 43237d38960 < phlogiston 43252d38974 < phoneticist 43254c38976,38977 < phoney/GMDS --- > phoneyed > phoneying 43263c38986 < phonologist/SM --- > phonologist/MS 43265d38987 < phonon 43268d38989 < phosphatase 43269a38991 > phosphodiesterase 43277a39000 > photobomb/DGS 43279,43280d39001 < photochemical/Y < photochemistry 43285c39006 < photoengrave/ZGDRSJ --- > photoengrave/DRSJZG 43298,43300c39019 < photojournalist/MS < photolysis < photolytic --- > photojournalist/SM 43302,43305d39020 < photometric < photometrically < photometry < photomultiplier 43307d39021 < photoreceptor 43309d39022 < photosphere 43317c39030,39031 < photosynthetically --- > phototropic > phototropism 43320d39033 < photovoltaic 43322c39035,39036 < phrase/AGDSM --- > phrase's > phrase/AGDS 43326,43327c39040 < phreaking/S < phrenological/Y --- > phreaking 43332d39044 < phylogenetic 43349c39061 < physiologist/SM --- > physiologist/MS 43351c39063 < physiotherapist/SM --- > physiotherapist/MS 43354d39065 < phytoplankton 43358d39068 < pianistic 43368a39079 > picante 43374d39084 < pickaback 43376d39085 < pickaxe/M 43382c39091 < pickpocket/SMG --- > pickpocket/SM 43384c39093 < picky/TRP --- > picky/PTR 43389d39097 < picoseconds 43391d39098 < pictogram 43393d39099 < pictographic 43397c39103 < picturesque/YP --- > picturesque/PY 43406,43407c39112 < piecewise < piecework/ZMR --- > piecework/MRZ 43408a39114 > piecrust/SM 43411c39117 < pierce/JZGDRS --- > pierce/JGDS 43418c39124 < pigeonhole/MGDS --- > pigeonhole/DSMG 43431d39136 < pigmy/SM 43436c39141 < pigtail/MDS --- > pigtail/MS 43439a39145 > pikestaves 43441d39146 < pilaff/MS 43443d39147 < pilau/SM 43453c39157 < pill/MS --- > pill/MDSG 43476,43477c39180,39181 < pincer/MDS < pinch/GMDRS --- > pincer/MS > pinch/GMDS 43479,43480c39183,39184 < pine/AGDSM < pineal --- > pine's > pine/AGDS 43496c39200 < pinnacle/DSM --- > pinnacle/SM 43502d39205 < pinocle/M 43539a39243 > pirozhki/M 43566d39269 < piths 43571,43572d39273 < pitifuller < pitifullest 43587,43588c39288 < pixie/M < pixy/SM --- > pixie/MS 43594a39295,39296 > piñata/MS > piñon/SM 43605c39307,39308 < place/EAGLDSM --- > place's > place/AESDLG 43608c39311 < placeholder/SM --- > placeholder/MS 43611d39313 < placemen 43620,43622c39322,39324 < plagiarism/MS < plagiarist/MS < plagiarize/ZGDRS --- > plagiarism/SM > plagiarist/SM > plagiarize/DRSZG 43645c39347,39348 < plane/CGDSM --- > plane's > plane/CGDS 43649c39352 < planetarium/MS --- > planetarium/SM 43651,43652d39353 < planetesimals < planetoids 43664c39365 < plantation/SM --- > plantation/MS 43670,43671c39371 < plasma/SM < plasmid/S --- > plasma/M 43675d39374 < plasterwork 43677d39375 < plasticine 43679c39377,39378 < plasticize/DSZG --- > plasticize/DSG > plastique 43697a39397 > platys 43703d39402 < playability/U 43720d39418 < playings 43756c39454 < plenteous/Y --- > plenteous 43764d39461 < pleural 43787c39484 < plotted/A --- > plotted 43791c39488 < plow/ZGMDS --- > plow/GMDS 43795,43796c39492,39494 < ploy/SM < pluck/MDRSG --- > ploy's > ploy/S > pluck/MDSG 43800,43802c39498,39501 < plug/USM < plugged/UA < plugging/UA --- > plug's > plug/US > plugged/U > plugging/U 43804c39503 < plugin/MS --- > plugin/SM 43808d39506 < plumbago 43812a39511,39512 > plummer > plummest 43840c39540 < ply/AZGDSM --- > ply/AGDSM 43843c39543 < pneumatic/S --- > pneumatic 43844a39545,39547 > pneumococcal > pneumococci > pneumococcus 43857c39560 < podcast --- > podcast/SM 43860d39562 < podgy 43872d39573 < pogo 43877d39577 < poikilothermic 43882c39582 < pointed/PY --- > pointed/Y 43886c39586 < pointless/YP --- > pointless/PY 43901c39601 < polarization/CMS --- > polarization/CM 43911d39610 < poleward/S 43918c39617 < policyholder/SM --- > policyholder/MS 43922c39621 < polish/ZGMDRSJ --- > polish/ZGMDRS 43931c39630 < politician/MS --- > politician/SM 43939c39638 < poll/XGMDNS --- > poll/GMDNS 43945c39644 < pollinator/MS --- > pollinator/SM 43948c39647 < pollock/MS --- > pollock/M 43951c39650 < pollute/ZGNDRSX --- > pollute/ZGNDRS 43961a39661,39662 > polyacrylamide > polyamory/S 43964,43967d39664 < polyatomic < polycarbonate < polychromatic < polychrome 43969,43970d39665 < polycrystalline < polycyclic 43986d39680 < polymerase/S 43991d39684 < polymorphism/S 43993,43994c39686,39687 < polynomial/SMY < polynucleotide/MS --- > polynomial/MS > polynucleotide/SM 43996c39689 < polypeptide/MS --- > polypeptide's 44000c39693 < polysaccharides --- > polys 44005c39698 < polytechnic/SM --- > polytechnic/MS 44010d39702 < polytopes 44012c39704 < polyurethane/SM --- > polyurethane/MS 44024d39715 < pompon/SM 44029d39719 < poncey 44035c39725 < ponderous/PY --- > ponderous/YP 44043c39733 < pontificate/MGNDSX --- > pontificate/DSMG 44072d39761 < poppadum/S 44082c39771 < popularization/SM --- > popularization/M 44085d39773 < populated/U 44116c39804,39805 < port/CAEGDSM --- > port's/A > port/CAEGDS 44126,44127c39815 < porterage < porterhouse/MS --- > porterhouse/SM 44133a39822 > portière/MS 44136c39825 < portmanteau/SM --- > portmanteau/MS 44138c39827 < portraitist/MS --- > portraitist/SM 44143c39832,39833 < pose/CAKEGDSM --- > pose's/A > pose/CAKEGDS 44148,44154c39838,39842 < position/ACKESM < positionable < positional/KC < positionally < positioned/KA < positioning/AK < positive/PMYTRS --- > position/CKEMS > positional/K > positioned/K > positioning/K > positive/MYPS 44158d39845 < positivity 44164c39851 < possessive/SPMY --- > possessive/SMYP 44168c39855 < possible/RSMT --- > possible/SM 44177a39865 > postcolonial 44180c39868 < postdoc --- > postdoc/MS 44185,44186c39873 < postfixes < postgraduate/MS --- > postgraduate/SM 44213c39900 < postponement/MS --- > postponement/SM 44240c39927 < potentiometer/S --- > potentiate/GDS 44267c39954,39955 < pound/KDSGM --- > pound's > pound/KDSG 44270c39958 < pour/GDSBJ --- > pour/GDSJ 44280c39968 < powerful/YP --- > powerful/Y 44282c39970 < powerless/YP --- > powerless/PY 44286d39973 < poxy 44291c39978 < practicability/SM --- > practicability/M 44298,44299c39985 < practitioner/MS < praesidium/S --- > practitioner/SM 44305c39991 < pragmatist/SM --- > pragmatist/MS 44328d40013 < prayerbook 44330c40015 < preach/DRSZGJL --- > preach/DRSZGL 44334,44335c40019 < preadolescence/MS < preallocate --- > preadolescence/SM 44337,44338d40020 < preamp < preamplifier 44342,44343d40023 < preauthorize < prebendary 44346c40026 < precarious/YP --- > precarious/PY 44352c40032 < precedence/MS --- > precedence/M 44356,44357d40035 < precess/GD < precession 44360c40038 < precious/PY --- > precious/YP 44363,44364c40041,40042 < precipitant/SM < precipitate/DSXMYGN --- > precipitant/MS > precipitate/XMYGNDS 44368c40046 < precise/XDRSYTGNP --- > precise/DRSYTGNP 44371d40048 < preclinical 44374c40051 < precocious/PY --- > precocious/YP 44377c40054 < precognition/SM --- > precognition/M 44380,44383c40057,40059 < precomputed < preconceive/DSG < preconception/MS < precondition/GSMD --- > preconceive/GDS > preconception/SM > precondition/MDGS 44387c40063 < predate/XDSGN --- > predate/DSG 44392,44394c40068,40069 < predecessor/MS < predeclared < predefine/DG --- > predecessor/SM > predefined 44399c40074 < predetermine/DRSZG --- > predetermine/ZGDRS 44410,44411c40085 < predicted/U < prediction/MS --- > prediction/SM 44413c40087 < predigest/DSG --- > predigest/GDS 44416c40090 < predisposition/SM --- > predisposition/MS 44419c40093 < predominate/DSYG --- > predominate/YGDS 44433c40107 < prefabricate/GNDS --- > prefabricate/DSGN 44453a40128 > prehistorian/S 44457c40132,40133 < prejudge/GDS --- > prehuman > prejudge/LGDS 44459c40135 < prejudgment/MS --- > prejudgment/SM 44470d40145 < preloaded 44473,44474c40148 < premature/YP < prematurity --- > premature/Y 44477c40151 < premeditate/GNDS --- > premeditate/DSGN 44483c40157 < premiership/SM --- > premiership/MS 44485d40158 < premiss/SM 44489c40162 < premonition/SM --- > premonition/MS 44491a40165 > prenup/SM 44493c40167 < preoccupation/MS --- > preoccupation/SM 44496c40170 < preordain/DSG --- > preordain/GDS 44501,44502c40175 < preparation/MS < preparative --- > preparation/SM 44504c40177 < prepare/ZGDRS --- > prepare/GDS 44509d40181 < preplanned 44513c40185 < preposition/MS --- > preposition/SM 44523d40194 < preprocessed 44525c40196 < prepubescent/MS --- > prepubescent/SM 44528,44529c40199,40200 < prerecord/SGD < preregister/DGS --- > prerecord/GSD > preregister/SGD 44531c40202 < prerequisite/SM --- > prerequisite/MS 44538c40209 < preschool/SMRZ --- > preschool/SZMR 44546,44547d40216 < prescriptivism < prescriptivist 44549d40217 < preselect/SD 44554d40221 < presentational/A 44556c40223 < presentiment/MS --- > presentiment/SM 44566c40233 < preshrink/SG --- > preshrink/GS 44575c40242,40243 < press/ACGSDM --- > press's > press/ACGSD 44584,44586c40252,40253 < pressurize/CDSG < pressurized/U < pressurizer/MS --- > pressurize/CGDS > pressurizer/SM 44588,44589d40254 < prestidigitator < prestidigitatorial 44596,44597c40261,40262 < presumptive/Y < presumptuous/PY --- > presumptive > presumptuous/YP 44605d40269 < pretending/U 44616,44617d40279 < pretreated < pretreatment/S 44626,44627c40288,40289 < prevalent/Y < prevaricate/GNXDS --- > prevalent > prevaricate/DSGNX 44632,44634c40294,40295 < preventative/SM < preventible < prevention/SM --- > preventative/MS > prevention/M 44639d40299 < prevue/SM 44644c40304,40305 < price/AGDSM --- > price's > price/AGDS 44646a40308,40309 > pricier > priciest 44652d40314 < pricy/RT 44658c40320 < priesthood/MS --- > priesthood/SM 44660c40322 < priestly/PRT --- > priestly/RTP 44662c40324 < priggish/YP --- > priggish/P 44664c40326 < prim/YP --- > prim/ZGDRYP 44666d40327 < primaeval 44671c40332 < prime/MZGDRSP --- > prime/MS 44675c40336 < primitive/PSMY --- > primitive/SPMY 44680c40341 < primogenitor/MS --- > primogenitor/SM 44697d40357 < printed/U 44722c40382 < privatization/MS --- > privatization/SM 44731c40391 < prizefight/MRSZG --- > prizefight/ZGSMR 44734c40394 < prizewinner/SM --- > prizewinner/MS 44737c40397 < probabilist --- > proactive/Y 44739d40398 < probabilistically 44743c40402 < probate/MNV --- > probate/MN 44751c40410 < problematic/U --- > problematic 44756c40415 < procedural/Y --- > procedural 44761,44762c40420,40421 < process/AGDSM < processable --- > process's > process/AGDS 44764,44765c40423,40424 < procession/DG < processional/SM --- > procession/GD > processional/MS 44767d40425 < proclaim/Z 44770c40428 < procrastinate/GNXDS --- > procrastinate/DSGN 44772c40430 < procrastinator/SM --- > procrastinator/MS 44774,44775d40431 < procreational < procreatory 44777,44778c40433 < proctorial < procurement/SM --- > procurement/M 44784c40439,40440 < produce/AZGDRSM --- > produce's > produce/AZGDRS 44787d40442 < product/M 44789c40444 < productive/UAY --- > productive/UY 44793c40448 < profanation/SM --- > profanation/MS 44798,44799c40453,40454 < profession/MS < professional/SMY --- > profession/SM > professional/MYS 44805c40460 < professorship/MS --- > professorship/SM 44807c40462 < proficiency/SM --- > proficiency/M 44809d40463 < profiler/SM 44814c40468 < profiteer/MDSG --- > profiteer/MDGS 44816c40470 < profiterole/MS --- > profiterole/SM 44820,44821c40474 < proforma/S < profound/PRYT --- > profound/RYTP 44828a40482 > progestin/S 44833c40487 < prognosticate/XDSGN --- > prognosticate/XGNDS 44836,44838c40490,40493 < program/ZGMDRS < programer/M < programmable/SM --- > program/CAS > programed > programing > programmable/MS 44840,44841c40495 < programmatically < programmed/CA --- > programmed/AC 44843c40497 < programming/MS --- > programming/SM 44845,44846c40499,40500 < progression/SM < progressive/SMYP --- > progression/MS > progressive/PMYS 44853,44854c40507 < project/GVMDS < projected/A --- > project/GMDS 44857,44858c40510 < projectionist/MS < projective/Y --- > projectionist/SM 44859a40512 > prokaryotic 44869d40521 < prologize 44871d40522 < prologuize 44874c40525 < promenade/MZGDRS --- > promenade/MGDS 44876c40527 < prominence/MS --- > prominence/M 44885c40536 < promote/BDRZG --- > promote/DRZG 44894c40545 < promulgate/XGNDS --- > promulgate/GNDS 44898c40549 < pronator/MS --- > pronator/SM 44906,44907c40557 < pronounced/Y < pronouncement/MS --- > pronouncement/SM 44911c40561 < proofread/SZGR --- > proofread/SRZG 44915,44916c40565,40566 < propagandist/SM < propagandize/DSG --- > propagandist/MS > propagandize/GDS 44920d40569 < propane/M 44924d40572 < propellent/MS 44947c40595 < proportional/EY --- > proportional/YS 44949d40596 < proportionals 44956c40603 < proprietor/MS --- > proprietor/SM 44958c40605 < proprietorship/MS --- > proprietorship/SM 44961d40607 < proprioceptive 44965d40610 < propylene 44972a40618 > proscribe/DG 44974,44976c40620,40621 < proscriptive < prose/MS < prosecute/DSGNBX --- > prose/M > prosecute/DSXGN 44978c40623 < prosecutor/SM --- > prosecutor/MS 44981c40626 < proselytize/ZGDRS --- > proselytize/DRSZG 44983d40627 < prosodic 44987c40631 < prospector/MS --- > prospector/SM 45002c40646 < protagonist/MS --- > protagonist/SM 45004d40647 < protease 45010c40653 < protective/YP --- > protective/PY 45013c40656 < protectorate/SM --- > protectorate/MS 45018,45019c40661 < protestantism < protestation/SM --- > protestation/MS 45021d40662 < protists 45026c40667 < prototype/MGDS --- > prototype/MGS 45031d40671 < protozoon/M 45036d40675 < protrusive 45038a40678,40679 > protégé/MS > protégée/S 45040c40681 < prov/ZNRB --- > prov/NB 45042d40682 < provable/EU 45051c40691 < provide/BDRSZG --- > provide/DRSZG 45063c40703 < provocative/YP --- > provocative/PY 45076c40716 < proximate/Y --- > proximate 45090d40729 < prussic 45092c40731 < pryer/MS --- > précis/MDG 45095d40733 < psalter 45103,45104d40740 < pseudopod < pseudopodia 45124a40761 > psychoanalyses 45126c40763 < psychoanalyst/MS --- > psychoanalyst/SM 45129c40766 < psychoanalyze/GDS --- > psychoanalyze/DSG 45131c40768 < psychodrama/SM --- > psychodrama/MS 45135,45136d40771 < psycholinguistic/S < psycholinguists 45138c40773 < psychologist/SM --- > psychologist/MS 45147a40783 > psychopharmacology 45150d40785 < psychosocial 45160,45161c40795 < pterodactyl/SM < pterosaurs --- > pterodactyl/MS 45173c40807 < publication/AMS --- > publication/ASM 45177d40810 < publicized/U 45180c40813 < publishable/U --- > publishable 45211c40844 < pugnacious/PY --- > pugnacious/YP 45214d40846 < puissant 45227d40858 < pullup/SM 45248c40879 < punch/MDRSBZG --- > punch/MDRSZG 45250d40880 < punchbowl 45256c40886 < punctilious/YP --- > punctilious/PY 45260c40890 < punctuate/XGNDS --- > punctuate/GNDS 45262d40891 < punctuational 45272c40901 < punishment/SM --- > punishment/MS 45275d40903 < punkin/SM 45289d40916 < pupillage 45312c40939 < purify/DRSZGN --- > purify/NDRSZG 45320c40947 < purity/SM --- > purity/M 45328,45329c40955,40956 < purpose/DSMYGV < purposeful/PY --- > purpose/DSMYG > purposeful/YP 45331c40958 < purposeless/YP --- > purposeless/PY 45347c40974 < push/BZGMDRS --- > push/ZGMDRS 45367c40994 < putative/Y --- > putative 45376d41002 < putridity 45389d41014 < puzzling/Y 45390a41016,41017 > pwn/SGD > pyelonephritis 45400d41026 < pyridine 45404,45405d41029 < pyrolysis < pyrolyze 45407c41031 < pyromaniac/MS --- > pyromaniac/SM 45411d41034 < pyroxene/S 45422d41044 < quackish 45424c41046 < quadrangle/MS --- > quadrangle/SM 45429,45430c41051 < quadratically < quadrature/S --- > quadrature 45432c41053 < quadrennium/SM --- > quadrennium/MS 45434,45435c41055,41056 < quadrilateral/MS < quadrille/MNSX --- > quadrilateral/SM > quadrille/XMNS 45437d41057 < quadripartite 45441d41060 < quadrophonic 45445,45446c41064,41065 < quadruplet/SM < quadruplicate/DSMGN --- > quadruplet/MS > quadruplicate/MGNDS 45448,45449d41066 < quadruply < quadrupole 45452d41068 < quahaug/SM 45458c41074 < quaky/TR --- > quaky 45462c41078 < qualify/EXGNDS --- > qualify/EGXNDS 45470c41086 < quantifiable/U --- > quantifiable 45472d41087 < quantified/U 45477,45478d41091 < quantization < quantize/D 45487d41099 < quarrymen 45490c41102 < quarterback/SGMD --- > quarterback/GMDS 45498,45500d41109 < quartette/MS < quartic/S < quartile/S 45503d41111 < quartzite 45507,45509d41114 < quasilinear < quaternary < quaternion/S 45527d41131 < quern 45531c41135,41136 < ques/S --- > ques > quesadilla/MS 45535c41140 < question/BJSMDRZG --- > question/SMDRZGBJ 45541,45542c41146,41148 < questionnaire/MS < queue/MDSG --- > questionnaire/SM > queue's > queue/CDSG 45556d41161 < quiesce/D 45572d41176 < quincentenary 45576d41179 < quinquennial 45579c41182 < quintessence/MS --- > quintessence/SM 45582,45584d41184 < quintette/MS < quintic < quintillion 45586c41186 < quintuplet/SM --- > quintuplet/MS 45589d41188 < quipper 45592c41191,41192 < quire/IASM --- > quire's > quire/IAS 45605d41204 < quivering/Y 45614a41214 > quo/H 45620c41220 < quot/RB --- > quot/B 45624,45625c41224,41225 < quote/UDSGM < quoth --- > quote's > quote/UDSG 45642c41242 < racecourse/MS --- > racecourse/SM 45659c41259 < racketeer/GSMD --- > racketeer/SMDG 45662c41262 < racoon/MS --- > racoon 45664c41264 < racquetball/MS --- > racquetball/SM 45668,45670c41268 < radarscope/MS < radder < raddest --- > radarscope/SM 45673d41270 < radian/S 45676c41273 < radiate/DSGNVX --- > radiate/DSGNX 45678d41274 < radiative/Y 45689d41284 < radioastronomical 45691d41285 < radiogalaxy/S 45695,45696c41289 < radioisotope/SM < radiological --- > radioisotope/MS 45701c41294 < radiometer/SM --- > radiometer/MS 45704d41296 < radionuclide 45707c41299,41300 < radiosonde/MS --- > radiosonde/SM > radiosurgery 45711,45712c41304,41305 < radiotelephone/SM < radiotherapist/SM --- > radiotelephone/MS > radiotherapist/MS 45717d41309 < radix 45746c41338,41339 < rail/CGDSM --- > rail's > rail/CGDS 45759d41351 < raincloud/S 45763,45764d41354 < rainforest/S < rainless 45769d41358 < rainswept 45775d41363 < raj 45789d41376 < ramequin/SM 45792c41379 < ramify/DSGXN --- > ramify/DSXNG 45796c41383 < ramp/MDS --- > ramp/GMS 45814c41401 < rand/MS --- > rand/M 45823c41410,41411 < range/CGDSM --- > range's > range/CGDS 45860c41448 < rapscallion/SM --- > rapscallion/MS 45868c41456 < rarefaction/SM --- > rarefaction/M 45876c41464 < rasp/GMDRS --- > rasp/GMDS 45881c41469 < rasterize/SGDR --- > rasterize/DRSG 45886,45887c41474 < rate/BJXMZGNDRS < rateable --- > rate/JXMZGNDRS 45892c41479 < rathskeller/MS --- > rathskeller/SM 45895c41482 < ratify/DRSZGNX --- > ratify/NDRSZG 45904c41491 < rationalist/MS --- > rationalist/SM 45906c41493 < rationality/SM --- > rationality/M 45908c41495 < rationalize/GDS --- > rationalize/DSG 45910d41496 < ratlin/SM 45917c41503 < rattlebrain/MDS --- > rattlebrain/SMD 45919c41505 < rattlesnake/MS --- > rattlesnake/SM 45921c41507 < rattly/RT --- > rattly 45933c41519,41520 < ravel/UDSGM --- > ravel's > ravel/UDSG 45938c41525 < raving/MY --- > raving/M 45951c41538 < razor/MSG --- > razor/MS 45953,45954d41539 < razorbills < razorblades 45956d41540 < razzamatazz 45963d41546 < reached/U 45965d41547 < reacquisition 45968a41551 > reactivity/M 45987d41569 < realizable/U 46008d41589 < reasoned/U 46011c41592 < reasonless --- > reassemble/DSG 46022d41602 < rebook 46031d41610 < recalibrate/GN 46041d41619 < received/U 46045,46046c41623 < recension < recent/YTP --- > recent/RYTP 46048c41625 < receptacle/MS --- > receptacle/SM 46050,46051c41627,41628 < receptionist/MS < receptive/YP --- > receptionist/SM > receptive/PY 46056c41633 < recessional/MS --- > recessional/SM 46059d41635 < recharge/R 46060a41637 > recherché 46065,46066c41642,41643 < reciprocal/MYS < reciprocate/DSGN --- > reciprocal/SMY > reciprocate/GNDS 46070,46071c41647,41648 < recitalist/SM < recitative/SM --- > recitalist/MS > recitative/MS 46075c41652 < reckon/SJDRG --- > reckon/SJDG 46077,46078c41654 < reclaim/BR < reclamation/MS --- > reclamation/M 46082d41657 < recognition/S 46084,46086c41659,41660 < recognizably/U < recognizance/S < recognize/BDRSZG --- > recognizably > recognize/DRSGB 46088d41661 < recombinant 46090d41662 < recommended/U 46094,46095c41666 < reconcile/GLDSB < reconciled/U --- > reconcile/GDSB 46098,46099c41669,41671 < reconnaissance/SM < reconnection --- > reconfiguration > reconfigure/D > reconnaissance/MS 46103,46106d41674 < recontribute < reconversion < recopy/DSG < record/RBJZ 46108,46111c41676,41677 < recorder/M < recording/M < recordists < recount/SGMD --- > recorder/MS > recording/MS 46113d41678 < recouple 46119c41684 < recriminate/GNXDS --- > recriminate/DSGNX 46128d41692 < recrystallization 46135c41699 < rectify/NDRSZGX --- > rectify/XNDRSZG 46143c41707 < recuperate/DSGNV --- > recuperate/GNVDS 46147a41712 > recurrent/Y 46149,46153c41714,41716 < recurse/DGSV < recursion/S < recuse/DGS < recyclable/MS < recycle/BZ --- > recurse/XNV > recuse/DSG > recyclable/SM 46169d41731 < redeclaration 46171d41732 < redeemed/U 46173d41733 < redelivery 46176d41735 < redeposition 46180,46182c41739 < redisplay < redistribute/V < redistrict/DG --- > redistrict/GD 46194d41750 < redshift/S 46197d41752 < reduced/U 46199d41753 < reducibility 46203,46204c41757 < reductionism < reductionist/S --- > reductionist 46215c41768,41769 < reel/UGDSM --- > reel's > reel/UGDS 46219d41772 < refactor/SMDG 46225d41777 < refereed/U 46227,46230c41779,41780 < reference/MGDRS < referenced/U < referencing/U < referendum/SM --- > reference/MGDS > referendum/MS 46232c41782 < referential/Y --- > referential 46239c41789,41790 < refill/BJM --- > refile/DSG > refill/BM 46241c41792 < refinement/MS --- > refinement/SM 46248,46253c41799,41800 < reflectance < reflected/U < reflection/SM < reflectional < reflective/PY < reflectivity --- > reflection/MS > reflective/Y 46255,46256c41802 < reflexive/PSMY < reflexivity --- > reflexive/SMY 46258d41803 < reflooring 46260c41805 < reform/MB --- > reform/MZ 46266c41811 < refortify/DSG --- > refortify/GDS 46268c41813 < refractors --- > refraction/M 46271,46272c41816 < refresh/ZGBLDRS < refreshed/U --- > refresh/ZGLDRS 46279d41822 < refrigerated/U 46289d41831 < refuseniks 46298d41839 < regarded/U 46305c41846,41847 < regenerate/VX --- > regenerate/V > regex/M 46319d41860 < registrable 46346c41887 < regurgitate/GNDS --- > regurgitate/DSGN 46351c41892 < rehabilitate/DSGNV --- > rehabilitate/GNVDS 46359d41899 < rehydrate 46361c41901 < reimburse/BLDSG --- > reimburse/BDSGL 46363d41902 < reimplementation 46366,46368c41905,41907 < reinforce/GDSL < reinforcement/MS < reinitialization --- > reinforce/LGDS > reinforcement/SM > reinitialize 46372d41910 < reinvestigation 46379c41917 < rejuvenate/DSXGN --- > rejuvenate/DSGN 46381d41918 < rejuvenatory 46387,46388c41924,41925 < relational/Y < relationship/SM --- > relational > relationship/MS 46393d41929 < relativistically 46395d41930 < relator 46400d41934 < relaxing/Y 46402c41936 < releasable/U --- > release/B 46417d41950 < relict 46426,46427c41959 < relink/GD < relinquish/GLDS --- > relinquish/LDSG 46430a41963,41964 > relist/SGD > relocate/B 46436c41970 < remainder/MDSG --- > remainder/GMDS 46447c41981 < remembrance/SM --- > remembrance/MS 46450c41984 < reminiscence/SM --- > reminiscence/MS 46462,46463c41996,41997 < remonstrant/MS < remonstrate/XGNDS --- > remonstrant/SM > remonstrate/DSG 46470d42003 < remould/SDG 46472c42005 < remunerate/DSGNVX --- > remunerate/GNVXDS 46477d42009 < renationalisation 46490,46491c42022 < renormalization < renounce/DSLG --- > renounce/LDSG 46501a42033 > reorg/DSG 46504,46505c42036,42037 < repairable/U < repairer/MS --- > repair/BZR > repairer/M 46508d42039 < repaper 46510c42041 < reparation/SM --- > reparation/MS 46513c42044 < repatriate/DSXMGN --- > repatriate/XDSMGN 46516d42046 < repeatability/U 46523d42052 < repellant/SM 46526c42055 < repelling/Y --- > repelling 46529c42058 < repentant/UY --- > repentant/Y 46534c42063 < repetitious/PY --- > repetitious/YP 46538c42067 < rephotograph/GD --- > rephotograph/DG 46541c42070 < replenish/DSGL --- > replenish/LGDS 46547,46548c42076 < replicable < replicate/DSG --- > replicate/DSGNX 46551,46553d42078 < replug < reply/XRN < report/MRBZ 46559c42084 < reprehend/DSG --- > reprehend/DGS 46564,46566c42089,42091 < represent/DGSB < representable/U < representative/PSM --- > represent/GDS > representational > representative/MS 46568,46569c42093,42094 < repression/SM < repressive/YP --- > repression/MS > repressive/PY 46574,46575c42099,42100 < reproach/BGMDS < reproachful/PY --- > reproach/GMDSB > reproachful/Y 46577,46581c42102 < reproducibility < reproducible/U < reproducibly < reprogram/S < reprogrammable --- > reproductive 46593,46594c42114,42115 < repulsion/SM < repulsive/PY --- > repulsion/M > repulsive/YP 46603d42123 < requested/U 46606,46607c42126,42127 < requirement/SM < requisite/MNXS --- > requirement/MS > requisite/XMNS 46615,46617d42134 < reredos < reregistration < rerouteing 46619d42135 < res/C 46626,46627c42142 < reselect < reselection --- > resell/SG 46629c42144 < resend/G --- > resend 46633c42148 < resentment/SM --- > resentment/MS 46635c42150 < reservation/SM --- > reservation/MS 46642d42156 < reshow/G 46649d42162 < residuary 46652,46653c42165 < resignal < resignation/MS --- > resignation/SM 46659,46661c42171,42172 < resiny < resist/SMDRZGV < resistance/MS --- > resist/SMDRZG > resistance/SM 46664,46665d42174 < resistive/Y < resistivity 46667a42177 > resit/S 46671c42181 < resolute/XPYTNR --- > resolute/PY 46673,46675c42183 < resolvability < resolvable/U < resolve/M --- > resolve/RBM 46677d42184 < resolvent 46688d42194 < respecify 46703,46704c42209,42210 < respond/SZGDR < respondent/MS --- > respond/SGD > respondent/SM 46709c42215 < responsive/UPY --- > responsive/UYP 46712d42217 < restart/B 46715d42219 < restauranteur/SM 46724c42228 < restless/YP --- > restless/PY 46726,46727c42230,42231 < restoration/MS < restorative/MS --- > restoration/SM > restorative/SM 46734c42238 < restrictive/PY --- > restrictive/YP 46738,46739c42242 < restructuring/MS < resubstitute --- > restructuring/SM 46743c42246 < resumption/SM --- > resumption/MS 46747,46748c42250,42251 < resurrect/SGD < resurrection/SM --- > resurrect/GSD > resurrection/MS 46752d42254 < resynchronization 46766,46767c42268,42269 < retention/MS < retentive/PY --- > retention/M > retentive/YP 46769d42270 < retentivity 46774d42274 < reticular 46776,46778c42276 < reticulation/SM < reticule/S < reticulum --- > reticulation/MS 46781d42278 < retinitis 46792c42289 < retrenchment/SM --- > retrenchment/MS 46805c42302 < retrogress/DSGV --- > retrogress/GVDS 46807,46808c42304,42305 < retrorocket/SM < retrospect/GVSMD --- > retrorocket/MS > retrospect/MDSGV 46813,46814c42310 < retuning < returnable/MS --- > returnable/SM 46816c42312 < rev/VM --- > rev/ZVM 46818,46819c42314 < revanchist < reveal/BGJSD --- > reveal/GJSD 46824,46825c42319 < revelation/MS < revelatory --- > revelation/SM 46830,46831c42324,42325 < reverberant < reverberate/DSXGN --- > reverb > reverberate/DSGNX 46841c42335 < reverse/YR --- > reverse/Y 46847d42340 < revery/SM 46852,46856c42345,42346 < revise/BXRZN < revised/U < reviser/M < revision/M < revisionary --- > reviser/MS > revision/SM 46858c42348 < revisionist/MS --- > revisionist/SM 46862c42352 < revive/DRSG --- > revive/DSG 46865c42355 < revoke/DRSBZG --- > revoke/DSG 46886c42376 < rewrite/M --- > rewrite/MGS 46889c42379 < rhapsodize/DSG --- > rhapsodize/GDS 46893,46894d42382 < rheological < rheology 46899c42387 < rhetorician/MS --- > rhetorician/SM 46906c42394 < rheumatologist/SM --- > rheumatologist/MS 46908c42396 < rheumy/TR --- > rheumy 46912a42401,42402 > rhinoplasty > rhinovirus/MS 46935d42424 < ribcage 46937,46938d42425 < ribonucleic < ribosomes 46947d42433 < ricksha/MS 46951c42437 < rid/SR --- > rid/S 46956c42442 < ride/CZGSM --- > ride/MZGRS 46962c42448 < ridgy/RT --- > ridgy 46964c42450 < ridiculous/PY --- > ridiculous/YP 46978c42464 < rigamarole/MS --- > rigamarole/SM 46997,46998c42483 < rigidify/S < rigidity/SM --- > rigidity/M 47015d42499 < ringing/Y 47019c42503 < ringmaster/SM --- > ringmaster/MS 47021c42505 < ringtone/MS --- > ringtone/SM 47037,47038c42521 < ripost/SGMD < riposte/MS --- > riposte/MGDS 47043c42526 < ripply/TR --- > ripply 47045d42527 < ripstop 47058a42541 > risqué 47080d42562 < riveting/Y 47092c42574 < roadrunner/MS --- > roadrunner/SM 47095d42576 < roadsigns 47097d42577 < roadsweepers 47116c42596,42597 < robe/EGDSM --- > robe's > robe/EGDS 47117a42599 > robocall/SGD 47143c42625,42626 < rogue/KSM --- > rogue's > rogue/KS 47153d42635 < rolled/A 47168,47169c42650,42651 < romanticist/MS < romanticize/GDS --- > romanticist/SM > romanticize/DSG 47174d42655 < rontgen/S 47178d42658 < roofgarden 47196c42676 < rootkit/MS --- > rootkit/SM 47199d42678 < rootstock 47202d42680 < ropey 47216c42694 < roster/SMG --- > roster/SM 47222d42699 < rotatable 47224c42701 < rotate/DSGNBX --- > rotate/DSGNX 47226,47227c42703 < rotational/Y < rotators --- > rotational 47232c42708 < rotogravure/SM --- > rotogravure/MS 47251,47252c42727,42728 < roughhouse/DSMG < roughneck/MDSG --- > roughhouse/MGDS > roughneck/GMDS 47261c42737 < roundhouse/MS --- > roundhouse/SM 47264d42739 < roundtable/SM 47271c42746,42748 < route/ADSGM --- > route's > route/ADSG > routeing 47275a42753 > roué/MS 47302c42780 < rubberneck/SZGMDR --- > rubberneck/MDRSZG 47304c42782 < rubbery/TR --- > rubbery 47321c42799 < ruction/S --- > ructions 47337d42814 < ruffly/TR 47342a42820 > rugrat/SM 47344c42822 < ruination/SM --- > ruination/M 47347d42824 < rulebook/S 47364c42841 < rumormonger/MS --- > rumormonger/SM 47367d42843 < rumply/RT 47378d42853 < runnable 47391c42866 < rural/Y --- > rural 47395c42870 < rushy/RT --- > rushy 47413c42888 < ruthless/PY --- > ruthless/YP 47420,47421c42895 < sabbath < sabbatical/MS --- > sabbatical/SM 47430d42903 < saccharides 47441d42913 < sacral 47452c42924 < sacroiliac/SM --- > sacroiliac/MS 47460c42932,42933 < saddle/UDSGM --- > saddle's > saddle/UDSG 47472c42945 < sadomasochist/SM --- > sadomasochist/MS 47475,47477c42948,42950 < safe/UYTPRM < safeguard/GSMD < safekeeping/SM --- > safe/MYTPRS > safeguard/SMDG > safekeeping/M 47479d42951 < safes 47512c42984 < sake/MS --- > sake/M 47516c42988 < salacious/YP --- > salacious/PY 47524c42996 < saleability --- > saleable/U 47526c42998 < salesclerk/MS --- > salesclerk/SM 47533c43005 < salesperson/SM --- > salesperson/MS 47537d43008 < salicylic 47544c43015 < salivate/XGNDS --- > salivate/GNDS 47555c43026,43027 < salt/CTGDSM --- > salt's > salt/CTGDS 47563c43035 < saltshaker/MS --- > saltshaker/SM 47567d43038 < salubrity 47570c43041 < salutatorian/SM --- > salutatorian/MS 47593c43064 < sanctify/NGDS --- > sanctify/GDSN 47606a43078 > sandbagger/SM 47610c43082 < sandblast/MDRSZG --- > sandblast/ZGMDRS 47613c43085 < sandcastle/SM --- > sandcastle/MS 47621c43093 < sandpaper/MDGS --- > sandpaper/GMDS 47624c43096 < sandstone/SM --- > sandstone/M 47639c43111 < sanitize/ZGDRS --- > sanitize/GDS 47656c43128 < saprophyte/MS --- > saprophyte/SM 47661d43132 < sarape/SM 47671d43141 < saree/MS 47677c43147 < sarsaparilla/SM --- > sarsaparilla/MS 47698c43168 < satin/MS --- > satin/M 47710d43179 < satisfiable/U 47720c43189 < saturated/UC --- > saturated/U 47722d43190 < saturnalia 47742d43209 < sauterne/SM 47743a43211 > sauté/MDSG 47748,47749d43215 < savannah/M < savannahs 47754d43219 < saveloy 47772d43236 < sawtooth 47777,47778c43241,43243 < saxophonist/MS < say/USGM --- > saxophonist/SM > say's > say/USG 47793,47795d43257 < scagging < scalability < scalable 47799,47800c43261,43262 < scale/ACSDGM < scaled/U --- > scale's > scale/CGDS 47806c43268 < scallywag/S --- > scallywag/MS 47812a43275 > scammer/S 47817c43280 < scan/ASM --- > scan/MS 47819c43282 < scandalize/GDS --- > scandalize/DSG 47823c43286 < scanned/A --- > scanned 47825c43288 < scanning/A --- > scanning 47834,47836c43297,43298 < scape < scapegoat/SMDG < scapegrace/SM --- > scapegoat/SGMD > scapegrace/MS 47847,47848c43309 < scaremonger/MSG < scarey --- > scaremonger/SMG 47851c43312 < scarify/DSGN --- > scarify/NDSG 47863,47864d43323 < scathe/DG < scathed/U 47869,47870c43328,43329 < scatter/ZGJSMDR < scatterbrain/MDS --- > scatter/GJSMD > scatterbrain/SMD 47871a43331 > scattershot 47886,47887c43346 < scepter/MDS < sceptically --- > scepter/MS 47890c43349,43350 < schedule/ADSGM --- > schedule's > schedule/ADSG 47908,47909c43368 < schizophrenic/MS < schizophrenically --- > schizophrenic/SM 47914c43373 < schlocky/RT --- > schlocky 47916,47917c43375 < schmaltzy/RT < schmalz/M --- > schmaltzy/TR 47923c43381 < schnaps/M --- > schnaps 47939c43397 < schoolchildren --- > schoolchildren/M 47942,47943c43400 < schoolfellow/MS < schoolfriend --- > schoolfellow/SM 47945c43402 < schoolhouse/MS --- > schoolhouse/SM 47950c43407 < schoolmaster/SM --- > schoolmaster/MS 47954c43411 < schoolteacher/SM --- > schoolteacher/MS 47958,47959c43415 < schrod/SM < schtick --- > schrod/S 47961c43417 < schussboomer/SM --- > schussboomer/MS 47972c43428 < scintillate/XDSGN --- > scintillate/DSGN 47974d43429 < scintillator/S 47983c43438 < scold/MDRSGJ --- > scold/MDSGJ 47986d43440 < scollop/SMDG 47989c43443 < scoop/MDRSG --- > scoop/MDSG 48017c43471 < scoutmaster/SM --- > scoutmaster/MS 48026c43480,43481 < scramble/UGDSM --- > scramble's > scramble/UGDS 48041c43496 < scratch/GJMDS --- > scratch/GMDS 48047c43502 < scratchy/RPT --- > scratchy/PRT 48049c43504 < scrawly/TR --- > scrawly 48062,48064c43517,43519 < screensaver/MS < screenshot/MS < screenwriter/MS --- > screensaver/SM > screenshot/SM > screenwriter/SM 48066c43521,43522 < screw/UDSGM --- > screw's > screw/UDSG 48068c43524 < screwdriver/SM --- > screwdriver/MS 48073c43529 < scribble/JMZGDRS --- > scribble/MZGDRS 48075c43531,43532 < scribe/IKCGSDM --- > scribe's > scribe/CKIS 48083d43539 < scriptorium 48086,48087c43542 < scriptwriter/MS < scriptwriting --- > scriptwriter/SM 48093,48095c43548 < scrogged < scrogging < scroll/GSBMD --- > scroll/GSMD 48115c43568 < scrummage/GS --- > scrummage/S 48126c43579 < scrupulous/UYP --- > scrupulous/UPY 48129,48130c43582,43583 < scrutinize/DSG < scrutiny/SM --- > scrutinize/GDS > scrutiny/M 48153c43606 < scurfy/TR --- > scurfy 48155c43608 < scurrilous/YP --- > scurrilous/PY 48157c43610 < scurry/GDSMJ --- > scurry/GDSM 48179c43632,43633 < seal/AUSDGM --- > seal's > seal/AUSDG 48184d43637 < seamail 48187a43641 > seamount/MS 48195c43649 < searchable --- > searchable/U 48198c43652 < searchlight/SM --- > searchlight/MS 48213,48214c43667,43668 < seat/UGDSM < seated/A --- > seat's > seat/UGDS 48223c43677 < seaworthy/TRP --- > seaworthy/P 48232c43686 < secession/MS --- > secession/M 48244c43698 < secret/STGVMDRY --- > secret/SGVMDY 48251c43705 < secretive/YP --- > secretive/PY 48264,48265d43717 < sectoral < sectored 48281,48282c43733,43734 < sedge/MS < sedgy/RT --- > sedge/M > sedgy 48291c43743 < seductive/PY --- > seductive/YP 48296c43748,43749 < seed/AGDSM --- > seed's > seed/AGDS 48313c43766 < seen --- > seen/U 48322d43774 < segmental 48328,48329c43780,43781 < segregationist/SM < segue/MDS --- > segregationist/MS > segue/MGDS 48338d43789 < seismogram 48346c43797 < seismologist/SM --- > seismologist/MS 48348d43798 < seismometer/S 48352,48354c43802 < select/CSGDV < selectable < selected/UA --- > select/CSGVD 48365,48367c43813,43814 < selenology < self/MG < selfie/S --- > self/GM > selfie/SM 48372c43819 < selfless/YP --- > selfless/PY 48375c43822 < sell/AZGRSM --- > sell/ZGMRS 48376a43824 > selloff/MS 48385c43833 < semanticist/SM --- > semanticist/MS 48400c43848 < semiconductor/SM --- > semiconductor/MS 48405c43853 < semifinalist/SM --- > semifinalist/MS 48414d43861 < semioticians 48420c43867 < semiprofessional/MS --- > semiprofessional/SM 48427c43874 < semitrailer/SM --- > semitrailer/MS 48434d43880 < sempiternal 48456d43901 < sensationalistic 48463c43908 < sensible/PRT --- > sensible/P 48466c43911 < sensitive/SPMY --- > sensitive/SMYP 48472d43916 < sensitizers 48475,48476c43919,43920 < sensual/FY < sensualist/MS --- > sensual/Y > sensualist/SM 48482d43925 < sentential 48499c43942 < separate/PXMYGNVDS --- > separate/XMYGNVDSP 48507a43951 > septal 48509d43952 < septette/SM 48521d43963 < sequent/F 48523,48524c43965,43966 < sequester/GSD < sequestrate/XDSGN --- > sequester/SDG > sequestrate/XGNDS 48526a43969 > sequinned 48533,48534c43976 < seraphically < seraphim/M --- > seraphim 48537,48538c43979,43980 < serenade/MGDRS < serendipitous/Y --- > serenade/MGDS > serendipitous 48548c43990 < serialization/MS --- > serialization/SM 48551c43993 < serif/MDS --- > serif/MS 48569c44011,44012 < serve/FACGDSM --- > serve's/AF > serve/FACGDS 48574,48575c44017,44018 < serviceable/U < serviced/U --- > serviceable > serviced 48582c44025 < servile/Y --- > servile 48584c44027,44028 < serving/MS --- > serving's > servings 48592d44035 < sessile 48599d44041 < settable/A 48603c44045,44046 < settle/AUGDSM --- > settle's > settle/AUGDS 48609,48610d44051 < sevenfold < sevenpence 48630c44071 < sewn --- > sewn/A 48638c44079 < sexologist/MS --- > sexologist/SM 48643c44084 < sextette/MS --- > sexting 48647c44088 < sexuality/SM --- > sexuality/M 48655c44096,44097 < shackle/UGDSM --- > shackle's > shackle/UGDS 48658,48659d44099 < shaded/U < shadeless 48665d44104 < shadowless 48676,48680c44115 < shaikh < shaikhs < shakable/U < shake/MZGRSB < shakeable/U --- > shake/MZGRS 48706c44141 < shameful/YP --- > shameful/PY 48710a44146 > shammies 48712d44147 < shammy/SM 48723c44158,44159 < shape/AGDSM --- > shape's > shape/AGDS 48725c44161 < shapeless/PY --- > shapeless/YP 48729d44164 < sharable/U 48737,48738c44172 < shared/U < shareholder/MS --- > shareholder/SM 48741c44175 < shareware/MS --- > shareware/M 48758d44191 < shattering/Y 48776c44209 < sheave/SM --- > sheave/DSMG 48786c44219 < sheepherder/SM --- > sheepherder/MS 48792c44225 < sheet/MDSG --- > sheet/MSG 48796a44230 > sheikh/M 48797a44232 > sheikhs 48803,48804c44238,44239 < shellack/JGMDS < shellacking/M --- > shellacked > shellacking/MS 48810c44245 < shemale/MS! --- > shemale/MS 48814d44248 < sherbert/SM 48826,48827c44260 < shielded/U < shift/ZGMDRS --- > shift/GMDS 48832a44266 > shiitake/S 48834,48835d44267 < shillalah/M < shillalahs 48858c44290,44291 < ship/ALSM --- > ship's > ship/ALS 48860,48861c44293 < shipborne < shipbuilder/MS --- > shipbuilder/SM 48868d44299 < shippable 48885c44316 < shirtsleeve/MS --- > shirtsleeve/SM 48887c44318 < shirtwaist/SM --- > shirtwaist/MS 48889c44320 < shit/MS! --- > shit/SM! 48892c44323,44325 < shitload/MS! --- > shitload's > shitload/! > shitloads 48895c44328 < shitty/TR! --- > shitty/RT! 48898d44330 < shivering/Y 48900,48904d44331 < shlemiel/MS < shlep/MS < shlepp/MDSG < shlock/M < shmaltz/M 48916d44342 < shoebox 48920d44345 < shoeless 48923c44348 < shoestring/MS --- > shoestring/SM 48940d44364 < shopkeeping 48952d44375 < shoreward 48958c44381 < shortchange/GDS --- > shortchange/DSG 48965c44388 < shorthand/MDS --- > shorthand/MD 48969c44392 < shortlist/DSG --- > shortlist/DGS 48987c44410 < shovel/MDRSG --- > shovel/MDSG 48996c44419 < showery/TR --- > showery 49011c44434 < showstopper/SM --- > showstopper/MS 49026c44449 < shriek/MDRSZG --- > shriek/MDSG 49036d44458 < shrinking/Y 49069c44491 < shuttlecock/MDGS --- > shuttlecock/GMDS 49075,49076d44496 < sibilance < sibilancy 49081a44502,44503 > sicced > siccing 49095c44517,44518 < side/AGDSM --- > side's > side/AGDS 49097d44519 < sideband/S 49121d44542 < sidewards 49123,49124c44544 < sidewinder/MS < sidewise --- > sidewinder/SM 49138d44557 < sighted/P 49140c44559 < sightless/Y --- > sightless 49146,49147c44565,44566 < sigmoid < sign/AFCGDSM --- > sign's/C > sign/AFCGDS 49163d44581 < significances 49166,49167c44584,44585 < signify/XNDRSG < signing/MCS --- > signify/XDSNG > signing/CSM 49184d44601 < silicious 49199d44615 < siltstone 49207c44623,44624 < silvery/RT --- > silvery > sim/S 49223,49224c44640,44641 < simplex/S < simplicity/SM --- > simplex > simplicity/M 49226,49227c44643 < simplified/U < simplify/XDRSNG --- > simplify/DSXNG 49247d44662 < sinecurist 49267,49269c44682 < singularization < sinister/Y < sinistral --- > sinister 49283,49284c44696 < sinusoid < sinusoidal/Y --- > sinusoidal 49298d44709 < sirup/SM 49307c44718 < sit/ASG --- > sit/S 49311,49312c44722,44723 < site/MJDS < sitemap/MS --- > site/MGDS > sitemap/SM 49318,49319d44728 < situationist < situp/SM 49323d44731 < sixpenny 49328c44736 < sixth/MY --- > sixth/M 49333c44741,44743 < size/AMGBDRS --- > size's > size/AGBDRS > sizeable 49338c44748 < skateboard/ZGSMDR --- > skateboard/MDRSZG 49351d44760 < skerries 49359c44768 < skew/MDRZGPS --- > skew/MDRZGS 49372,49373c44781,44783 < skilful/Y < skill/CSDM --- > skilfully > skill's > skill/CSD 49394d44803 < skinner/S 49460c44869 < slang/MG --- > slang/M 49467c44876 < slaphappy/RT --- > slaphappy 49479c44888 < slaughter/MDRJZGS --- > slaughter/MDRZGS 49481c44890 < slaughterhouse/SM --- > slaughterhouse/MS 49503c44912 < sledgehammer/SMDG --- > sledgehammer/GSMD 49520c44929 < sleety/RT --- > sleety 49526c44935 < slender/PRYT --- > slender/PRT 49534d44942 < sliced/U 49544d44951 < slighting/Y 49546d44952 < slily 49548c44954 < slime/SM --- > slime/M 49574c44980 < slipstream/MS --- > slipstream/SM 49579d44984 < slitted 49606c45011 < slothful/PY --- > slothful/YP 49618c45023 < slovenly/TPR --- > slovenly/PTR 49622d45026 < slowish 49633c45037 < sluggish/YP --- > sluggish/PY 49639a45044 > slumdog/SM 49659a45065,45066 > slyer > slyest 49669d45075 < smalltalk 49674c45080 < smartphone/MS --- > smartphone/SM 49675a45082 > smartwatch/MS 49684,49685c45091 < smegma < smell/SMDGB --- > smell/SMDG 49691,49692d45096 < smidgeon/SM < smidgin/MS 49694c45098 < smile/DRSMG --- > smile/DSMG 49696c45100 < smiling/UY --- > smiling/Y 49713c45117 < smokescreen/MS --- > smokescreen/SM 49723c45127 < smoothie/MS --- > smoothie/M 49726c45130 < smoothy --- > smoothy/SM 49730c45134 < smoulder/GSMD --- > smoulder/GMDS 49743a45148 > smörgåsbord/MS 49756c45161,45162 < snap/USM --- > snap's > snap/US 49772c45178,45179 < snarl/USDGM --- > snarl's > snarl/USDG 49843c45250,45251 < snowboard/MDRSZG --- > snowblower/MS > snowboard/ZGMDRS 49857,49858d45264 < snowplough < snowploughs 49873d45278 < snuffly/RT 49881c45286 < so/M --- > so 49891d45295 < soaring/Y 49913,49914d45316 < sociobiology < sociocultural 49917,49918d45318 < sociolinguistic/S < sociolinguists 49920c45320 < sociologist/MS --- > sociologist/SM 49939d45338 < sofabed/SM 49956d45354 < soh 49958a45357,45358 > soigné > soignée 49961a45362 > soirée/SM 49969c45370 < sold/UR --- > sold 49979c45380 < solemnify/GDS --- > solemnify/DSG 49985d45385 < solenoidal 49990c45390 < solicitous/YP --- > solicitous/PY 50002c45402 < soliloquize/GDS --- > soliloquize/DSG 50004,50005c45404 < solipsism/MS < solipsist/S --- > solipsism/M 50010c45409 < solitude/SM --- > solitude/M 50016c45415,45416 < solute/XNM --- > solute's > solute/AXN 50018c45418 < solution/EAM --- > solution's/AE 50020c45420 < solve/ARZBGSD --- > solve/EADSG 50024c45424 < solver/M --- > solver/SM 50028c45428,45429 < sombre --- > sombre/PY > sombreness/M 50036c45437 < somersault/MDSG --- > somersault/MDGS 50045c45446 < sommelier/SM --- > sommelier/MS 50060c45461 < songwriter/MS --- > songwriter/SM 50063d45463 < sonically 50066d45465 < sonofabitch/! 50068,50069c45467,45468 < sonority/SM < sonorous/PY --- > sonority/M > sonorous/YP 50073d45471 < soonish 50079c45477 < soothsayer/SM --- > soothsayer/MS 50114c45512 < sorrowful/PY --- > sorrowful/YP 50119d45516 < sortable 50128d45524 < soubriquet/SM 50129a45526 > soufflé/SM 50134c45531 < soul/MDS --- > soul/MS 50137a45535 > soulmate/S 50138a45537,45538 > soundalike/S > soundbar/S 50140c45540,45541 < soundboard/SM --- > soundboard/MS > soundcheck/S 50145c45546 < soundproof/DGS --- > soundproof/GDS 50146a45548 > soundscape/S 50150a45553 > soupçon/MS 50153d45555 < sourceless 50173c45575 < southwest/MRZ --- > southwest/ZMR 50181c45583,45584 < sow/ASGDM --- > sow's > sow/ASGD 50185d45587 < soya/M 50189c45591 < space/DRSMZGJ --- > space/DRSMZG 50191c45593 < spaceflight/SM --- > spaceflight/MS 50202a45605,45606 > spacier > spaciest 50205c45609 < spacious/PY --- > spacious/YP 50207d45610 < spacy/RTP 50215,50216c45618 < spam/S < spamblock/S --- > spam/MS 50222d45623 < spandrels 50226c45627 < spank/SMDRGJ --- > spank/SMDGJ 50228c45629 < spanned/U --- > spanned 50239d45639 < sparkling/Y 50264,50265c45664 < speak/SRZGBJ < speakable/U --- > speak/SRZGJ 50270a45670 > speargun 50274c45674 < special/SPMRY --- > special/SMY 50284,50285c45684 < specifiably < specific/PMS --- > specific/MS 50289c45688 < specified/UA --- > specified/U 50299c45698 < spectacular/SMY --- > spectacular/MYS 50305,50312c45704,45705 < spectrogram < spectrograph < spectrometer/SM < spectrometric < spectrometry < spectrophotometer < spectrophotometry < spectroscope/SM --- > spectrometer/MS > spectroscope/MS 50314d45706 < spectroscopically 50317,50318c45709 < specular < speculate/XDSGNV --- > speculate/DSXGNV 50322d45712 < speculum 50326c45716 < speechless/PY --- > speechless/YP 50344,50345c45734,45735 < spell/BJSMDRZG < spellbind/RZGS --- > spell/JSMDRZG > spellbind/ZGRS 50348c45738,45739 < spellchecker/S --- > spellcheck/DRZGS > spellchecker/M 50350d45740 < spelled 50365c45755 < spermicide/SM --- > spermicide/MS 50379c45769 < spick/S! --- > spick/S 50384c45774 < spidery/RT --- > spidery 50389d45778 < spik/S! 50393c45782 < spill/SMDRG --- > spill/SMDG 50402d45790 < spindrift 50419c45807,45808 < spire/IFASM --- > spire's > spire/IFAS 50421c45810,45811 < spirit/ISGDM --- > spirit's > spirit/ISGD 50431c45821 < spiry/RT --- > spiry 50460a45851 > splenectomy 50470,50471d45860 < splittable < splitter/S 50479c45868,45869 < spoil/CSDRZGM --- > spoil's > spoil/CSDRZG 50486d45875 < spokeshave/S 50490c45879 < spokesperson/SM --- > spokesperson/MS 50500c45889 < sponsorship/MS --- > sponsorship/M 50537c45926 < spotlight/SGMD --- > spotlight/GSMD 50552c45941,45942 < spray/ASDGM --- > spray's > spray/ASDG 50557c45947 < spreadsheet/SM --- > spreadsheet/MS 50563,50564c45953,45954 < sprightly/RPT < spring/GSMR --- > sprightly/RTP > spring/GSM 50590d45979 < spumone/M 50592c45981 < spumy/RT --- > spumy 50598c45987 < spurious/YP --- > spurious/PY 50610d45998 < spyhole 50619d46006 < squaddie/S 50624c46011 < squally/TR --- > squally 50657c46044 < squelchy/RT --- > squelchy 50663c46050 < squiggly/RT --- > squiggly 50671a46059 > sriracha 50679d46066 < stabilizability 50689c46076 < stack/SMDRG --- > stack/SMDG 50691c46078,46079 < staff/ASDGM --- > staff's > staff/ASDG 50694d46081 < staffroom 50713c46100 < stain/SMDRG --- > stain/SMDG 50721c46108 < stakeholder/SM --- > stakeholder/MS 50724c46111 < stalagmite/SM --- > stalagmite/MS 50731c46118,46119 < stall/SDGM --- > stall's > stall/ISDG 50740c46128 < stamp/SMDRJZG --- > stamp/SMDRZG 50749,50750c46137,46138 < standardization/SM < standardize/GDS --- > standardization/M > standardize/DSG 50761c46149 < standstill/SM --- > standstill/MS 50765d46152 < stapes 50773a46161 > starburst/S 50800a46189 > startup/MS 50803c46192 < starveling/SM --- > starveling/MS 50811c46200 < statehouse/SM --- > statehouse/MS 50829c46218 < statical/Y --- > statically 50837,50838c46226 < statistician/MS < stator/S --- > statistician/SM 50850c46238 < stave/DMG --- > stave/DSMG 50862c46250 < steal/SMRHG --- > steal/SMHG 50866c46254 < stealthy/TRP --- > stealthy/TPR 50870c46258 < steamfitter/MS --- > steamfitter/SM 50882,50883c46270 < steelwork/RSZ < steelworker/M --- > steelworker/SM 50890,50891c46277,46278 < steeplechase/MRS < steeplejack/MS --- > steeplechase/MS > steeplejack/SM 50902d46288 < stellated 50911c46297 < stenographer/MS --- > stenographer/SM 50914c46300,46301 < stent/MS --- > stenosis > stent/SM 50917c46304 < stepbrother/MS --- > stepbrother/SM 50919,50921c46306,46309 < stepchildren < stepdaughter/MS < stepfather/MS --- > stepchildren/M > stepdad/MS > stepdaughter/SM > stepfather/SM 50922a46311 > stepmom/MS 50927,50928c46316,46317 < steppingstone/MS < stepsister/SM --- > steppingstone/SM > stepsister/MS 50930,50931d46318 < stepwise < steradians 50933d46319 < stereographic 50937,50938d46322 < stereoscopically < stereoscopy 50940c46324 < stereotypical/Y --- > stereotypical 50943c46327 < sterilization/MS --- > sterilization/SM 50945d46328 < sterilized/U 50955c46338 < stethoscope/SM --- > stethoscope/MS 50968,50969c46351 < sticking/U < stickleback/MS --- > stickleback/SM 50985c46367 < stigmatize/DSG --- > stigmatize/GDS 50988c46370,46371 < still/ITGSDM --- > still's > still/ITGSD 50998d46380 < stimulated/U 51000,51001d46381 < stimulator < stimulatory 51022c46402 < stirred/U --- > stirred 51026c46406,46407 < stitch/ADSGM --- > stitch's > stitch/ADSG 51031c46412,46413 < stock/AGSDM --- > stock's > stock/AGSD 51041c46423 < stocking/SMD --- > stocking/SM 51066d46447 < stoma 51071d46451 < stomata 51073,51074c46453 < stone/DSMG < stoneless --- > stone/DRSMZG 51075a46455 > stoner/M 51080d46459 < stoney 51090c46469,46470 < stop/USM --- > stop's > stop/US 51094d46473 < stopoff 51104,51107c46483,46487 < store/ADSGM < storefront/SM < storehouse/SM < storekeeper/MS --- > store's > store/ADSG > storefront/MS > storehouse/MS > storekeeper/SM 51110c46490 < storm/ZGSMDR --- > storm/GSMD 51113d46492 < stormtroopers 51116c46495 < storyboard/SM --- > storyboard/MS 51118,51119c46497 < storyline < storyteller/SM --- > storyteller/MS 51136c46514 < straight/SXTPMNRY --- > straight/SPXTMNRY 51141c46519 < straightforward/SYP --- > straightforward/YPS 51143d46520 < straightjacket/SM 51146c46523,46524 < strain/FADSGM --- > strain's > strain/FADSG 51150c46528 < straitjacket/SMDG --- > straitjacket/SGMD 51159c46537 < strangulate/DSGN --- > strangulate/GNDS 51161c46539,46540 < strap/USM --- > strap's > strap/US 51170c46549 < strategist/MS --- > strategist/SM 51175,51177c46554 < stratigraphic < stratigraphical < stratosphere/MS --- > stratosphere/SM 51179d46555 < stratospherically 51190c46566 < streamline/GDS --- > streamline/DSG 51194,51195c46570,46571 < streetlight/MS < streetwalker/MS --- > streetlight/SM > streetwalker/SM 51198c46574 < strengthen/AGSD --- > strengthen/AGDS 51210c46586 < stressful/P --- > stressful 51212,51213d46587 < stretchability < stretchable/U 51216c46590 < stretchy/TRP --- > stretchy/TR 51228c46602 < stride/MGRS --- > stride/MGS 51234c46608 < strikebreaker/MS --- > strikebreaker/SM 51254c46628 < stripy/RT --- > stripy 51264d46637 < stromatolites 51266d46638 < strongbow 51269d46640 < strongish 51286c46657,46658 < structure/AGDSM --- > structure's > structure/AGDS 51288d46659 < structureless 51298d46668 < strutter 51305c46675 < stubbly/TR --- > stubbly 51320d46689 < studier/S 51322c46691 < studious/YP --- > studious/PY 51325,51326c46694,46696 < study/AGDSM < stuff/GSMDR --- > study's > study/AGDS > stuff/GSMD 51335d46704 < stumbling/Y 51349d46717 < stupefying/Y 51362c46730,46731 < style/ADSGM --- > style's > style/ADSG 51369d46737 < stylization 51372c46740 < stymie/M --- > stymie/MDS 51374d46741 < stymy/DSM 51376d46742 < styrene 51387c46753 < subbasement/MS --- > subbasement/SM 51392,51393c46758 < subclass/S < subclauses --- > subclass 51401,51403c46766,46767 < subcontractor/SM < subcultural < subculture/SM --- > subcontractor/MS > subculture/MS 51406,51408c46770,46771 < subdivision/MS < subducted < subduction --- > subdivision/SM > subdominant 51410d46772 < subdued/U 51415d46776 < subharmonic/S 51427,51428c46788 < subjunctive/MS < sublayer --- > subjunctive/SM 51438c46798 < sublunary --- > sublingual 51448c46808,46809 < submission/ASM --- > submission's/A > submission/MS 51452d46812 < submittable 51454c46814 < submitter/S --- > submitter 51457d46816 < suboptimal 51460c46819 < subordinate/MGNDS --- > subordinate/DSMGN 51464c46823 < subpena/GMDS --- > subparagraph 51466a46826 > subprime 51469c46829 < subroutine/MS --- > subroutine/SM 51471c46831 < subscriber/SM --- > subscriber/MS 51473c46833 < subscription/SM --- > subscription/MS 51485d46844 < subsidized/U 51492c46851 < subspace/S --- > subspace 51497c46856 < substantiate/XGNDS --- > substantiate/GNDSX 51503,51504c46862 < substitute/MGNBXDS < substituted/U --- > substitute/XMGNDS 51510a46869 > subsumption/S 51523c46882 < subtly/U --- > subtly 51526c46885 < subtract/GVSD --- > subtract/GSD 51528d46886 < subtractive/Y 51533,51534d46890 < subtype/S < subunit/S 51538d46893 < suburbanization 51550c46905 < succession/MS --- > succession/SM 51565c46920 < suck/MDRZGSB --- > suck/MDRZGS 51571d46925 < sud/S 51590d46943 < suffocating/Y 51594c46947 < suffragette/MS --- > suffragette/SM 51600c46953 < sugarcoat/DGS --- > sugarcoat/GDS 51604c46957 < suggest/ZGVSDR --- > suggest/GVSDR 51608c46961 < suggestive/PY --- > suggestive/YP 51610,51611c46963 < sugillate < suicidal/Y --- > suicidal 51614d46965 < suitabilities 51616d46966 < suitable/UP 51627a46978 > sulfonamides 51639,51640d46989 < sulphate/S < sulphide/S 51649,51651d46997 < sumach/M < summability < summable 51653c46999 < summarize/ZGDRS --- > summarize/GDS 51659c47005 < summerhouse/MS --- > summerhouse/SM 51661c47007 < summery/RT --- > summery 51665c47011 < summon/JDRSZG --- > summon/DRSZG 51685d47030 < suncream 51716d47060 < sunspots/S 51725c47069 < superabundance/SM --- > superabundance/MS 51738d47081 < supercomputing 51743,51745d47085 < supercooled < supercooling < superdense 51752,51754c47092,47093 < superfix < superfluity/SM < superfluous/PY --- > superfluity/M > superfluous/YP 51758d47096 < superheat/D 51761c47099 < superhighway/MS --- > superhighway/SM 51763c47101 < superimpose/DSG --- > superimpose/GDS 51765c47103 < superintend/SGD --- > superintend/DSG 51771c47109 < superlative/MYS --- > superlative/SMY 51773c47111 < supermarket/MS --- > supermarket/SM 51775c47113 < supermodel/S --- > supermodel/SM 51778,51779c47116 < supernatant < supernatural/YS --- > supernatural/SY 51783d47119 < superordinate 51785,51786c47121,47122 < superposition/SM < superpower/MS --- > superposition/M > superpower/SM 51792a47129 > supersize/GDS 51794d47130 < supersonically 51797c47133 < superstition/SM --- > superstition/MS 51799,51801c47135,47137 < superstore/SM < superstructure/SM < supertanker/SM --- > superstore/MS > superstructure/MS > supertanker/MS 51805c47141 < supervise/GNXDS --- > supervise/XGNDS 51808c47144 < supervisor/SM --- > supervisor/MS 51819c47155 < supplement/GMDS --- > supplement/MDGS 51829c47165 < supply/ZGXDRSMN --- > supply/ZGDRSMXN 51831,51832c47167 < supportability < supportable/IU --- > supportable/UI 51837c47172 < supposition/SM --- > supposition/MS 51839c47174 < suppress/GVDS --- > suppress/GDS 51841d47175 < suppressed/U 51844c47178 < suppressor/MS --- > suppressor/SM 51849c47183 < supremacist/SM --- > supremacist/MS 51851,51852c47185 < supremal < supreme/YTR --- > supreme/Y 51858d47190 < surd 51865,51868c47197,47199 < surface/AGDSM < surfaced/U < surfactant/S < surfboard/MDGS --- > surface's > surface/AGDS > surfboard/MDSG 51876d47206 < surlily 51890d47219 < surprised/U 51897,51899c47226,47227 < surreality < surrender/GMDS < surreptitious/YP --- > surrender/MDSG > surreptitious/PY 51910c47238,47239 < survey/ADGSM --- > survey's > survey/ADGS 51913,51914d47241 < survivability < survivable/U 51916c47243 < survivalist/MS --- > survivalist/SM 51935d47261 < sustainably 51952c47278 < swallow/GSMDR --- > swallow/GSMD 51957c47283 < swampland/MS --- > swampland/M 51969d47294 < swappable/U 51971d47295 < swapper/S 51997d47320 < sweatily 52000c47323 < sweatshirt/MS --- > sweatshirt/SM 52005c47328 < sweep/ZGSMRBJ --- > sweep/ZGSMRJ 52009d47331 < sweepstake/SM 52019c47341 < sweetheart/MS --- > sweetheart/SM 52024d47345 < sweetshop 52031a47353 > swerving/U 52053c47375 < swirly/RT --- > swirly 52055d47376 < swishy 52057,52059c47378,47380 < switchback/SM < switchblade/MS < switchboard/MS --- > switchback/MS > switchblade/SM > switchboard/SM 52061,52062d47381 < switchgear < switchover 52067,52069d47385 < swob/MS < swobbed < swobbing 52074,52076d47389 < swop/MS < swopped < swopping 52096,52097d47408 < sycophantically < syllabary 52100c47411 < syllabicate/DSGN --- > syllabicate/GNDS 52114d47424 < symbiont 52123d47432 < symbolist 52126c47435 < symmetric --- > symmetric/Y 52128,52129d47436 < symmetrization < symmetrizing 52138d47444 < symphonists 52144,52146c47450 < symptomless < syn < synagog/MS --- > syn/H 52152c47456 < synch/GMDS --- > synches 52154,52155c47458,47459 < synchronization/MS < synchronize/ADSG --- > synchronization/SM > synchronize/GDS 52157,52158d47460 < synchrony < synchrotron 52176,52177c47478 < synonymic < synonymous/Y --- > synonymous 52181d47481 < synopsizes 52182a47483 > synovial 52186c47487 < synthase/MS --- > synthase/SM 52192a47494 > synths 52199c47501 < sysop/MS --- > sysop/SM 52208a47511 > séance/SM 52226c47529 < tablespoonful/MS --- > tablespoonful/SM 52233d47535 < tabu/GMDS 52242c47544 < tachyon/S --- > tachyon 52264d47565 < tactual 52271c47572 < tagged/U --- > tagged 52284c47585 < tailless/P --- > tailless 52286c47587 < tailor/SGBMD --- > tailor/SGMD 52290d47590 < tailplane 52296d47595 < takeable 52308c47607 < talebearer/SM --- > talebearer/MS 52311d47609 < talentless 52315c47613 < talkative/YP --- > talkative/PY 52360c47658,47659 < tangle/UDSGM --- > tangle's > tangle/UDSG 52371c47670 < tannin/SM --- > tannin/M 52399c47698 < tarantella/SM --- > tarantella/MS 52432a47732 > taser/GMDS 52453c47753 < tatterdemalion/SM --- > tatterdemalion/MS 52476d47775 < taverna/S 52484d47782 < taxed/U 52488c47786 < taxidermist/MS --- > taxidermist/SM 52491d47788 < taxing/U 52511d47807 < teacloth 52517c47813 < tealeaves --- > tealight/MS 52526c47822 < tearful/PY --- > tearful/Y 52530,52531c47826 < tearjerker/SM < tearless --- > tearjerker/MS 52537d47831 < teashop/S 52540c47834 < teaspoonful/MS --- > teaspoonful/SM 52543,52544d47836 < teazel/S < teazle/S 52550c47842 < technician/MS --- > technician/SM 52553a47846 > technobabble 52560d47852 < technophiles 52562,52563d47853 < technophobia < technophobic 52566d47855 < tectonically 52577c47866 < teenage/DRZ --- > teenage/RZ 52579d47867 < teensy/RT 52586d47873 < teethmarks 52594,52595c47881,47882 < telecom/MS < telecommunication/SM --- > telecom/M > telecommunication/MS 52597c47884 < telecommute/DRSZG --- > telecommute/ZGDRS 52600d47886 < telecoms 52632c47918 < teleport/SGD --- > teleport/DSG 52634c47920 < teleprinter/SM --- > teleprinter/MS 52646c47932 < televangelist/SM --- > televangelist/MS 52649d47934 < televisual 52663c47948 < temper/ESMD --- > temper/MDG 52670,52672c47955 < temperature/MS < tempered/U < tempering --- > temperature/SM 52676c47959,47961 < template/SM --- > tempi > template's > template/S 52686c47971 < temptation/SM --- > temptation/MS 52703c47988 < tend/IEFDGS --- > tend/IFEDGS 52709,52710c47994,47995 < tenderfoot/SM < tenderhearted/YP --- > tenderfoot/MS > tenderhearted/PY 52725c48010 < tenon/SM --- > tenon/SMDG 52733,52734d48017 < tensional < tensioned 52753c48036 < terabit/MS --- > terabit/SM 52759c48042 < tercentennial/MS --- > tercentennial/SM 52766,52767c48049 < terminated/U < termination/CMS --- > termination/CSM 52776d48057 < terpsichorean 52780d48060 < terraform/D 52785c48065 < terrestrial/MYS --- > terrestrial/SMY 52795c48075 < territorial/SMY --- > territorial/MS 52806,52807c48086,48087 < tertiary/S < tessellate/XDSGN --- > tertiary > tessellate/DSXGN 52809,52812c48089,48091 < tesseral < test/AKFCDGSM < testability < testable/UF --- > test's/AFK > test/AKFCDGS > testable/CF 52819,52820d48097 < testbed/S < testcard 52823c48100 < tester/KMS --- > tester/KSM 52830c48107 < testimonial/SM --- > testimonial/MS 52836c48113 < testsuite/MS --- > testsuite/SM 52842d48118 < tethered/U 52844d48119 < tetrachloride 52847,52848c48122,48123 < tetrahedron/SM < tetrameter/MS --- > tetrahedron/MS > tetrameter/SM 52851c48126,48127 < textbox/SM --- > textbox/MS > texted 52852a48129 > texting 52854,52856c48131,48132 < textural/Y < texture/MDS < textured/U --- > textural > texture/MGDS 52865,52867c48141 < thankful/PY < thankfuller < thankfullest --- > thankful/YP 52871c48145 < thanksgiving/MS --- > thanksgiving/SM 52876d48149 < thaumaturge 52892d48164 < themas 52906d48177 < theologists 52911c48182 < theoretician/MS --- > theoretician/SM 52917c48188 < theosophist/MS --- > theosophist/SM 52934c48205 < theremin/MS --- > theremin/SM 52939d48209 < thereunder 52946,52948d48215 < thermistor/S < thermochemical < thermocouple/S 52950d48216 < thermodynamical/Y 52952,52954c48218 < thermoelectric < thermoluminescence < thermometer/SM --- > thermometer/MS 52957,52959c48221 < thermophile/S < thermophilic < thermoplastic/MS --- > thermoplastic/SM 52976d48237 < thiamin/M 52991c48252 < thievish/P --- > thievish 52996c48257 < thimbleful/MS --- > thimbleful/SM 53008c48269 < thinking/M --- > thinking's 53014d48274 < thinnish 53048c48308 < thoughtful/PY --- > thoughtful/YP 53073d48332 < threepenny 53099a48359 > thrombolytic 53104c48364,48365 < throne/CDSM --- > throne's > throne/S 53111c48372 < throughway/SM --- > throughway/MS 53117d48377 < throwout 53123c48383 < thrust/ZGSMR --- > thrust/GSM 53140,53142c48400,48402 < thunderbolt/MS < thunderclap/MS < thundercloud/SM --- > thunderbolt/SM > thunderclap/SM > thundercloud/MS 53144,53145c48404 < thunderflashes < thunderhead/MS --- > thunderhead/SM 53148c48407 < thunderstorm/MS --- > thunderstorm/SM 53160d48418 < thyristor/S 53176c48434 < ticklish/PY --- > ticklish/YP 53188d48445 < tideless 53196c48453,48454 < tie/AUSDM --- > tie's > tie/AUSD 53214d48471 < tike/MS 53217c48474 < tile/MZGJDRS --- > tile/MZGDRS 53220c48477,48478 < till/EDRZGSM --- > till's > till/EDRZGS 53225c48483 < timber/SMD --- > timber/SMDG 53227c48485 < timberline/SM --- > timberline/MS 53231d48488 < timebase 53243c48500 < timeserver/MS --- > timeserver/SM 53246,53247d48502 < timestamped < timestamps 53250c48505 < timezone/S --- > timezone 53255c48510 < timorous/YP --- > timorous/PY 53271d48525 < tingly/RT 53276d48529 < tinkly 53278d48530 < tinnily 53289c48541 < tintinnabulation/SM --- > tintinnabulation/MS 53294d48545 < tipi/MS 53310c48561,48563 < tire/AGDSM --- > tiramisu/MS > tire's > tire/AGDS 53313c48566 < tireless/PY --- > tireless/YP 53317d48569 < tiro/M 53319c48571 < tit/SZMR --- > tit/SM 53322d48573 < titanically 53324d48574 < titbit/SM 53336,53338c48586,48587 < titled/UA < titleholder/SM < titling/A --- > titled/U > titleholder/MS 53342,53343d48590 < titrated < titration 53345c48592,48593 < tittivate/DSG --- > tittivate/DSGN > tittivation/M 53355,53356d48602 < toadded < toadding 53362c48608 < toastmaster/MS --- > toastmaster/SM 53366c48612 < tobacconist/MS --- > tobacconist/SM 53378d48623 < toeclip/S 53385d48629 < toffy/SM 53389d48632 < toge 53439c48682,48683 < tone/IZGDRSM --- > tone's > tone/IZGDRS 53458,53459c48702,48704 < tool/ADGSM < toolbar/MS --- > tool's > tool/ADGS > toolbar/SM 53463d48707 < toolmaking 53471,53472c48715 < toothmarks < toothpaste/MS --- > toothpaste/SM 53481c48724 < topdressing/MS --- > topdressing/SM 53494c48737 < topographer/MS --- > topographer/SM 53499,53500c48742 < topologist/S < topology/S --- > topology 53516d48757 < torchlit 53519,53521c48760 < tori < torment/SMDRZG < tormenter/M --- > torment/SMDG 53527,53528d48765 < toroid < toroidal 53537c48774 < torrid/RYPT --- > torrid/YP 53540,53541c48777 < tors/S < torsion/SM --- > torsion/M 53544c48780,48781 < tort/FEASM --- > tort's > tort/EFAS 53546c48783 < tortellini/SM --- > tortellini/M 53549c48786 < tortoiseshell/MS --- > tortoiseshell/SM 53560c48797 < tot/SGMDR --- > tot/SGMD 53562c48799 < totalitarian/MS --- > totalitarian/SM 53565,53566c48802 < totalizator/MS < totalizing --- > totalizator/SM 53584c48820 < touchscreen/SM --- > touchscreen/MS 53586a48823 > touché 53595d48831 < tourer/S 53601c48837 < tournament/MS --- > tournament/SM 53639,53640d48874 < toymaker < toyshop 53641a48876,48878 > trabecula > trabecular > trabecule 53643d48879 < traceability 53645d48880 < traceless 53655c48890 < trackback/MS --- > trackback/SM 53657d48891 < trackbed 53661,53662c48895,48896 < trackway/S < tract/CEKFASM --- > tract's > tract/CEKFAS 53666c48900 < traction/EFACKM --- > traction/FEACKM 53670,53671c48904 < trademark/SMDG < tradeoff/MS --- > trademark/SGMD 53693c48926 < tragical/Y --- > tragically 53700c48933 < train/ZGSMDRBJ --- > train/ZGSMDRB 53726,53727c48959 < trampoline/DSMG < trampolinist --- > trampoline/MGDS 53733c48965 < tranquilize/DRSZG --- > tranquilize/ZGDRS 53735,53736c48967 < tranquillize/DRSZG < tranquillizer/M --- > tranquillity/M 53740d48970 < transactional 53744c48974 < transcend/SGD --- > transcend/GSD 53747c48977 < transcendental/SY --- > transcendental/Y 53749c48979 < transcendentalist/MS --- > transcendentalist/SM 53754,53757c48984,48985 < transcription/MS < transcriptional < transducer/SM < transduction --- > transcription/SM > transducer/MS 53760,53762c48988,48989 < transfect/DSMG < transfer/MSB < transferability --- > transfect/SGD > transfer/MBS 53764d48990 < transferee/S 53770c48996 < transfinite/Y --- > transfinite 53772,53775c48998,48999 < transform/SMDRZGB < transformation/MS < transformational < transformed/U --- > transform/BSZGMDR > transformation/SM 53777c49001 < transfuse/DSGNX --- > transfuse/DSXGN 53779c49003 < transgender/MDS --- > transgender/SD 53781c49005 < transgene/MS --- > transgene/S 53783,53784c49007,49008 < transgress/GVDS < transgression/MS --- > transgress/GDS > transgression/SM 53786d49009 < transhipment 53790c49013 < transistor/MS --- > transistor/SM 53793c49016 < transition/MDGS --- > transition/GSMD 53795c49018 < transitive/IMYS --- > transitive/ISMY 53801c49024 < translate/BXDSGN --- > translate/DSGNBX 53804,53806c49027,49028 < translational < translator/MS < transliterate/GNXDS --- > translator/SM > transliterate/DSGNX 53807a49030 > translocation 53811c49034 < transmigrate/DSGN --- > transmigrate/GNDS 53814,53816c49037,49039 < transmission/ASM < transmissive < transmit/AS --- > transmission's/A > transmission/MS > transmit/S 53820,53822c49043,49045 < transmitted/A < transmitter/MS < transmitting/A --- > transmitted > transmitter/SM > transmitting 53824,53827c49047,49050 < transmogrify/NGDS < transmutation/MS < transmute/DSBG < transnational/SM --- > transmogrify/DSNG > transmutation/SM > transmute/BDSG > transnational/MS 53830d49052 < transonic 53836c49058 < transplant/GMDS --- > transplant/MDGS 53840,53842c49062 < transport/SZGBMDR < transportability < transportable/U --- > transport/BSZGMDR 53846,53848c49066,49067 < transposition/SM < transputer/S < transsexual/MS --- > transposition/MS > transsexual/SM 53850c49069 < transship/LS --- > transship/SL 53855c49074 < transverse/SMY --- > transverse/MYS 53864c49083 < trappable/U --- > trappable 53891c49110 < treacherous/YP --- > treacherous/PY 53897d49115 < treader 53905d49122 < treasurership 53908c49125 < treatable/U --- > treatable 53927,53928c49144 < tremble/DSJMG < trembling/Y --- > tremble/DSMG 53934c49150,49151 < trench/AIGSDM --- > trench's > trench/ADSG 53946,53947c49163 < trepanned < trepidation/SM --- > trepidation/M 53955d49170 < triadic 53960,53961d49174 < trialled < trialling 53963d49175 < triangulable 53965c49177 < triangulate/XDSGN --- > triangulate/GNDS 53969,53970c49181 < triatomic < tribal/Y --- > tribal 53977c49188 < tribulation/MS --- > tribulation/SM 53981c49192,49193 < tribute/FSM --- > tribute's > tribute/FS 53983c49195 < tricentennial/SM --- > tricentennial/MS 54002,54003c49214 < trifecta/S < triffid/S --- > trifecta/SM 54009,54010c49220 < triggest < triglyceride/SM --- > triglyceride/MS 54014d49223 < trigram/S 54018d49226 < trilingual 54035d49242 < trimodal 54044d49250 < triplane 54048c49254 < triplicate/MGNDS --- > triplicate/MGDS 54051c49257 < tripos/S --- > tripos 54061d49266 < trisector 54079c49284 < trivialization/SM --- > trivialization/M 54085c49290 < trodden/AU --- > trodden/A 54091d49295 < trollish 54093d49296 < trolly/SM 54098,54099d49300 < tronned < tronning 54109,54111c49310 < tropopause < troposphere/MS < tropospheric --- > troposphere/SM 54120,54121c49319,49320 < troublemaker/SM < troubleshoot/ZGDRS --- > troublemaker/MS > troubleshoot/DRZGS 54162c49361 < truncate/GNXDS --- > truncate/GNDS 54168d49366 < trunnion/S 54170,54171c49368 < trust/IESGDM < trusted/U --- > trust/ESGMD 54176c49373 < trustingly --- > trusting/Y 54178c49375 < trustworthy/PTR --- > trustworthy/TPR 54181c49378 < truthful/UPY --- > truthful/UYP 54182a49380 > truthiness 54184c49382,49383 < try/AGDSM --- > try's > try/AGDS 54188,54190c49387 < tsarina/MS < tsarism < tsarist/S --- > tsarists 54197d49393 < tubae 54243,54244c49439 < tumulus < tun/SZGMDRBJ --- > tun/SZGMDR 54258c49453,49454 < tuppence/S --- > tuple/S > tuppence 54275c49471 < turducken --- > turducken/SM 54278c49474 < turfy/RT --- > turfy 54289d49484 < turned/U 54334c49529 < twee/DP --- > twee 54350a49546 > twerk/SDG 54353,54354c49549,49550 < twiddle/MGDRS < twiddly/RT --- > twiddle/MGDS > twiddly 54375,54376c49571,49573 < twirly/TR < twist/USDGM --- > twirly > twist's > twist/USDG 54397a49595 > tympanic 54400c49598,49599 < type/AGDSM --- > type's > type/AGDS 54402d49600 < typed/U 54404d49601 < typeless 54407c49604 < typesetter/SM --- > typesetter/MS 54424c49621 < typographer/MS --- > typographer/SM 54428d49624 < typological/Y 54432d49627 < tyrannicide 54434c49629 < tyrannosaur/SM --- > tyrannosaur/MS 54440,54444d49634 < tyrosine < tzar/MS < tzarina/SM < tzarism < tzarist/S 54452d49641 < uglification 54457d49645 < ukelele/SM 54460c49648 < ulcerate/XDSGN --- > ulcerate/DSGN 54475c49663 < ultralight/MS --- > ultralight/SM 54478,54479c49666 < ultramontane < ultrasonic/S --- > ultrasonic 54493d49679 < umbrageous 54504d49689 < unaccountability 54506d49690 < unadaptive 54510d49693 < unambiguity 54519d49701 < unattainably 54526,54527d49707 < unbiased/Y < unbiassedly 54529a49710 > unblushing/Y 54532d49712 < unbreakability 54538d49717 < uncatalogued 54540d49718 < unchallengeable 54543d49720 < uncharismatic 54546d49722 < uncheckable 54552,54553c49728 < unclench/D < uncollimated --- > uncomfortable 54555c49730 < uncommunicative --- > uncomplaining/Y 54558d49732 < uncompromisable 54561d49734 < unconfused 54562a49736 > unconscionable 54566d49739 < uncontentious 54567a49741 > uncontroversial 54570,54572c49744 < uncouth/YP < uncreative < uncross/B --- > uncouth/Y 54579d49750 < undead 54584c49755 < underachieve/ZGLDRS --- > underachieve/LZGDRS 54587a49759 > underappreciated 54594c49766 < undercharge/DSMG --- > undercharge/MGDS 54600c49772 < undercoat/JGSMD --- > undercoat/GJSMD 54602d49773 < undercooked 54611,54612d49781 < undereducated < underemphasis 54615c49784 < underestimate/MGNXDS --- > underestimate/DSMGNX 54617,54618c49786 < underexploited < underexpose/DSG --- > underexpose/GDS 54621c49789 < underfeed/SG --- > underfeed/GS 54625,54626c49793 < underframe < underfund/GD --- > underfunded 54633,54634c49800,49801 < undergraduate/MS < underground/SM --- > undergraduate/SM > underground/MS 54637c49804 < underhanded/YP --- > underhanded/PY 54639d49805 < underinvestment 54643c49809 < underline/MGJDS --- > underline/MGDS 54646d49811 < underloaded 54661,54662c49826 < underpayment/MS < underperformed --- > underpayment/SM 54665c49829 < underpinning/SM --- > underpinning/MS 54668,54670d49831 < underpopulation < underpowered < underpricing 54677d49837 < undersealed 54679c49839 < undersell/SG --- > undersell/GS 54686c49846 < undersign/DSG --- > undersign/DGS 54688c49848 < undersize/D --- > undersized 54691,54694d49850 < underspecification < underspecified < underspend/G < underspent 54696,54697c49852 < understand/RGSBJ < understandability --- > understand/SGBJ 54700c49855 < understate/GDSL --- > understate/DSLG 54702d49856 < understocked 54704,54708c49858,49859 < understorey < understory < understrength < understudy/DSMG < undertake/ZGRSJ --- > understudy/GDSM > undertake/ZGJRS 54717d49867 < underusing 54720c49870 < undervalue/GDS --- > undervalue/DSG 54726,54728c49876,49879 < underwhelm/SDG < underworld/SM < underwrite/RSZG --- > underwhelm/DGS > underwire/DS > underworld/MS > underwrite/ZGRS 54732c49883 < undesirable/SM --- > undesirable/MS 54734,54735d49884 < undiscerning < undisguised/Y 54740,54741d49888 < undrinkability < undroppable 54756d49902 < unergonomic 54759,54760c49905 < uneven/RYPT < unexacting --- > uneven/Y 54764c49909 < unexpected/PY --- > unexpected/YP 54774d49918 < unfetchable 54784d49927 < unfocussed 54787a49931 > unfriend/GD 54791d49934 < unfulfillable 54793d49935 < unfussy 54795c49937,49938 < ungainly/RTP --- > ungainly/RPT > ungenerous 54797d49939 < unglamorous 54808d49949 < unheroic 54816,54817d49956 < unicyclist/S < unideal 54819d49957 < unifiable 54821,54822c49959 < unifier < uniform/SMDRYTG --- > uniform/SMDYG 54827,54828d49963 < unilateralist < unimportance 54830a49966 > uninformative 54831a49968 > uninstall/BSZGDR 54833d49969 < unintellectual 54838d49973 < unintuitive 54843d49977 < unipolar 54857d49990 < universalism 54862,54863c49995 < unixism/S < unjam --- > unjust/Y 54867d49998 < unknightly 54873d50003 < unlikeable 54875d50004 < unlink/D 54882c50011 < unmanageably --- > unman/S 54884d50012 < unmannerly 54887,54888d50014 < unmeetable < unmelodious 54895,54897d50020 < unmistakeable < unmistakeably < unmnemonic 54900c50023 < unmusical/Y --- > unmusical 54903,54904d50025 < unobjectionable < unobservable 54909,54912d50029 < unoriginality < unorthodoxy < unpack/Z < unparallelled 54916d50032 < unphysical 54920,54921d50035 < unploughed < unpoetical 54924d50037 < unportable 54929d50041 < unpronounced 54931,54932d50042 < unpunctual < unpunctuality 54935d50044 < unraisable 54937,54938c50046 < unreadability < unready/TR --- > unready 54941d50048 < unreceptive 54948c50055 < unrepeated --- > unrepentant 54951d50057 < unresisting/Y 54953d50058 < unriddle 54959,54961c50064 < unsafe/T < unsaleable < unsatisfactory/P --- > unsafe/YTR 54963,54966c50066 < unseal/B < unsearchable < unseasonal < unseaworthiness --- > unscathed 54969,54971c50069 < unseen/MS < unselfconscious/Y < unsellable --- > unseen/M 54973a50072 > unshakable 54974a50074 > unshakeable 54975a50076 > unshockable 54977,54978d50077 < unshrinking < unsighted 54980,54981c50079,50080 < unsightly/TP < unskilful --- > unsightly/PT > unsmiling 54984c50083 < unsophistication --- > unsold 54985a50085 > unspeakable 54989d50088 < unspoilt 54991,54994c50090,50091 < unstable/RT < unstack/DG < unstamped < unsteady/PTR --- > unstable > unsteady/TRP 54996d50092 < unstoppably 55000c50096,50097 < unsure/P --- > unsuitable > unsure 55002d50098 < unswerving/Y 55005d50100 < untenability 55008d50102 < unthoughtful 55013c50107 < untouchable/SM --- > untouchable/MS 55017d50110 < unusably 55020d50112 < unvarying/Y 55022d50113 < unwarrantably 55023a50115 > unwavering 55025d50116 < unwedge 55030,55031d50120 < unwind/B < unwisdom 55035c50124 < unwound/D --- > unwound 55045d50133 < updatability 55050,55051c50138 < upgrade/MGDSBJ < upgradeable --- > upgrade/MGDS 55057,55058c50144,50145 < upholster/ASDG < upholsterer/SM --- > upholster/ASGD > upholsterer/MS 55080d50166 < uprate/DG 55113d50198 < upwelling 55122c50207 < urbanologist/SM --- > urbanologist/MS 55133,55134c50218 < urethritis < urge/MGDSJ --- > urge/MGDS 55156,55157d50239 < useability/M < useable 55168c50250,50251 < usual/UYM --- > usual's > usual/UY 55187c50270 < utter/SDRYTG --- > utter/SDYG 55189a50273 > uveitis 55200c50284 < vacationist/MS --- > vacationist/SM 55215c50299 < vagina/MS --- > vagina/SM 55221a50306 > vagus 55228c50313 < valediction/SM --- > valediction/MS 55241d50325 < validated/U 55243a50328 > validator/S 55253c50338,50339 < value/CAGSDM --- > value's > value/CAGSD 55271d50356 < vanishing/Y 55276d50360 < vanquished/U 55278a50363 > vape/GDS 55287c50372 < vaporware/S --- > vaporware 55295,55296c50380,50381 < variant/ISM < variate/NXS --- > variant/MS > variate/NX 55298d50382 < variational 55312a50397 > varying/U 55315a50401 > vasoconstriction 55333,55334d50418 < vectorization < vectorized 55338c50422 < veg/M --- > veg/SM 55339a50424 > veganism 55347d50431 < vegetational 55358c50442,50443 < veil/UDGSM --- > veil's > veil/UDGS 55363d50447 < veldt/SM 55368d50451 < velor 55371,55373c50454,50456 < velvet/MS < velveteen/MS < velvety/TR --- > velvet/M > velveteen/M > velvety 55377,55378c50460 < vend/DRZGS < vender/KM --- > vend/DGS 55388d50469 < venetian 55398c50479,50480 < vent/DGSM --- > vent's > vent/DGS 55400d50481 < ventilated/U 55402,55403c50483,50484 < ventilator/MS < ventral/Y --- > ventilator/SM > ventral 55410c50491 < venturesome/YP --- > venturesome/PY 55412c50493 < venturous/YP --- > venturous/PY 55427c50508 < verbose/YP --- > verbose/Y 55432c50513 < verdigris/MDSG --- > verdigris/GMDS 55434c50515,50516 < verge/FDSGM --- > verge's > verge/FDSG 55436d50517 < verifiability 55440c50521 < verify/DRSNXZG --- > verify/DSNG 55450d50530 < vermillion/M 55454c50534 < vernacular/SM --- > vernacular/MS 55459a50540 > versa 55464d50544 < versicle 55467c50547 < versify/NZGDRS --- > versify/ZGNDRS 55468a50549,50550 > versioned > versioning 55470a50553 > vert/A 55488c50571,50572 < vest/ILDGSM --- > vest's > vest/ILDGS 55490d50573 < vestibular 55502c50585 < veterinarian/SM --- > veterinarian/MS 55529d50611 < vibrational/Y 55546c50628 < vicinity/SM --- > vicinity/M 55553d50634 < victimless 55558a50640 > vicuña/MS 55564d50645 < videodisk/MS 55567c50648 < videotex/S --- > videotex 55569c50650 < view/AMDRBSZG --- > view/AMDRSZG 55572c50653 < viewfinder/MS --- > viewfinder/SM 55583c50664 < vignettist/SM --- > vignettist/MS 55599d50679 < ville 55607d50686 < vindaloos 55614c50693 < vinegar/SM --- > vinegar/M 55636c50715 < violoncello/SM --- > violoncello/MS 55649c50728 < virologist/MS --- > virologist/SM 55651a50731 > virtualization 55653d50732 < virtuosic 55665,55666c50744 < viscid/I < viscometer --- > viscid 55675c50753 < visibility/ISM --- > visibility/IM 55680,55681c50758,50759 < visit/ASGDM < visitable/U --- > visit's > visit/ASGD 55684d50761 < visited/U 55689c50766 < visualization/MS --- > visualization/SM 55703c50780 < viticulturist/SM --- > viticulturist/MS 55734,55735d50810 < vizir/SM < vizor/SM 55749c50824 < vociferous/PY --- > vociferous/YP 55752d50826 < voe/S 55758a50833 > voicemail/M 55762,55763c50837,50839 < vol < volatile/S --- > voilà > vol/S > volatile 55767,55768d50842 < volcanically < volcanism 55778c50852 < volleyball/SM --- > volleyball/MS 55787,55788c50861 < volumetric < voluminous/PY --- > voluminous/YP 55806d50878 < vorticity 55808c50880,50881 < vote/CGVDSM --- > vote's > vote/CGVDS 55821d50893 < vulcanism 55824d50895 < vulcanologist 55840a50912 > vuvuzela/MS 55844c50916 < wackes --- > wack/RTS 55872d50943 < waggly 55881c50952 < wainscot/SMDGJ --- > wainscot/SJMDG 55883c50954,50956 < wainwright/SM --- > wainscotted > wainscotting/MS > wainwright/MS 55891d50963 < waitpeople 55904c50976 < walk/BMDRZGS --- > walk/MDRZGS 55914d50985 < walla/S 55919d50989 < wallchart 55926c50996 < wallpaper/GSMD --- > wallpaper/SMDG 55938c51008 < wanderlust/MS --- > wanderlust/SM 55951c51021 < wanton/MDRYSPG --- > wanton/MDYSPG 55954c51024 < war/SGM --- > war/SM 55964d51033 < wardship 55967,55968c51036 < warehouseman < warez/S --- > warez 55989,55990c51057 < warned/U < warning/MY --- > warning/M 56010c51077,51078 < wash/BJMDRSZG --- > wasabi > wash/BMDRSZG 56017d51084 < washday 56037c51104 < wastebasket/SM --- > wastebasket/MS 56042a51110 > wastewater 56048d51115 < watched/U 56050c51117 < watchful/PY --- > watchful/YP 56057c51124 < watchtower/MS --- > watchtower/SM 56061a51129 > waterboard/DJSG 56064,56065c51132 < watercolorists < watercourse/MS --- > watercourse/SM 56073d51139 < waterless 56077,56078c51143 < waterman < watermark/MDSG --- > watermark/MDGS 56082c51147 < waterproof/SGMD --- > waterproof/SMDG 56087c51152 < waterspout/MS --- > waterspout/SM 56090c51155 < waterwheel/MS --- > waterwheel/SM 56098,56100c51163 < waveform/S < wavefront < waveguide/S --- > waveform 56107,56108c51170 < wavering/UY < wavily --- > wavering/Y 56123,56124d51184 < wayleave/S < waymarked 56140d51199 < weakly/RT 56147d51205 < weanling 56149c51207 < weaponize/DSG --- > weaponize/GDS 56160d51217 < wearying/Y 56163,56164c51220,51221 < weatherboard/GS < weathercock/SM --- > weatherboard/SG > weathercock/MS 56170,56171c51227,51228 < weatherperson/SM < weatherproof/SGD --- > weatherperson/MS > weatherproof/GSD 56182c51239 < webcast/MS --- > webcast/SMG 56185a51243,51244 > webinar/SM > webisode/MS 56189c51248 < webpage/MS --- > webpage/SM 56203d51261 < weeds/S 56221c51279,51280 < weigh/AGDM --- > weigh's > weigh/AGD 56230c51289 < weightlifter/SM --- > weightlifter/MS 56238d51296 < welch/GDS 56255c51313 < welterweight/MS --- > welterweight/SM 56278,56279d51335 < wetsuit/S < wettable 56286d51341 < whacky/TR 56291d51345 < whales/S 56297c51351 < wharf/SM --- > wharf/M 56314,56315c51368,51369 < wheel/SMDRZG < wheelbarrow/MS --- > wheel/SMDRG > wheelbarrow/SM 56318c51372 < wheelhouse/SM --- > wheelhouse/MS 56320c51374 < wheelwright/SM --- > wheelwright/MS 56364d51417 < whimsey/MS 56382,56383c51435,51436 < whippletree/MS < whippoorwill/SM --- > whippletree/SM > whippoorwill/MS 56390,56391c51443,51445 < whirlybird/MS < whirr/SMDG --- > whirlybird/SM > whirred > whirring 56396c51450,51452 < whisper/JMDRSZG --- > whisky/SM > whiskys > whisper/MDRSZG 56402c51458 < white/SPMY --- > white/SPM 56416c51472 < whitewash/GMDS --- > whitewash/MDSG 56425a51482 > whizz/MDSG 56427,56429d51483 < whizzed < whizzes < whizzing 56437d51490 < whodunnit/SM 56465c51518 < whorehouse/SM --- > whorehouse/MS 56484,56486c51537 < wicketkeeper/S < wicketkeeping < wide/YTRSP --- > wide/YTRP 56506d51556 < wifely/TR 56513d51562 < wiggles/S 56536a51586 > wilful/P 56542d51591 < willie 56544,56545c51593 < willing/UTPY < willinger --- > willing/UPY 56549c51597 < willowy/TR --- > willowy 56561c51609,51610 < wind/UASGM --- > wind's > wind/UASG 56564c51613 < windbreak/ZSMR --- > windbreak/SZMR 56572c51621 < windflower/SM --- > windflower/MS 56575,56576c51624,51625 < winding/SM < windjammer/MS --- > winding's > windjammer/SM 56588c51637 < windshield/MS --- > windshield/SM 56603d51651 < wineskin 56607a51656 > wingnut/SM 56614c51663 < winnable --- > winnable/U 56626d51674 < wintery/RT 56631c51679,51680 < wire/AGDSM --- > wire's > wire/AGDS 56635d51683 < wirer 56646c51694 < wisecrack/GMDS --- > wisecrack/MDSG 56648d51695 < wisely/TR 56653c51700 < wishlist/MS --- > wishlist/SM 56657d51703 < wistaria/SM 56664d51709 < witchdoctor/S 56681c51726 < withstand/SG --- > withstand/GS 56695c51740 < wiz/M --- > wiz/S 56701c51746 < wobble/MGDRS --- > wobble/MGDS 56717c51762 < wolfish/Y --- > wolfish 56739c51784 < wonderful/PY --- > wonderful/YP 56749,56750c51794 < wonton/MS < woo/SZGDRY --- > woo/SZGDR 56771c51815 < woodpecker/SM --- > woodpecker/MS 56778d51821 < woodsmoke 56789c51832 < wool/MNYSX --- > wool/MNX 56792c51835 < woolie/M --- > wooliness 56795d51837 < wooly/TPRSM 56800c51842,51843 < word/AJDSGM --- > word's > word/ADSG 56805c51848 < wording/M --- > wording/SM 56812,56813c51855,51856 < work/ADJSGM < workability/U --- > work's > work/ADJSG 56825c51868 < workforce/SM --- > workforce/M 56828c51871 < working/M --- > working's 56841,56842d51883 < workpeople < workpiece/S 56849d51889 < workspace 56885c51925 < worthless/YP --- > worthless/PY 56888,56889c51928,51929 < worthy/UPRTM < wost --- > worthy's > worthy/UPRT 56906c51946,51947 < wrap/USM --- > wrap's > wrap/US 56928c51969 < wretched/PTRY --- > wretched/TPRY 56932c51973 < wriggly/RT --- > wriggly 56942,56943c51983,51984 < writ/MRSZ < write/ASBJG --- > writ/MRBJSZG > write/S 56945d51985 < writeup 56991,56992d52030 < xreffed < xreffing 57021c52059 < xylophonist/SM --- > xylophonist/MS 57031d52068 < yack/MDSG 57048c52085 < yardmaster/SM --- > yardmaster/MS 57051d52087 < yarmelke/SM 57060d52095 < yawning/Y 57073c52108 < yearning/MY --- > yearning/M 57091c52126 < yeshivah/M --- > yeshivot 57114,57115d52148 < yoghourt/SM < yoghurt/MS 57118d52150 < yogin/SM 57120c52152,52153 < yoke/UGDSM --- > yoke's > yoke/UGDS 57127d52159 < york/RZ 57161c52193 < yuppie/M --- > yuppie/MS 57163d52194 < yuppy/SM 57185,57186c52216 < zenning < zeolites --- > zeolite/S 57196,57198d52225 < zeugma < zigamorph < zigamorphs 57213c52240,52241 < zip/USM --- > zip's > zip/US 57222a52251 > zlotys 57225d52253 < zombi/SM 57228c52256,52257 < zone/AGDSM --- > zone's > zone/AGDS 57239c52268,52270 < zorch/GDS --- > zooplankton > zorch > zoster 57242d52272 < zugzwang 57247a52278,52284 > Ångström/M > éclair/SM > éclat/M > élan/M > émigré/SM > épée/MS > étude/SM diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 9,10d8 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 3,9d2 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 57,59c50 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 89c80 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 112d102 < rmdir "Contents/Resources/searchplugins/" 117d106 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < EAdq3cP+suidvz922TVTeyQXfxQ= --- > a3ZmjyK9ouwVmPbSfagDyHLtjuU= 33c33 < snBudnonqTIuHZhxbuw75UcXCgk= --- > 5FPUQjYafQZUnNSRxOn9yAG4qo8= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < 0RMHz4mUdmxW0Ke9vefuoOzRPtU= --- > 6025wgzl/3LFfHQDIn6i3lGV66Q= 229c229 < H8c74Ogi5Dca4fdA/NJauAhwRn0= --- > 9mnqpkuNL2f6pQAGpiV15eJrBDc= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 321c321 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 325c325 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 329c329 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 333c333 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 337c337 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 341c341 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 345c345 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 349c349 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 353c353 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 357c357 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 361c361 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 365c365 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 373c373 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 377c377 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 381c381 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 385c385 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 389c389,397 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 404,408c412 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 410,414c414 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > O/nBtjC7XGgBwkh40HzGTgtHeBU= 442c442 < GMUrzQwWrXkM6FNrFXiy2jShV4w= --- > 7bb9z9F4aWTe+FcDUvUNTTwH6cs= 446c446 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 450c450 < GvvbEX+dXkOyCsJq3Gjo4ny3h7A= --- > 6X6xGQjY1s9Biuz3AnHYUML4DBg= 454c454 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 604,631d603 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 660c632 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 669c641 < ebAYiG65Nm8wcHwEDZea8fL60nE= --- > d3ffPM03L1GZ+AOQMBO08cDCQjo= 678c650 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 687c659 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 696c668 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 701c673 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 705c677 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 714c686 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 723c695 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 732c704 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 741c713 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 750c722 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 759c731 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 768c740 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 777c749 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 786c758 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 795c767 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 802c774 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 806c778 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 818c790 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 822c794 < EAdq3cP+suidvz922TVTeyQXfxQ= --- > a3ZmjyK9ouwVmPbSfagDyHLtjuU= 826c798 < snBudnonqTIuHZhxbuw75UcXCgk= --- > 5FPUQjYafQZUnNSRxOn9yAG4qo8= 830c802 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 834c806 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 838c810 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 842c814 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 846c818 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 850c822 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 854c826 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 858c830 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 862c834 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 866c838 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 870c842 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 874c846 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 878c850 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 882c854 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 886c858 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 890c862 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 894c866 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 898c870 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 902c874 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 906c878 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 910c882 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 914c886 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 918c890 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 922c894 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 926c898 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 930c902 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 934c906 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 938c910 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 942c914 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 946c918 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 950c922 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 954c926 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 958c930 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 962c934 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 966c938 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 970c942 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 974c946 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 978c950 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 982c954 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 986c958 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 990c962 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 994c966 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 998c970 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1002c974 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1010c982 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1014c986 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1018c990 < 0RMHz4mUdmxW0Ke9vefuoOzRPtU= --- > 6025wgzl/3LFfHQDIn6i3lGV66Q= 1022c994 < H8c74Ogi5Dca4fdA/NJauAhwRn0= --- > 9mnqpkuNL2f6pQAGpiV15eJrBDc= 1026c998 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1030c1002 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1034c1006 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1038c1010 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1042c1014 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1046c1018 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1050c1022 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1054c1026 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1058c1030 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1062c1034 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1066c1038 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1070c1042 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1074c1046 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1078c1050 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1082c1054 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1094c1066 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1098c1070 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1106c1078 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1110c1082 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1114c1086 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1118c1090 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1122c1094 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1126c1098 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1130c1102 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1134c1106 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1138c1110 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1142c1114 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1146c1118 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1150c1122 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1154c1126 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1158c1130 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1166c1138 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1170c1142 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1174c1146 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1178c1150 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1182c1154,1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1197,1201c1177 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1203,1207c1179 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > O/nBtjC7XGgBwkh40HzGTgtHeBU= 1235c1207 < GMUrzQwWrXkM6FNrFXiy2jShV4w= --- > 7bb9z9F4aWTe+FcDUvUNTTwH6cs= 1239c1211 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1243c1215 < GvvbEX+dXkOyCsJq3Gjo4ny3h7A= --- > 6X6xGQjY1s9Biuz3AnHYUML4DBg= 1247c1219 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1397,1424d1368 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48032985 8 -rw-r--r-- 1 cltbld staff 1221 May 9 17:58 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48032984 8 -rw-r--r-- 1 cltbld staff 2284 May 9 17:58 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48032983 8 -rw-r--r-- 1 cltbld staff 1614 May 9 17:58 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48032935 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:58 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48032934 8 -rw-r--r-- 1 cltbld staff 1670 May 9 17:58 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48032933 8 -rw-r--r-- 1 cltbld staff 2453 May 9 17:58 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48032932 8 -rw-r--r-- 1 cltbld staff 2569 May 9 17:58 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48032931 8 -rw-r--r-- 1 cltbld staff 899 May 9 17:58 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48032930 8 -rw-r--r-- 1 cltbld staff 1338 May 9 17:58 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48032929 8 -rw-r--r-- 1 cltbld staff 1363 May 9 17:58 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 17:59:02-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 00:59:02 GMT Keep-Alive: timeout=5, max=895 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 17:59:02 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-AR/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-AR/thunderbird-38.8.0.complete.mar'] --2016-05-09 17:59:02-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-AR/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67831269 Connection: keep-alive Date: Tue, 10 May 2016 00:56:53 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 7EzLRow71JVth_EGjqo896xoX3JA81Lv Last-Modified: Tue, 03 May 2016 15:50:54 GMT ETag: "f4e55d0ab3682e643b29c22201c47d63" Accept-Ranges: bytes Server: AmazonS3 Age: 130 X-Cache: Hit from cloudfront Via: 1.1 aa96a51fedae85199c643eb5c8eca4e4.cloudfront.net (CloudFront) X-Amz-Cf-Id: IvK4Ac-_2x9HQGwqXS9a9z9e-YbcKTHrvVy6uiviwY474wNAErSkxQ== Length: 67831269 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 21.1M 3s 3072K ........ ........ ........ ........ ........ ........ 9% 56.3M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 97.3M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 78.6M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 44.9M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 29.5M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 45.2M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 52.4M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 43.3M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 31.4M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 47.3M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 28.0M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 46.3M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 51.2M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 86.7M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 99.2M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 57.3M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 53.6M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 37.0M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 36.4M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 37.2M 0s 64512K ........ ........ ........ ... 100% 41.0M=1.5s 2016-05-09 17:59:04 (43.9 MB/s) - 'update/complete.mar' saved [67831269/67831269] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/es-AR/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/es-AR/Thunderbird 38.6.0.dmg'] --2016-05-09 17:59:06-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/es-AR/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69857264 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:59:06 GMT ETag: "e70dfdfa1c38a3986b396bd622902109" Last-Modified: Fri, 12 Feb 2016 21:49:20 GMT x-amz-replication-status: COMPLETED x-amz-version-id: S.bo4N4TnmqHfTVa9z9wkwqvaSy7cRHI X-Cache: Miss from cloudfront Via: 1.1 9767e262e4af15c8d83a726bb0f44fa5.cloudfront.net (CloudFront) X-Amz-Cf-Id: DKqt0-V8sRKId-NhiJ-LKvKg-w_vVxLL0qVNtJ4dMqZmQ0zWtGUcFw== Length: 69857264 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.75M 36s 3072K ........ ........ ........ ........ ........ ........ 9% 5.04M 23s 6144K ........ ........ ........ ........ ........ ........ 13% 15.3M 16s 9216K ........ ........ ........ ........ ........ ........ 18% 11.9M 13s 12288K ........ ........ ........ ........ ........ ........ 22% 16.1M 10s 15360K ........ ........ ........ ........ ........ ........ 27% 17.8M 8s 18432K ........ ........ ........ ........ ........ ........ 31% 18.0M 7s 21504K ........ ........ ........ ........ ........ ........ 36% 15.5M 6s 24576K ........ ........ ........ ........ ........ ........ 40% 14.6M 5s 27648K ........ ........ ........ ........ ........ ........ 45% 8.01M 5s 30720K ........ ........ ........ ........ ........ ........ 49% 12.0M 4s 33792K ........ ........ ........ ........ ........ ........ 54% 14.5M 4s 36864K ........ ........ ........ ........ ........ ........ 58% 17.8M 3s 39936K ........ ........ ........ ........ ........ ........ 63% 18.6M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 20.9M 2s 46080K ........ ........ ........ ........ ........ ........ 72% 18.1M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 22.4M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 18.7M 1s 55296K ........ ........ ........ ........ ........ ........ 85% 23.3M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 23.0M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 19.6M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 22.5M 0s 67584K ........ . 100% 20.4M=6.0s 2016-05-09 17:59:12 (11.1 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69857264/69857264] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/es-AR/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/es-AR/Thunderbird 45.1.0.dmg'] --2016-05-09 17:59:13-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/es-AR/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77209933 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:57:09 GMT ETag: "92ae2978dabf354d91e53bd1ba069fcd" Last-Modified: Mon, 09 May 2016 21:23:11 GMT x-amz-replication-status: COMPLETED x-amz-version-id: YidNX1UX3gafWbKL6zqQPLc_3X2eR8tF Age: 124 X-Cache: Hit from cloudfront Via: 1.1 373880a309382d9266a9313233b86d25.cloudfront.net (CloudFront) X-Amz-Cf-Id: Sh91xupcjWP5LpqRxqKZpC4neGTcAliCq095Fn_bFUXaBi065wf4qw== Length: 77209933 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 32.4M 2s 3072K ........ ........ ........ ........ ........ ........ 8% 67.9M 2s 6144K ........ ........ ........ ........ ........ ........ 12% 89.0M 1s 9216K ........ ........ ........ ........ ........ ........ 16% 61.6M 1s 12288K ........ ........ ........ ........ ........ ........ 20% 59.7M 1s 15360K ........ ........ ........ ........ ........ ........ 24% 42.0M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 54.7M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 9.91M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 36.6M 1s 27648K ........ ........ ........ ........ ........ ........ 40% 57.5M 1s 30720K ........ ........ ........ ........ ........ ........ 44% 52.0M 1s 33792K ........ ........ ........ ........ ........ ........ 48% 56.0M 1s 36864K ........ ........ ........ ........ ........ ........ 52% 55.6M 1s 39936K ........ ........ ........ ........ ........ ........ 57% 54.7M 1s 43008K ........ ........ ........ ........ ........ ........ 61% 54.8M 1s 46080K ........ ........ ........ ........ ........ ........ 65% 55.1M 1s 49152K ........ ........ ........ ........ ........ ........ 69% 24.3M 1s 52224K ........ ........ ........ ........ ........ ........ 73% 47.6M 0s 55296K ........ ........ ........ ........ ........ ........ 77% 80.0M 0s 58368K ........ ........ ........ ........ ........ ........ 81% 106M 0s 61440K ........ ........ ........ ........ ........ ........ 85% 65.0M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 52.0M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 61.8M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 51.4M 0s 73728K ........ ........ ........ .. 100% 32.4M=1.7s 2016-05-09 17:59:14 (44.0 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77209933/77209933] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-ar.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-es.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/mercadolibre-ar.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/drae.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/es.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/es.lproj/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo-ar.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-es.xml PREPARE ADD Contents/Resources/searchplugins/mercadolibre-ar.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/drae.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/es.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-ar.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-es.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/mercadolibre-ar.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/drae.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/es.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/es.lproj/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo-ar.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-es.xml EXECUTE ADD Contents/Resources/searchplugins/mercadolibre-ar.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/drae.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/es.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-ar.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-es.xml FINISH REMOVEFILE Contents/Resources/searchplugins/mercadolibre-ar.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/drae.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/es.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/es.lproj/ non-fatal error removing directory: Contents/Resources/es.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo-ar.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-es.xml FINISH ADD Contents/Resources/searchplugins/mercadolibre-ar.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/drae.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/es.lproj/InfoPlist.strings FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/es-AR/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/es-AR/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/es-AR/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/es-AR/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/es-AR/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/es-AR/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/es-AR/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/es-AR/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/es-AR/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/es-AR/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,9d3 < remove "Contents/Resources/searchplugins/yahoo-ar.xml" < remove "Contents/Resources/searchplugins/wikipedia-es.xml" < remove "Contents/Resources/searchplugins/mercadolibre-ar.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/drae.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 57,59c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 89c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 115d106 < rmdir "Contents/Resources/searchplugins/" 120d110 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < cXBkWE2SDQvqI4z+Qc2ae5zV3bg= --- > ULiy3JytB4Tnw1N1tnrZtLVCUgk= 221c221 < hekcd9sEOWOv2HDI4TmSYMrhAtA= --- > bJUunyeTZuz53PmHbD/5uIMa2sI= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < BM79VDfKCyeVKK2UuEHGFHD4jc4= --- > rENZJtKkmEX7LnOYuvLpd7cwD4s= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385,393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 400,408c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png < < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 410c410 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < 77dm74InMG4b1LPWCM474E4yq7U= --- > biFH9S+x5O/MrnAaiIoq7QHjYVE= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < z6D0u/2NXbYG0DXLK0ffMZ4pqZM= --- > Bt5ZyiAnsm/WexhIAAatPe5Ns6M= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,623d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/drae.xml < < AM2FRDjjINqeiQQkZGMxbEsM55E= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/mercadolibre-ar.xml < < kxCSgFHxSkopdRCAECeN9fKu3Es= < < Resources/searchplugins/wikipedia-es.xml < < QYUveJcr4yb+6xx26JpdQApjE4A= < < Resources/searchplugins/yahoo-ar.xml < < j4/ZQUZSn8GAdHZ0QnVCdnOpQPU= < 652c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 661c637 < oTjw1+x+JUUeqs0P+PjfCpeAyKA= --- > sHw/64gILOnbCsaNn6jICKrmSWE= 670c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 679c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 688c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 693c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 697c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 706c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 715c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 724c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 733c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 742c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 751c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 760c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 769c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 778c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 787c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 794c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 798c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 810c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 814c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 818c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 822c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 826c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 830c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 834c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 838c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 842c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 846c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 850c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 854c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 858c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 862c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 866c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 870c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 874c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 878c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 882c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 886c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 890c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 894c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 898c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 902c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 906c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 910c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 914c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 918c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 922c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 926c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 930c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 934c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 938c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 942c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 946c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 950c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 954c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 958c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 962c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 966c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 970c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 974c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 978c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 982c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 986c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 994c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 998c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1002c978 < cXBkWE2SDQvqI4z+Qc2ae5zV3bg= --- > ULiy3JytB4Tnw1N1tnrZtLVCUgk= 1006c982 < hekcd9sEOWOv2HDI4TmSYMrhAtA= --- > bJUunyeTZuz53PmHbD/5uIMa2sI= 1010c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1014c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1018c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1022c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1026c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1030c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1034c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1038c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1042c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1046c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1050c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1054c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1058c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1062c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1066c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1078c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1082c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1090c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1094c1070 < BM79VDfKCyeVKK2UuEHGFHD4jc4= --- > rENZJtKkmEX7LnOYuvLpd7cwD4s= 1098c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1102c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1106c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1110c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1114c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1118c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1122c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1126c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1130c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1134c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1138c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1142c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1146c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1154c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1158c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1162c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1166c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1170c1146,1154 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1185,1193c1169 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png < < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1195c1171 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1223c1199 < 77dm74InMG4b1LPWCM474E4yq7U= --- > biFH9S+x5O/MrnAaiIoq7QHjYVE= 1227c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1231c1207 < z6D0u/2NXbYG0DXLK0ffMZ4pqZM= --- > Bt5ZyiAnsm/WexhIAAatPe5Ns6M= 1235c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1385,1408d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/drae.xml < < AM2FRDjjINqeiQQkZGMxbEsM55E= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/mercadolibre-ar.xml < < kxCSgFHxSkopdRCAECeN9fKu3Es= < < Resources/searchplugins/wikipedia-es.xml < < QYUveJcr4yb+6xx26JpdQApjE4A= < < Resources/searchplugins/yahoo-ar.xml < < j4/ZQUZSn8GAdHZ0QnVCdnOpQPU= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48033734 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:00 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48033733 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:00 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48033732 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:00 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48033682 8 -rw-r--r-- 1 cltbld staff 1531 May 9 17:59 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48033681 16 -rw-r--r-- 1 cltbld staff 4293 May 9 17:59 source/Thunderbird.app/Contents/Resources/searchplugins/drae.xml 48033680 8 -rw-r--r-- 1 cltbld staff 2371 May 9 17:59 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48033679 8 -rw-r--r-- 1 cltbld staff 2683 May 9 17:59 source/Thunderbird.app/Contents/Resources/searchplugins/mercadolibre-ar.xml 48033678 8 -rw-r--r-- 1 cltbld staff 1341 May 9 17:59 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-es.xml 48033677 8 -rw-r--r-- 1 cltbld staff 992 May 9 17:59 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-ar.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:00:09-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:00:09 GMT Keep-Alive: timeout=5, max=986 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:00:09 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-ES/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-ES/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:00:09-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-ES/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67740619 Connection: keep-alive Date: Tue, 10 May 2016 00:59:06 GMT x-amz-replication-status: COMPLETED x-amz-version-id: cOLQyKSK7ILIkrLhwYC2fVfN5oU9ZpcK Last-Modified: Tue, 03 May 2016 16:04:19 GMT ETag: "7a66c10db4b1599d99a9f6eaea42d4a8" Accept-Ranges: bytes Server: AmazonS3 Age: 64 X-Cache: Hit from cloudfront Via: 1.1 4d4153e76bb2810aa1d7a86323288fb2.cloudfront.net (CloudFront) X-Amz-Cf-Id: qzZVqju3Mkv2uwk0oO4AZdSPN1LOG2yDQiYq0Z020NYwltNvSj7wQA== Length: 67740619 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 60.4M 1s 3072K ........ ........ ........ ........ ........ ........ 9% 14.0M 3s 6144K ........ ........ ........ ........ ........ ........ 13% 112M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 112M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 108M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 113M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 112M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 112M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 112M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 111M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 112M 0s 33792K ........ ........ ........ ........ ........ ........ 55% 112M 0s 36864K ........ ........ ........ ........ ........ ........ 60% 112M 0s 39936K ........ ........ ........ ........ ........ ........ 65% 40.7M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 112M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 113M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 112M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 112M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 112M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 112M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 112M 0s 64512K ........ ........ ........ . 100% 113M=0.8s 2016-05-09 18:00:10 (77.4 MB/s) - 'update/complete.mar' saved [67740619/67740619] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/es-ES/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/es-ES/Thunderbird 38.6.0.dmg'] --2016-05-09 18:00:12-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/es-ES/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69774510 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:00:12 GMT ETag: "37b0384b4f9bd6842cc7ebdbd173355a" Last-Modified: Fri, 12 Feb 2016 21:49:25 GMT x-amz-replication-status: COMPLETED x-amz-version-id: J_rkZ.0WU7ml65xn5PqyHOtWK2hrsR0J X-Cache: Miss from cloudfront Via: 1.1 990c804118e679d7ea0f4d3ca3cc4534.cloudfront.net (CloudFront) X-Amz-Cf-Id: MwEroJIFyFJVUvop62weQ6NsGztzi4IgVZxdIIHJJNRN_Ccr4NqXXw== Length: 69774510 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.59M 40s 3072K ........ ........ ........ ........ ........ ........ 9% 5.71M 24s 6144K ........ ........ ........ ........ ........ ........ 13% 7.17M 18s 9216K ........ ........ ........ ........ ........ ........ 18% 8.71M 14s 12288K ........ ........ ........ ........ ........ ........ 22% 10.3M 12s 15360K ........ ........ ........ ........ ........ ........ 27% 10.6M 10s 18432K ........ ........ ........ ........ ........ ........ 31% 12.4M 9s 21504K ........ ........ ........ ........ ........ ........ 36% 11.9M 8s 24576K ........ ........ ........ ........ ........ ........ 40% 19.7M 6s 27648K ........ ........ ........ ........ ........ ........ 45% 14.0M 6s 30720K ........ ........ ........ ........ ........ ........ 49% 12.3M 5s 33792K ........ ........ ........ ........ ........ ........ 54% 14.6M 4s 36864K ........ ........ ........ ........ ........ ........ 58% 12.6M 4s 39936K ........ ........ ........ ........ ........ ........ 63% 11.6M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 13.4M 3s 46080K ........ ........ ........ ........ ........ ........ 72% 12.5M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 12.2M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 14.0M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 13.0M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 14.9M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 11.5M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 12.4M 0s 67584K ........ 100% 27.5M=7.4s 2016-05-09 18:00:20 (8.95 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69774510/69774510] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/es-ES/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/es-ES/Thunderbird 45.1.0.dmg'] --2016-05-09 18:00:20-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/es-ES/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77078905 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 00:59:28 GMT ETag: "d4b383d64e3d21d55e929d7608c52092" Last-Modified: Mon, 09 May 2016 21:45:45 GMT x-amz-replication-status: COMPLETED x-amz-version-id: CSK.B0VYDAB.kCQY0q3KQKDdydEt9DKE Age: 52 X-Cache: Hit from cloudfront Via: 1.1 96255a5b0caf50bcafcd101c1ff13691.cloudfront.net (CloudFront) X-Amz-Cf-Id: wU_uXJapJv4HKRDBxPK9PrahbO6_Cgqm_B3P3Y9QnX866Ocps6I24w== Length: 77078905 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 50.3M 1s 3072K ........ ........ ........ ........ ........ ........ 8% 87.3M 1s 6144K ........ ........ ........ ........ ........ ........ 12% 110M 1s 9216K ........ ........ ........ ........ ........ ........ 16% 112M 1s 12288K ........ ........ ........ ........ ........ ........ 20% 110M 1s 15360K ........ ........ ........ ........ ........ ........ 24% 111M 1s 18432K ........ ........ ........ ........ ........ ........ 28% 112M 1s 21504K ........ ........ ........ ........ ........ ........ 32% 111M 1s 24576K ........ ........ ........ ........ ........ ........ 36% 111M 0s 27648K ........ ........ ........ ........ ........ ........ 40% 106M 0s 30720K ........ ........ ........ ........ ........ ........ 44% 111M 0s 33792K ........ ........ ........ ........ ........ ........ 48% 109M 0s 36864K ........ ........ ........ ........ ........ ........ 53% 113M 0s 39936K ........ ........ ........ ........ ........ ........ 57% 112M 0s 43008K ........ ........ ........ ........ ........ ........ 61% 99.2M 0s 46080K ........ ........ ........ ........ ........ ........ 65% 110M 0s 49152K ........ ........ ........ ........ ........ ........ 69% 112M 0s 52224K ........ ........ ........ ........ ........ ........ 73% 106M 0s 55296K ........ ........ ........ ........ ........ ........ 77% 111M 0s 58368K ........ ........ ........ ........ ........ ........ 81% 109M 0s 61440K ........ ........ ........ ........ ........ ........ 85% 89.8M 0s 64512K ........ ........ ........ ........ ........ ........ 89% 110M 0s 67584K ........ ........ ........ ........ ........ ........ 93% 98.4M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 106M 0s 73728K ........ ........ ........ 100% 102M=0.7s 2016-05-09 18:00:21 (102 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77078905/77078905] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-es.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-es.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay-es.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/drae.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/es.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/es.lproj/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo-es.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-es.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/eBay-es.xml PREPARE ADD Contents/Resources/searchplugins/drae.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/es.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-es.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-es.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay-es.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/drae.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/es.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/es.lproj/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo-es.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-es.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/eBay-es.xml EXECUTE ADD Contents/Resources/searchplugins/drae.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/es.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-es.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-es.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay-es.xml FINISH REMOVEFILE Contents/Resources/searchplugins/drae.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/es.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/es.lproj/ non-fatal error removing directory: Contents/Resources/es.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo-es.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-es.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/eBay-es.xml FINISH ADD Contents/Resources/searchplugins/drae.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/es.lproj/InfoPlist.strings FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/es-ES/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/es-ES/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/es-ES/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/es-ES/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/es-ES/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/es-ES/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/es-ES/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/es-ES/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/es-ES/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/es-ES/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo-es.xml" < remove "Contents/Resources/searchplugins/wikipedia-es.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/eBay-es.xml" < remove "Contents/Resources/searchplugins/drae.xml" < remove "Contents/Resources/searchplugins/bing.xml" 58,60c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d106 < rmdir "Contents/Resources/searchplugins/" 121d110 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < NecIBOMaaAIe8vWl4FeII55kh0M= --- > IU5V8zjPY1Zh4gzT5lf24ljZwk4= 221c221 < rW8G9iqtJl63mdR2KfowEcAGTTc= --- > E2HtPabHNtByX20hU3JpIHaegEg= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < x/ztyOxsDS6/eldFWzdnjfZImos= --- > 3zs0P9qnaitKsnEs+jpXvOMe2Es= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385,393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 400,404c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 406,410c410 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < vTZf69Xf9NZTqYDuoZ+8J6zni90= --- > Ayx04WxcV+1NufsIO6UlW21fxMI= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < SxJAGv6kXcenx/NH9YQ1z9ZTF4s= --- > Bt5ZyiAnsm/WexhIAAatPe5Ns6M= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,627d599 < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/drae.xml < < rk8ed11LtZAZ+7U5a6wiHzEU50Q= < < Resources/searchplugins/eBay-es.xml < < 5JpkrvI6v5rUkIspFU2r6DlpseI= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-es.xml < < QYUveJcr4yb+6xx26JpdQApjE4A= < < Resources/searchplugins/yahoo-es.xml < < +VxaHK9HgiEdw2z14FzjfTwPKwU= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < ba6wCyifteWMNlxMOc/9+onnsMY= --- > 3y3qmLz5Dqhd3+vKDmOt/Cwudnk= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c978 < NecIBOMaaAIe8vWl4FeII55kh0M= --- > IU5V8zjPY1Zh4gzT5lf24ljZwk4= 1010c982 < rW8G9iqtJl63mdR2KfowEcAGTTc= --- > E2HtPabHNtByX20hU3JpIHaegEg= 1014c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1070 < x/ztyOxsDS6/eldFWzdnjfZImos= --- > 3zs0P9qnaitKsnEs+jpXvOMe2Es= 1102c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1146,1154 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1189,1193c1169 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1195,1199c1171 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1227c1199 < vTZf69Xf9NZTqYDuoZ+8J6zni90= --- > Ayx04WxcV+1NufsIO6UlW21fxMI= 1231c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1235c1207 < SxJAGv6kXcenx/NH9YQ1z9ZTF4s= --- > Bt5ZyiAnsm/WexhIAAatPe5Ns6M= 1239c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1389,1416d1360 < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/drae.xml < < rk8ed11LtZAZ+7U5a6wiHzEU50Q= < < Resources/searchplugins/eBay-es.xml < < 5JpkrvI6v5rUkIspFU2r6DlpseI= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-es.xml < < QYUveJcr4yb+6xx26JpdQApjE4A= < < Resources/searchplugins/yahoo-es.xml < < +VxaHK9HgiEdw2z14FzjfTwPKwU= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48034482 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:01 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48034481 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:01 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48034480 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:01 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48034432 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:01 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48034431 8 -rw-r--r-- 1 cltbld staff 4095 May 9 18:01 source/Thunderbird.app/Contents/Resources/searchplugins/drae.xml 48034430 8 -rw-r--r-- 1 cltbld staff 1356 May 9 18:01 source/Thunderbird.app/Contents/Resources/searchplugins/eBay-es.xml 48034429 8 -rw-r--r-- 1 cltbld staff 2371 May 9 18:01 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48034428 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:01 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48034427 8 -rw-r--r-- 1 cltbld staff 1341 May 9 18:01 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-es.xml 48034426 8 -rw-r--r-- 1 cltbld staff 1257 May 9 18:01 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-es.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:01:16-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:01:16 GMT Keep-Alive: timeout=5, max=997 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:01:16 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/et/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/et/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:01:16-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/et/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68666692 Connection: keep-alive Date: Tue, 10 May 2016 01:01:17 GMT x-amz-replication-status: COMPLETED x-amz-version-id: auDziwVtexq1.tQjlyXjy03VYMu2dzv. Last-Modified: Tue, 03 May 2016 16:17:18 GMT ETag: "5455d0edfa22ab7677e26ab82e84fe60" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 5574699f9d8b8aad21acf2edbb25dc62.cloudfront.net (CloudFront) X-Amz-Cf-Id: CH7-7yoNIU1Yw6txHrdPii9nsY7UoyI9GyFT3YvnXszUO5dtwiWT0A== Length: 68666692 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 1.66M 38s 3072K ........ ........ ........ ........ ........ ........ 9% 3.05M 28s 6144K ........ ........ ........ ........ ........ ........ 13% 4.88M 21s 9216K ........ ........ ........ ........ ........ ........ 18% 5.97M 17s 12288K ........ ........ ........ ........ ........ ........ 22% 8.11M 14s 15360K ........ ........ ........ ........ ........ ........ 27% 8.48M 12s 18432K ........ ........ ........ ........ ........ ........ 32% 10.1M 10s 21504K ........ ........ ........ ........ ........ ........ 36% 11.4M 9s 24576K ........ ........ ........ ........ ........ ........ 41% 12.1M 8s 27648K ........ ........ ........ ........ ........ ........ 45% 13.5M 7s 30720K ........ ........ ........ ........ ........ ........ 50% 13.9M 6s 33792K ........ ........ ........ ........ ........ ........ 54% 14.0M 5s 36864K ........ ........ ........ ........ ........ ........ 59% 14.4M 4s 39936K ........ ........ ........ ........ ........ ........ 64% 16.1M 4s 43008K ........ ........ ........ ........ ........ ........ 68% 16.3M 3s 46080K ........ ........ ........ ........ ........ ........ 73% 17.2M 2s 49152K ........ ........ ........ ........ ........ ........ 77% 16.6M 2s 52224K ........ ........ ........ ........ ........ ........ 82% 19.0M 2s 55296K ........ ........ ........ ........ ........ ........ 87% 20.7M 1s 58368K ........ ........ ........ ........ ........ ........ 91% 20.6M 1s 61440K ........ ........ ........ ........ ........ ........ 96% 18.7M 0s 64512K ........ ........ ........ ........ ....... 100% 19.2M=7.8s 2016-05-09 18:01:24 (8.43 MB/s) - 'update/complete.mar' saved [68666692/68666692] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/et/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/et/Thunderbird 38.6.0.dmg'] --2016-05-09 18:01:25-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/et/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70635533 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:01:27 GMT ETag: "11c06a66cf768bcb2c7212d873c473e6" Last-Modified: Fri, 12 Feb 2016 21:48:31 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 1ExmRcdL.R8KxxKdnPpzvWcS4LO6VG9x X-Cache: Miss from cloudfront Via: 1.1 296faebadd40feee8b2eb0e10d5786d2.cloudfront.net (CloudFront) X-Amz-Cf-Id: JE576_nxdQ7Az54glR3LU8Wtb0IduyZv6OGQCtnhZimWTeWnE4OXRQ== Length: 70635533 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.66M 39s 3072K ........ ........ ........ ........ ........ ........ 8% 6.11M 23s 6144K ........ ........ ........ ........ ........ ........ 13% 10.2M 17s 9216K ........ ........ ........ ........ ........ ........ 17% 10.7M 13s 12288K ........ ........ ........ ........ ........ ........ 22% 14.3M 11s 15360K ........ ........ ........ ........ ........ ........ 26% 13.4M 9s 18432K ........ ........ ........ ........ ........ ........ 31% 15.1M 8s 21504K ........ ........ ........ ........ ........ ........ 35% 14.0M 7s 24576K ........ ........ ........ ........ ........ ........ 40% 16.3M 6s 27648K ........ ........ ........ ........ ........ ........ 44% 12.3M 5s 30720K ........ ........ ........ ........ ........ ........ 48% 16.0M 5s 33792K ........ ........ ........ ........ ........ ........ 53% 16.9M 4s 36864K ........ ........ ........ ........ ........ ........ 57% 15.9M 3s 39936K ........ ........ ........ ........ ........ ........ 62% 15.8M 3s 43008K ........ ........ ........ ........ ........ ........ 66% 16.5M 3s 46080K ........ ........ ........ ........ ........ ........ 71% 20.5M 2s 49152K ........ ........ ........ ........ ........ ........ 75% 15.5M 2s 52224K ........ ........ ........ ........ ........ ........ 80% 16.4M 1s 55296K ........ ........ ........ ........ ........ ........ 84% 20.0M 1s 58368K ........ ........ ........ ........ ........ ........ 89% 14.9M 1s 61440K ........ ........ ........ ........ ........ ........ 93% 16.3M 0s 64512K ........ ........ ........ ........ ........ ........ 97% 21.4M 0s 67584K ........ ........ ..... 100% 21.2M=6.3s 2016-05-09 18:01:33 (10.6 MB/s) - 'Thunderbird 38.6.0.dmg' saved [70635533/70635533] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/et/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/et/Thunderbird 45.1.0.dmg'] --2016-05-09 18:01:34-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/et/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 78004810 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:01:34 GMT ETag: "f1e785013ac3f075f4e485fc0722becd" Last-Modified: Mon, 09 May 2016 22:11:00 GMT x-amz-replication-status: COMPLETED x-amz-version-id: E2TGvY4VkCFYn37wjzoCQ2199iaaxh8g X-Cache: Miss from cloudfront Via: 1.1 ccf10d437e3b13a9b947840075a4df94.cloudfront.net (CloudFront) X-Amz-Cf-Id: yn1NqiZHC7P1ZRCoZWWO5q0DYk5E49TpE2NINPuTbL3klFEUJCEcIg== Length: 78004810 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.54M 46s 3072K ........ ........ ........ ........ ........ ........ 8% 5.92M 28s 6144K ........ ........ ........ ........ ........ ........ 12% 8.41M 20s 9216K ........ ........ ........ ........ ........ ........ 16% 11.9M 16s 12288K ........ ........ ........ ........ ........ ........ 20% 12.0M 13s 15360K ........ ........ ........ ........ ........ ........ 24% 13.8M 11s 18432K ........ ........ ........ ........ ........ ........ 28% 15.9M 9s 21504K ........ ........ ........ ........ ........ ........ 32% 15.5M 8s 24576K ........ ........ ........ ........ ........ ........ 36% 12.9M 7s 27648K ........ ........ ........ ........ ........ ........ 40% 13.4M 6s 30720K ........ ........ ........ ........ ........ ........ 44% 19.1M 6s 33792K ........ ........ ........ ........ ........ ........ 48% 19.1M 5s 36864K ........ ........ ........ ........ ........ ........ 52% 24.8M 4s 39936K ........ ........ ........ ........ ........ ........ 56% 28.2M 4s 43008K ........ ........ ........ ........ ........ ........ 60% 27.9M 3s 46080K ........ ........ ........ ........ ........ ........ 64% 35.4M 3s 49152K ........ ........ ........ ........ ........ ........ 68% 24.8M 2s 52224K ........ ........ ........ ........ ........ ........ 72% 4.71M 2s 55296K ........ ........ ........ ........ ........ ........ 76% 6.63M 2s 58368K ........ ........ ........ ........ ........ ........ 80% 10.6M 2s 61440K ........ ........ ........ ........ ........ ........ 84% 7.92M 1s 64512K ........ ........ ........ ........ ........ ........ 88% 13.5M 1s 67584K ........ ........ ........ ........ ........ ........ 92% 8.57M 1s 70656K ........ ........ ........ ........ ........ ........ 96% 7.94M 0s 73728K ........ ........ ........ ........ ...... 100% 14.7M=8.1s 2016-05-09 18:01:43 (9.20 MB/s) - 'Thunderbird 45.1.0.dmg' saved [78004810/78004810] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-et.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/osta-ee.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/neti-ee.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eki-ee.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/et.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/dictionaries/et.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/et.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/et.lproj/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/wikipedia-et.xml PREPARE ADD Contents/Resources/searchplugins/osta-ee.xml PREPARE ADD Contents/Resources/searchplugins/neti-ee.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/eki-ee.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/et.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/et.dic PREPARE ADD Contents/Resources/dictionaries/et.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-et.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/osta-ee.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/neti-ee.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eki-ee.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/et.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/dictionaries/et.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/et.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/et.lproj/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/wikipedia-et.xml EXECUTE ADD Contents/Resources/searchplugins/osta-ee.xml EXECUTE ADD Contents/Resources/searchplugins/neti-ee.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/eki-ee.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/et.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/et.dic EXECUTE ADD Contents/Resources/dictionaries/et.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-et.xml FINISH REMOVEFILE Contents/Resources/searchplugins/osta-ee.xml FINISH REMOVEFILE Contents/Resources/searchplugins/neti-ee.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eki-ee.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/et.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/dictionaries/et.dic FINISH REMOVEFILE Contents/Resources/dictionaries/et.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/et.lproj/ non-fatal error removing directory: Contents/Resources/et.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/wikipedia-et.xml FINISH ADD Contents/Resources/searchplugins/osta-ee.xml FINISH ADD Contents/Resources/searchplugins/neti-ee.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/eki-ee.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/et.lproj/InfoPlist.strings FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/et.dic FINISH ADD Contents/Resources/dictionaries/et.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/et/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/et/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/et/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/et/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/et/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/et/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/et/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/et/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/et/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/et/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,9d3 < remove "Contents/Resources/searchplugins/wikipedia-et.xml" < remove "Contents/Resources/searchplugins/osta-ee.xml" < remove "Contents/Resources/searchplugins/neti-ee.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/eki-ee.xml" < remove "Contents/Resources/searchplugins/eBay.xml" 57,59c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 91c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 117d108 < rmdir "Contents/Resources/searchplugins/" 122d112 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < rDdsucXJGZVEgf0TYtlHOb3xvCw= --- > ILBZOP4ClHa4o1mH2eZBOItR5q0= 229c229 < cJbgxj9jnJh0gDB5+Z/JriOVLRE= --- > Oz6MMqXV2ozO3zcVpv3zCSAH0Ks= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < gM1QMMy7nZ64zUhLL9zxor7wHZw= --- > +oCn3s6RKnBLxIOnqpQnuaQHcwo= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393,401 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 408,416c416 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png < < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 418c418 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 446c446 < XocXZh3IRuxoj+Pd6BjMyQ1unII= --- > c5wKMqzYHKhPe0W7F6CJWPgzGdA= 450c450 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 454c454 < hljw4RW1ImPjTSzk6flQ8PWTpWw= --- > w5faaHatSgBvul6aR/r8LaBBVwY= 458c458 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,631d607 < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/eki-ee.xml < < j9eu2epwZEMfSZyLH7rrSAb2oq8= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/neti-ee.xml < < tZmBl8YzVO0AGt9dlUYaOSjbds0= < < Resources/searchplugins/osta-ee.xml < < 08GIAXQKQhdzqRjUTETUrgv9DRQ= < < Resources/searchplugins/wikipedia-et.xml < < po3LxHhZO7+KG51PWEjQOo0FMCw= < 660c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 669c645 < s7rGCeBi4/vtDPzGYpSoJhAUujs= --- > uSn3+KxfLw57fzfnOKFhf3520LM= 678c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 687c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 696c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 701c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 705c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 714c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 723c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 732c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 741c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 750c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 759c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 768c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 777c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 786c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 795c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 802c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 806c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 818c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 830c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 834c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 838c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 842c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 846c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 850c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 854c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 858c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 862c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 866c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 870c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 874c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 878c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 882c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 886c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 890c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 894c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 898c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 902c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 906c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 910c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 914c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 918c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 922c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 926c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 930c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 934c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 938c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 942c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 946c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 950c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 954c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 958c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 962c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 966c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 970c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 974c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 978c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 982c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 986c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 990c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 994c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 998c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1002c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1010c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1014c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1018c994 < rDdsucXJGZVEgf0TYtlHOb3xvCw= --- > ILBZOP4ClHa4o1mH2eZBOItR5q0= 1022c998 < cJbgxj9jnJh0gDB5+Z/JriOVLRE= --- > Oz6MMqXV2ozO3zcVpv3zCSAH0Ks= 1026c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1030c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1034c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1038c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1042c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1046c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1050c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1054c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1058c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1062c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1066c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1070c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1074c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1078c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1082c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1094c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1098c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1106c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1110c1086 < gM1QMMy7nZ64zUhLL9zxor7wHZw= --- > +oCn3s6RKnBLxIOnqpQnuaQHcwo= 1114c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1118c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1122c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1126c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1130c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1134c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1138c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1142c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1146c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1150c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1154c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1158c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1162c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1170c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1174c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1178c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1182c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1186c1162,1170 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1201,1209c1185 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png < < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1211c1187 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1239c1215 < XocXZh3IRuxoj+Pd6BjMyQ1unII= --- > c5wKMqzYHKhPe0W7F6CJWPgzGdA= 1243c1219 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1247c1223 < hljw4RW1ImPjTSzk6flQ8PWTpWw= --- > w5faaHatSgBvul6aR/r8LaBBVwY= 1251c1227 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1401,1424d1376 < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/eki-ee.xml < < j9eu2epwZEMfSZyLH7rrSAb2oq8= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/neti-ee.xml < < tZmBl8YzVO0AGt9dlUYaOSjbds0= < < Resources/searchplugins/osta-ee.xml < < 08GIAXQKQhdzqRjUTETUrgv9DRQ= < < Resources/searchplugins/wikipedia-et.xml < < po3LxHhZO7+KG51PWEjQOo0FMCw= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48035236 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:02 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48035235 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:02 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48035234 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:02 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48035186 8 -rw-r--r-- 1 cltbld staff 2569 May 9 18:02 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48035185 8 -rw-r--r-- 1 cltbld staff 1372 May 9 18:02 source/Thunderbird.app/Contents/Resources/searchplugins/eki-ee.xml 48035184 8 -rw-r--r-- 1 cltbld staff 2371 May 9 18:02 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48035183 8 -rw-r--r-- 1 cltbld staff 2173 May 9 18:02 source/Thunderbird.app/Contents/Resources/searchplugins/neti-ee.xml 48035182 8 -rw-r--r-- 1 cltbld staff 1117 May 9 18:02 source/Thunderbird.app/Contents/Resources/searchplugins/osta-ee.xml 48035181 8 -rw-r--r-- 1 cltbld staff 1334 May 9 18:02 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-et.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:02:39-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:02:39 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:02:39 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/eu/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/eu/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:02:39-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/eu/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67827621 Connection: keep-alive Date: Tue, 10 May 2016 01:02:40 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 277omksBmMiLU2RZfpFHdsvuQaz5rbBp Last-Modified: Tue, 03 May 2016 16:30:08 GMT ETag: "aac4f79c7adcc8eb23e94178c564c4e2" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 f0ef92e52918ab5129ebd66f2f633cbb.cloudfront.net (CloudFront) X-Amz-Cf-Id: SWfungPE1VEImDRMVBvCSELrGdWfeuixxb4MONKSu6DI2kZU4FfmIg== Length: 67827621 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 2.25M 27s 3072K ........ ........ ........ ........ ........ ........ 9% 4.20M 20s 6144K ........ ........ ........ ........ ........ ........ 13% 5.66M 16s 9216K ........ ........ ........ ........ ........ ........ 18% 7.55M 13s 12288K ........ ........ ........ ........ ........ ........ 23% 8.93M 11s 15360K ........ ........ ........ ........ ........ ........ 27% 9.21M 9s 18432K ........ ........ ........ ........ ........ ........ 32% 11.6M 8s 21504K ........ ........ ........ ........ ........ ........ 37% 13.5M 7s 24576K ........ ........ ........ ........ ........ ........ 41% 12.6M 6s 27648K ........ ........ ........ ........ ........ ........ 46% 11.4M 5s 30720K ........ ........ ........ ........ ........ ........ 51% 23.5M 5s 33792K ........ ........ ........ ........ ........ ........ 55% 18.7M 4s 36864K ........ ........ ........ ........ ........ ........ 60% 16.2M 3s 39936K ........ ........ ........ ........ ........ ........ 64% 19.9M 3s 43008K ........ ........ ........ ........ ........ ........ 69% 17.1M 2s 46080K ........ ........ ........ ........ ........ ........ 74% 21.3M 2s 49152K ........ ........ ........ ........ ........ ........ 78% 21.5M 2s 52224K ........ ........ ........ ........ ........ ........ 83% 19.1M 1s 55296K ........ ........ ........ ........ ........ ........ 88% 20.6M 1s 58368K ........ ........ ........ ........ ........ ........ 92% 22.3M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 21.5M 0s 64512K ........ ........ ........ .. 100% 29.0M=6.3s 2016-05-09 18:02:46 (10.2 MB/s) - 'update/complete.mar' saved [67827621/67827621] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/eu/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/eu/Thunderbird 38.6.0.dmg'] --2016-05-09 18:02:47-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/eu/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69849954 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:02:48 GMT ETag: "7ccbd104928c3a2fc0039b1db1b01fa4" Last-Modified: Fri, 12 Feb 2016 21:48:33 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 5p0GaiE94MTfXqZTguaPn.FFlwQAwxB3 X-Cache: Miss from cloudfront Via: 1.1 990c804118e679d7ea0f4d3ca3cc4534.cloudfront.net (CloudFront) X-Amz-Cf-Id: eTRSwAEkHrKPwMtAccpVaftHeJMbIKGsThVVR2rTbCW0hQeAKIDeTA== Length: 69849954 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.78M 36s 3072K ........ ........ ........ ........ ........ ........ 9% 6.51M 22s 6144K ........ ........ ........ ........ ........ ........ 13% 9.51M 16s 9216K ........ ........ ........ ........ ........ ........ 18% 11.5M 12s 12288K ........ ........ ........ ........ ........ ........ 22% 16.2M 10s 15360K ........ ........ ........ ........ ........ ........ 27% 17.6M 8s 18432K ........ ........ ........ ........ ........ ........ 31% 18.4M 7s 21504K ........ ........ ........ ........ ........ ........ 36% 21.3M 6s 24576K ........ ........ ........ ........ ........ ........ 40% 25.7M 5s 27648K ........ ........ ........ ........ ........ ........ 45% 14.3M 5s 30720K ........ ........ ........ ........ ........ ........ 49% 12.7M 4s 33792K ........ ........ ........ ........ ........ ........ 54% 6.00M 4s 36864K ........ ........ ........ ........ ........ ........ 58% 8.91M 3s 39936K ........ ........ ........ ........ ........ ........ 63% 11.8M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 15.2M 3s 46080K ........ ........ ........ ........ ........ ........ 72% 16.8M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 16.0M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 22.2M 1s 55296K ........ ........ ........ ........ ........ ........ 85% 28.2M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 21.2M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 22.4M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 17.1M 0s 67584K ........ . 100% 113M=6.3s 2016-05-09 18:02:54 (10.6 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69849954/69849954] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/eu/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/eu/Thunderbird 45.1.0.dmg'] --2016-05-09 18:02:54-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/eu/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77203310 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:02:55 GMT ETag: "69dafdfc3ff3a02905a137bfe49d754a" Last-Modified: Mon, 09 May 2016 22:33:27 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 9CUwJsArkrZcbQSfI3YBZvb35nA_gcSr X-Cache: Miss from cloudfront Via: 1.1 11512f00e812993b9daa35c376d7cb20.cloudfront.net (CloudFront) X-Amz-Cf-Id: QRyMF0hJplzQP5_JbzFBZ1YXsViM05lz1yau1h7H2ucKWoJJ2oe5rg== Length: 77203310 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.40M 50s 3072K ........ ........ ........ ........ ........ ........ 8% 5.19M 31s 6144K ........ ........ ........ ........ ........ ........ 12% 6.56M 23s 9216K ........ ........ ........ ........ ........ ........ 16% 8.37M 18s 12288K ........ ........ ........ ........ ........ ........ 20% 9.64M 15s 15360K ........ ........ ........ ........ ........ ........ 24% 11.3M 13s 18432K ........ ........ ........ ........ ........ ........ 28% 13.9M 11s 21504K ........ ........ ........ ........ ........ ........ 32% 12.3M 9s 24576K ........ ........ ........ ........ ........ ........ 36% 14.7M 8s 27648K ........ ........ ........ ........ ........ ........ 40% 17.5M 7s 30720K ........ ........ ........ ........ ........ ........ 44% 17.0M 6s 33792K ........ ........ ........ ........ ........ ........ 48% 22.8M 5s 36864K ........ ........ ........ ........ ........ ........ 52% 18.0M 5s 39936K ........ ........ ........ ........ ........ ........ 57% 19.4M 4s 43008K ........ ........ ........ ........ ........ ........ 61% 23.3M 4s 46080K ........ ........ ........ ........ ........ ........ 65% 26.4M 3s 49152K ........ ........ ........ ........ ........ ........ 69% 23.7M 3s 52224K ........ ........ ........ ........ ........ ........ 73% 18.6M 2s 55296K ........ ........ ........ ........ ........ ........ 77% 10.8M 2s 58368K ........ ........ ........ ........ ........ ........ 81% 5.37M 2s 61440K ........ ........ ........ ........ ........ ........ 85% 7.69M 1s 64512K ........ ........ ........ ........ ........ ........ 89% 10.7M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 13.0M 1s 70656K ........ ........ ........ ........ ........ ........ 97% 14.8M 0s 73728K ........ ........ ........ .. 100% 16.9M=8.1s 2016-05-09 18:03:03 (9.04 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77203310/77203310] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/eu.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/eu.lproj/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/eu.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/eu.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/eu.lproj/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/eu.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/eu.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/eu.lproj/ non-fatal error removing directory: Contents/Resources/eu.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/eu.lproj/InfoPlist.strings FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/eu/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/eu/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/eu/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/eu/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/eu/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/eu/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/eu/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/eu/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_3-00000/l10n/eu/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_3-00000/l10n/eu/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 58,60c51 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d106 < rmdir "Contents/Resources/searchplugins/" 121d110 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < P4RE/AdBJSHwEM/XdoEsG3akS/I= --- > b2dJJdphC3U8culMu17ADDj1abI= 221c221 < bCPVWFS1wJbgpSI9N4NCxJuCstc= --- > aiWfkiNGkj3+6V6Ub1CIa13V/pY= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < 2ANMR6Befuwl+6aTCYd6q7rpANM= --- > sYGNYLmVsL2subogF+SdL5cW85c= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385,393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 400,404c408 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 406,410c410 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < bwq1J8BAnB3dF+QE2T7YgAAPfYs= --- > bxcLy35daMAY9s3pBDU5I+ymuaw= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < X12YKR9LBERzx1pAUWn8Yfshf1M= --- > 3rhcI8PifoyvYLrpVq6YWc3DxEM= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,627d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < WPIzO5XSC/JvZdeXjyyOIRZiCX8= --- > 3pZU1GoxsYqd3vFhGOMrq0p612I= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c978 < P4RE/AdBJSHwEM/XdoEsG3akS/I= --- > b2dJJdphC3U8culMu17ADDj1abI= 1010c982 < bCPVWFS1wJbgpSI9N4NCxJuCstc= --- > aiWfkiNGkj3+6V6Ub1CIa13V/pY= 1014c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1070 < 2ANMR6Befuwl+6aTCYd6q7rpANM= --- > sYGNYLmVsL2subogF+SdL5cW85c= 1102c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1146,1154 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm > > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= > > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm > > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1189,1193c1169 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png < < NiKaniYKBXFH+iloIPnE4bVtgJE= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1195,1199c1171 < n7ao5GWdVNdbncAsveEOD80oCZQ= < < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf < < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1227c1199 < bwq1J8BAnB3dF+QE2T7YgAAPfYs= --- > bxcLy35daMAY9s3pBDU5I+ymuaw= 1231c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1235c1207 < X12YKR9LBERzx1pAUWn8Yfshf1M= --- > 3rhcI8PifoyvYLrpVq6YWc3DxEM= 1239c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1389,1416d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48035989 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:03 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48035988 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:03 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48035987 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:03 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48035938 8 -rw-r--r-- 1 cltbld staff 1531 May 9 18:03 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48035937 8 -rw-r--r-- 1 cltbld staff 1670 May 9 18:03 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48035936 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:03 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48035935 8 -rw-r--r-- 1 cltbld staff 2569 May 9 18:03 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48035934 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:03 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48035933 8 -rw-r--r-- 1 cltbld staff 1338 May 9 18:03 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48035932 8 -rw-r--r-- 1 cltbld staff 1363 May 9 18:03 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:03:59-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:03:59 GMT Keep-Alive: timeout=5, max=974 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:03:59 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fi/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fi/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:03:59-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fi/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67826200 Connection: keep-alive Date: Tue, 10 May 2016 01:04:01 GMT x-amz-replication-status: COMPLETED x-amz-version-id: hbqVsW09CdUC2x.tb5wAkFGmY1_dKE4S Last-Modified: Tue, 03 May 2016 15:16:52 GMT ETag: "ea3b5c8046267023a832d43c44136701" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 8e86372eaaa62fc64b70e7bcde725dd9.cloudfront.net (CloudFront) X-Amz-Cf-Id: bGAf3BxLsS2T1qpjcgMkYDcBPBEi3lm36R8hSKCaw3I7lfD2q5o32A== Length: 67826200 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 2.34M 26s 3072K ........ ........ ........ ........ ........ ........ 9% 3.14M 22s 6144K ........ ........ ........ ........ ........ ........ 13% 22.6M 15s 9216K ........ ........ ........ ........ ........ ........ 18% 51.2M 11s 12288K ........ ........ ........ ........ ........ ........ 23% 40.4M 8s 15360K ........ ........ ........ ........ ........ ........ 27% 19.1M 7s 18432K ........ ........ ........ ........ ........ ........ 32% 28.7M 6s 21504K ........ ........ ........ ........ ........ ........ 37% 30.0M 5s 24576K ........ ........ ........ ........ ........ ........ 41% 25.3M 4s 27648K ........ ........ ........ ........ ........ ........ 46% 24.5M 4s 30720K ........ ........ ........ ........ ........ ........ 51% 19.8M 3s 33792K ........ ........ ........ ........ ........ ........ 55% 13.4M 3s 36864K ........ ........ ........ ........ ........ ........ 60% 11.2M 2s 39936K ........ ........ ........ ........ ........ ........ 64% 17.5M 2s 43008K ........ ........ ........ ........ ........ ........ 69% 19.6M 2s 46080K ........ ........ ........ ........ ........ ........ 74% 16.1M 1s 49152K ........ ........ ........ ........ ........ ........ 78% 19.3M 1s 52224K ........ ........ ........ ........ ........ ........ 83% 21.0M 1s 55296K ........ ........ ........ ........ ........ ........ 88% 29.2M 1s 58368K ........ ........ ........ ........ ........ ........ 92% 28.1M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 31.3M 0s 64512K ........ ........ ........ .. 100% 38.0M=4.9s 2016-05-09 18:04:05 (13.2 MB/s) - 'update/complete.mar' saved [67826200/67826200] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/fi/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/fi/Thunderbird 38.6.0.dmg'] --2016-05-09 18:04:06-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/fi/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69849688 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:04:07 GMT ETag: "d002e8e09b780aaca3d403192942dcd9" Last-Modified: Fri, 12 Feb 2016 21:48:36 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 036cNC.fxVMjNMzpc3Ehc_iwAGgwTVMC X-Cache: Miss from cloudfront Via: 1.1 2a47832c458ab2a6b20c8363f5aa35ea.cloudfront.net (CloudFront) X-Amz-Cf-Id: LkJroNyB7gZ-9SzDsaG1mhu9bL8TUycct8Ojy0sRGRoGoBeHE5cBmg== Length: 69849688 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.63M 39s 3072K ........ ........ ........ ........ ........ ........ 9% 4.64M 25s 6144K ........ ........ ........ ........ ........ ........ 13% 5.51M 19s 9216K ........ ........ ........ ........ ........ ........ 18% 8.03M 15s 12288K ........ ........ ........ ........ ........ ........ 22% 8.25M 13s 15360K ........ ........ ........ ........ ........ ........ 27% 10.8M 11s 18432K ........ ........ ........ ........ ........ ........ 31% 10.9M 9s 21504K ........ ........ ........ ........ ........ ........ 36% 11.6M 8s 24576K ........ ........ ........ ........ ........ ........ 40% 20.6M 7s 27648K ........ ........ ........ ........ ........ ........ 45% 15.2M 6s 30720K ........ ........ ........ ........ ........ ........ 49% 17.9M 5s 33792K ........ ........ ........ ........ ........ ........ 54% 18.0M 4s 36864K ........ ........ ........ ........ ........ ........ 58% 21.0M 4s 39936K ........ ........ ........ ........ ........ ........ 63% 20.3M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 20.6M 3s 46080K ........ ........ ........ ........ ........ ........ 72% 27.7M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 25.8M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 18.8M 1s 55296K ........ ........ ........ ........ ........ ........ 85% 18.1M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 25.6M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 24.7M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 19.5M 0s 67584K ........ . 100% 21.2M=6.7s 2016-05-09 18:04:14 (9.99 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69849688/69849688] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/fi/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/fi/Thunderbird 45.1.0.dmg'] --2016-05-09 18:04:14-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/fi/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77208079 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:04:15 GMT ETag: "17cea6fa191757c2b1f323c672e894c3" Last-Modified: Mon, 09 May 2016 20:36:24 GMT x-amz-replication-status: COMPLETED x-amz-version-id: PmvYSMWBNO7Ak0JAbcH8lw9jafeSDJep X-Cache: Miss from cloudfront Via: 1.1 0ffb9964022445351e635c66ad0176ff.cloudfront.net (CloudFront) X-Amz-Cf-Id: 2bsw3pkeGKdJnA--o_JCg0hcK4uF4Rp_9PZBY6eX79zaPx7TNvRWmw== Length: 77208079 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.58M 45s 3072K ........ ........ ........ ........ ........ ........ 8% 5.45M 28s 6144K ........ ........ ........ ........ ........ ........ 12% 8.08M 20s 9216K ........ ........ ........ ........ ........ ........ 16% 10.3M 16s 12288K ........ ........ ........ ........ ........ ........ 20% 13.9M 13s 15360K ........ ........ ........ ........ ........ ........ 24% 13.4M 11s 18432K ........ ........ ........ ........ ........ ........ 28% 13.8M 9s 21504K ........ ........ ........ ........ ........ ........ 32% 25.3M 8s 24576K ........ ........ ........ ........ ........ ........ 36% 23.4M 7s 27648K ........ ........ ........ ........ ........ ........ 40% 21.9M 6s 30720K ........ ........ ........ ........ ........ ........ 44% 14.7M 5s 33792K ........ ........ ........ ........ ........ ........ 48% 7.48M 5s 36864K ........ ........ ........ ........ ........ ........ 52% 6.35M 5s 39936K ........ ........ ........ ........ ........ ........ 57% 8.22M 4s 43008K ........ ........ ........ ........ ........ ........ 61% 10.7M 4s 46080K ........ ........ ........ ........ ........ ........ 65% 11.1M 3s 49152K ........ ........ ........ ........ ........ ........ 69% 14.2M 3s 52224K ........ ........ ........ ........ ........ ........ 73% 18.6M 2s 55296K ........ ........ ........ ........ ........ ........ 77% 10.9M 2s 58368K ........ ........ ........ ........ ........ ........ 81% 26.2M 2s 61440K ........ ........ ........ ........ ........ ........ 85% 13.1M 1s 64512K ........ ........ ........ ........ ........ ........ 89% 11.0M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 25.0M 1s 70656K ........ ........ ........ ........ ........ ........ 97% 15.0M 0s 73728K ........ ........ ........ .. 100% 11.8M=7.9s 2016-05-09 18:04:23 (9.36 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77208079/77208079] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-fi.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-fi.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay-fi.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/fi.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/fi.lproj/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo-fi.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-fi.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay-fi.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/fi.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-fi.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-fi.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay-fi.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/fi.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/fi.lproj/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo-fi.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-fi.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay-fi.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/fi.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-fi.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-fi.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay-fi.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/fi.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/fi.lproj/ non-fatal error removing directory: Contents/Resources/fi.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo-fi.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-fi.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay-fi.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/fi.lproj/InfoPlist.strings FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/fi/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/fi/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/fi/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/fi/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/fi/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/fi/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/fi/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/fi/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/fi/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/fi/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,9d3 < remove "Contents/Resources/searchplugins/yahoo-fi.xml" < remove "Contents/Resources/searchplugins/wikipedia-fi.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay-fi.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 58,60c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 89c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 115d106 < rmdir "Contents/Resources/searchplugins/" 121d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < LuH7DFGbXpbZw83emfVBVZ3EkX8= --- > SzCfeT4eT9PNzVvNi2tExUPmSGw= 221c221 < 2Wo1ZrV6w+dPJIdjt8fRWjh8py0= --- > bruI2RrmBic9KmEtaY0PIW9nDZU= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < iS/FPRRvAsdlrfMIcfHJbI7GZ9A= --- > OjIbn+HSEE7LashukII3PGtvHxE= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < vlP6pKVKm2LWKdAD+akDUYv1C9E= --- > e7qmV3vwrs5LXWvZVs0nv+F4jqQ= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < XhmTj6kUyixfzeRIMjBfwcOkNMo= --- > yk0S7DepyLWF0e/SfHyOgUKfgxY= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,623d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay-fi.xml < < 3VyxRm9rQ2YxLwDtZ7+1pvhOey8= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-fi.xml < < KcAu7gleA9k16tCcDZqlFnJT4V4= < < Resources/searchplugins/yahoo-fi.xml < < 5xVqGsWfJN/1HieKlkQQVyGwr/I= < 652c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 661c637 < +E18cXLA7lGR37xAMaAXCcmiGg8= --- > rt8GQeH13AeTJPFCcIx5tR2Yi8U= 670c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 679c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 688c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 693c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 697c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 706c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 715c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 724c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 733c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 742c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 751c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 760c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 769c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 778c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 787c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 794c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 798c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 810c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 814c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 818c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 822c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 826c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 830c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 834c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 838c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 842c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 846c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 850c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 854c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 858c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 862c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 866c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 870c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 874c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 878c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 882c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 886c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 890c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 894c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 898c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 902c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 906c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 910c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 914c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 918c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 922c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 926c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 930c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 934c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 938c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 942c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 946c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 950c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 954c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 958c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 962c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 966c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 970c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 974c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 978c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 982c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 986c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 994c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 998c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1002c978 < LuH7DFGbXpbZw83emfVBVZ3EkX8= --- > SzCfeT4eT9PNzVvNi2tExUPmSGw= 1006c982 < 2Wo1ZrV6w+dPJIdjt8fRWjh8py0= --- > bruI2RrmBic9KmEtaY0PIW9nDZU= 1010c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1014c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1018c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1022c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1026c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1030c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1034c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1038c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1042c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1046c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1050c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1054c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1058c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1062c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1066c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1078c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1082c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1090c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1094c1070 < iS/FPRRvAsdlrfMIcfHJbI7GZ9A= --- > OjIbn+HSEE7LashukII3PGtvHxE= 1098c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1102c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1106c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1110c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1114c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1118c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1122c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1126c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1130c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1134c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1138c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1142c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1146c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1154c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1158c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1162c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1166c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1170c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1172c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1174c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1176c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1178c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1180c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1182c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1184c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1186c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1223c1199 < vlP6pKVKm2LWKdAD+akDUYv1C9E= --- > e7qmV3vwrs5LXWvZVs0nv+F4jqQ= 1227c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1231c1207 < XhmTj6kUyixfzeRIMjBfwcOkNMo= --- > yk0S7DepyLWF0e/SfHyOgUKfgxY= 1235c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1385,1408d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay-fi.xml < < 3VyxRm9rQ2YxLwDtZ7+1pvhOey8= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-fi.xml < < KcAu7gleA9k16tCcDZqlFnJT4V4= < < Resources/searchplugins/yahoo-fi.xml < < 5xVqGsWfJN/1HieKlkQQVyGwr/I= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48036735 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:05 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48036734 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:05 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48036733 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:05 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48036684 8 -rw-r--r-- 1 cltbld staff 1531 May 9 18:05 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48036683 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:05 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48036682 8 -rw-r--r-- 1 cltbld staff 1185 May 9 18:05 source/Thunderbird.app/Contents/Resources/searchplugins/eBay-fi.xml 48036681 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:05 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48036680 8 -rw-r--r-- 1 cltbld staff 1343 May 9 18:05 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-fi.xml 48036679 8 -rw-r--r-- 1 cltbld staff 1255 May 9 18:05 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-fi.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:05:18-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:05:19 GMT Keep-Alive: timeout=5, max=997 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:05:19 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fr/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fr/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:05:19-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fr/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68199935 Connection: keep-alive Date: Tue, 10 May 2016 01:05:21 GMT x-amz-replication-status: COMPLETED x-amz-version-id: umX8tR4_uRrjRlqMxa9Lf5UBW.74GxLk Last-Modified: Tue, 03 May 2016 15:31:58 GMT ETag: "aa78a310a9c9faa7b0be1ab937500ae8" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 aa89533ad2ec5e0edba466c9920bd000.cloudfront.net (CloudFront) X-Amz-Cf-Id: dQUTvJ9QOiRRnmcw7AAuagCjapqwEdz9wmJDTATulO_6HyIx8LDsMw== Length: 68199935 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 2.02M 31s 3072K ........ ........ ........ ........ ........ ........ 9% 7.47M 19s 6144K ........ ........ ........ ........ ........ ........ 13% 11.5M 13s 9216K ........ ........ ........ ........ ........ ........ 18% 19.0M 10s 12288K ........ ........ ........ ........ ........ ........ 23% 20.6M 8s 15360K ........ ........ ........ ........ ........ ........ 27% 21.5M 7s 18432K ........ ........ ........ ........ ........ ........ 32% 35.3M 6s 21504K ........ ........ ........ ........ ........ ........ 36% 35.4M 5s 24576K ........ ........ ........ ........ ........ ........ 41% 40.5M 4s 27648K ........ ........ ........ ........ ........ ........ 46% 41.1M 3s 30720K ........ ........ ........ ........ ........ ........ 50% 39.6M 3s 33792K ........ ........ ........ ........ ........ ........ 55% 51.0M 2s 36864K ........ ........ ........ ........ ........ ........ 59% 52.5M 2s 39936K ........ ........ ........ ........ ........ ........ 64% 40.3M 2s 43008K ........ ........ ........ ........ ........ ........ 69% 36.1M 1s 46080K ........ ........ ........ ........ ........ ........ 73% 42.9M 1s 49152K ........ ........ ........ ........ ........ ........ 78% 42.7M 1s 52224K ........ ........ ........ ........ ........ ........ 83% 42.3M 1s 55296K ........ ........ ........ ........ ........ ........ 87% 41.2M 1s 58368K ........ ........ ........ ........ ........ ........ 92% 43.7M 0s 61440K ........ ........ ........ ........ ........ ........ 96% 38.6M 0s 64512K ........ ........ ........ ........ 100% 7.51M=4.0s 2016-05-09 18:05:24 (16.4 MB/s) - 'update/complete.mar' saved [68199935/68199935] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/fr/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/fr/Thunderbird 38.6.0.dmg'] --2016-05-09 18:05:25-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/fr/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70230037 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:05:26 GMT ETag: "fef0de5b94cd3043aa95c12524da0371" Last-Modified: Fri, 12 Feb 2016 21:48:39 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 4g5_s2MVzf5jk1UGjKQ12uu2gLT1Poso X-Cache: Miss from cloudfront Via: 1.1 6eaa7f856e226a0db7cef6201d3b8393.cloudfront.net (CloudFront) X-Amz-Cf-Id: VTRqPjAZcqnZRq2i-S23Fo2lFhm-ht053qM6HZkN0msFMXAZMX_I4Q== Length: 70230037 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 647K 1m41s 3072K ........ ........ ........ ........ ........ ........ 8% 1.83M 65s 6144K ........ ........ ........ ........ ........ ........ 13% 4.44M 46s 9216K ........ ........ ........ ........ ........ ........ 17% 6.60M 34s 12288K ........ ........ ........ ........ ........ ........ 22% 6.62M 28s 15360K ........ ........ ........ ........ ........ ........ 26% 3.60M 24s 18432K ........ ........ ........ ........ ........ ........ 31% 2.65M 22s 21504K ........ ........ ........ ........ ........ ........ 35% 2.48M 20s 24576K ........ ........ ........ ........ ........ ........ 40% 1.82M 19s 27648K ........ ........ ........ ........ ........ ........ 44% 1.98M 18s 30720K ........ ........ ........ ........ ........ ........ 49% 1.81M 16s 33792K ........ ........ ........ ........ ........ ........ 53% 1.74M 15s 36864K ........ ........ ........ ........ ........ ........ 58% 1.73M 14s 39936K ........ ........ ........ ........ ........ ........ 62% 1.51M 13s 43008K ........ ........ ........ ........ ........ ........ 67% 1.25M 12s 46080K ........ ........ ........ ........ ........ ........ 71% 767K 11s 49152K ........ ........ ........ ........ ........ ........ 76% 451K 11s 52224K ........ ........ ........ ........ ........ ........ 80% 477K 10s 55296K ........ ........ ........ ........ ........ ........ 85% 620K 8s 58368K ........ ........ ........ ........ ........ ........ 89% 797K 6s 61440K ........ ........ ........ ........ ........ ........ 94% 932K 3s 64512K ........ ........ ........ ........ ........ ........ 98% 1.52M 1s 67584K ........ ....... 100% 1.17M=56s 2016-05-09 18:06:22 (1.20 MB/s) - 'Thunderbird 38.6.0.dmg' saved [70230037/70230037] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/fr/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/fr/Thunderbird 45.1.0.dmg'] --2016-05-09 18:06:22-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/fr/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77596443 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:06:23 GMT ETag: "ce0f5d2ed9b45f67d63761ccf2597502" Last-Modified: Mon, 09 May 2016 21:00:43 GMT x-amz-replication-status: COMPLETED x-amz-version-id: G2EKJnDmYIDSXCNJgI6iKgAH3X6KFws3 X-Cache: Miss from cloudfront Via: 1.1 bfdd5909914586f5bc4851846228c27f.cloudfront.net (CloudFront) X-Amz-Cf-Id: iO5BKYz1joqxlygveeTSNmMRxn7RVPKO6lXRr8CRmrSG6H4lhR1Vjg== Length: 77596443 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 522K 2m19s 3072K ........ ........ ........ ........ ........ ........ 8% 879K 1m46s 6144K ........ ........ ........ ........ ........ ........ 12% 861K 94s 9216K ........ ........ ........ ........ ........ ........ 16% 414K 1m45s 12288K ........ ........ ........ ........ ........ ........ 20% 1.53M 88s 15360K ........ ........ ........ ........ ........ ........ 24% 1.57M 75s 18432K ........ ........ ........ ........ ........ ........ 28% 638K 73s 21504K ........ ........ ........ ........ ........ ........ 32% 712K 70s 24576K ........ ........ ........ ........ ........ ........ 36% 447K 70s 27648K ........ ........ ........ ........ ........ ........ 40% 814K 65s 30720K ........ ........ ........ ........ ........ ........ 44% 790K 60s 33792K ........ ........ ........ ........ ........ ........ 48% 720K 55s 36864K ........ ........ ........ ........ ........ ........ 52% 963K 50s 39936K ........ ........ ........ ........ ........ ........ 56% 1.86M 43s 43008K ........ ........ ........ ........ ........ ........ 60% 1.81M 38s 46080K ........ ........ ........ ........ ........ ........ 64% 1.50M 33s 49152K ........ ........ ........ ........ ........ ........ 68% 1.57M 28s 52224K ........ ........ ........ ........ ........ ........ 72% 2.03M 24s 55296K ........ ........ ........ ........ ........ ........ 77% 1.12M 20s 58368K ........ ........ ........ ........ ........ ........ 81% 2.69M 16s 61440K ........ ........ ........ ........ ........ ........ 85% 3.13M 12s 64512K ........ ........ ........ ........ ........ ........ 89% 3.13M 8s 67584K ........ ........ ........ ........ ........ ........ 93% 2.77M 5s 70656K ........ ........ ........ ........ ........ ........ 97% 2.60M 2s 73728K ........ ........ ........ ........ 100% 2.66M=73s 2016-05-09 18:07:36 (1.02 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77596443/77596443] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-france.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-fr.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay-france.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/cnrtl-tlfi-fr.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazon-france.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/fr.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/fr.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/fr.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/fr.lproj/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo-france.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-fr.xml PREPARE ADD Contents/Resources/searchplugins/eBay-france.xml PREPARE ADD Contents/Resources/searchplugins/cnrtl-tlfi-fr.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/amazon-france.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/fr.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/fr.dic PREPARE ADD Contents/Resources/dictionaries/fr.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-france.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-fr.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay-france.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/cnrtl-tlfi-fr.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazon-france.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/fr.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/fr.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/fr.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/fr.lproj/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo-france.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-fr.xml EXECUTE ADD Contents/Resources/searchplugins/eBay-france.xml EXECUTE ADD Contents/Resources/searchplugins/cnrtl-tlfi-fr.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/amazon-france.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/fr.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/fr.dic EXECUTE ADD Contents/Resources/dictionaries/fr.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-france.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-fr.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay-france.xml FINISH REMOVEFILE Contents/Resources/searchplugins/cnrtl-tlfi-fr.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazon-france.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/fr.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/fr.dic FINISH REMOVEFILE Contents/Resources/dictionaries/fr.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/fr.lproj/ non-fatal error removing directory: Contents/Resources/fr.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo-france.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-fr.xml FINISH ADD Contents/Resources/searchplugins/eBay-france.xml FINISH ADD Contents/Resources/searchplugins/cnrtl-tlfi-fr.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/amazon-france.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/fr.lproj/InfoPlist.strings FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/fr.dic FINISH ADD Contents/Resources/dictionaries/fr.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/dictionaries/fr.aff target/Thunderbird.app/Contents/Resources/dictionaries/fr.aff 5c5 < # AFFIXES DU DICTIONNAIRE ORTHOGRAPHIQUE FRANÇAIS “TOUTES VARIANTES†v5.2 --- > # AFFIXES DU DICTIONNAIRE ORTHOGRAPHIQUE FRANÇAIS “TOUTES VARIANTES†v5.4.1 7c7 < # Généré le 19 09 2014 à 09:32 --- > # Généré le 25 08 2015 à 15:05 20c20 < MAP 6 --- > MAP 25 26a27,45 > MAP bB > MAP dD > MAP fF > MAP gG > MAP hH > MAP jJ > MAP kK > MAP lL > MAP mM > MAP nN > MAP pP > MAP qQ > MAP rR > MAP sS > MAP tT > MAP vV > MAP wW > MAP xX > MAP zZ 97c116 < REP Ω Ω --- > REP mn$ min 114c133 < ICONV 38 --- > ICONV 40 118a138 > ICONV ſt ft 120a141 > ICONV st st 188c209 < AM 431 --- > AM 465 222d242 < AM po:v1_it_q_?? 224a245 > AM po:v1_it_q_?? 252a274,275 > AM po:loc.adv > AM po:adj is:epi is:sg 255d277 < AM po:v3__t_q_?? 257,260d278 < AM po:loc.adv < AM po:v2__t_q_?? < AM po:v3__t___?? < AM po:v2__t___?? 265d282 < AM po:ipre po:1sg po:2sg 266a284,285 > AM po:ipre po:1sg po:2sg > AM po:v2__t___?? 268,269c287,288 < AM po:v1__t___?? po:infi < AM po:adj is:epi is:sg --- > AM po:v3__t___?? > AM po:v2__t_q_?? 271a291 > AM po:v1__t___?? po:infi 273a294 > AM po:v3__t_q_?? 275,276d295 < AM po:v2_i____?? < AM po:v3_i____?? 281,283c300,301 < AM po:v3_it_q_?? < AM po:v2_it_q_?? < AM po:v2_it___?? --- > AM po:v3_it_q__a > AM po:v2_i____?? 287a306,310 > AM po:v1__t____a > AM po:v3__t_q__a > AM po:v2_it_q_?? > AM po:v1_it_q__a > AM po:v1_it____a 289,290c312 < AM po:adj is:fem < AM po:nom po:adj is:fem --- > AM po:v1__t_q__a 291a314,316 > AM po:adj is:fem > AM po:v2_it___?? > AM po:v1_itnq__a 294c319 < AM po:v1_itn__?? --- > AM po:v3_i____?? 296c321,322 < AM po:v1__tnq_?? --- > AM po:nom po:adj is:fem > AM po:v3_it____a 298,299c324,325 < AM po:v3_it___?? < AM po:v1_itnq_?? --- > AM po:npr is:mas is:inv > AM po:v1_itn__?? 302c328 < AM po:npr is:mas is:inv --- > AM po:nom is:epi is:sg 305d330 < AM po:nom is:epi is:sg 309a335 > AM po:v1__tnq_?? 311a338 > AM po:v3_itnq__a 313,315d339 < AM po:v1_i_n__?? < AM po:v1___n__?? < AM po:v1____p_e_ po:infi 316a341,345 > AM po:adj is:epi is:pl > AM po:v3_i_____a > AM po:v2_it____a > AM po:v1_i_____a > AM po:v1____p_e_ po:infi 318a348,354 > AM po:v2__t_q__a > AM po:v1_itnq_?? > AM po:v1__tnq__a > AM po:v2_it_q__a > AM po:v2_i_____a > AM po:v1_i_n__?? > AM po:v1___n__?? 320a357 > AM po:v3_it_q_?? 322d358 < AM po:ipre po:spre po:simp po:3pl 323a360,363 > AM po:ipre po:spre po:simp po:3pl > AM po:v3_it___?? > AM po:v3__tnq__a > AM po:v3__t____a 330a371 > AM po:v3_i____e_ 334,336c375,377 < AM po:adj is:epi is:pl < AM po:v3_itnq_?? < AM po:v3_i____e_ --- > AM po:v3_itn___a > AM po:v2__t____a > AM po:v1_itn___a 338d378 < AM po:v1__t____a 342d381 < AM po:pfx 344c383,385 < AM po:v3_i_nq_?? --- > AM po:adj is:fem is:sg > AM po:v3_it_!__a > AM po:v3_i_n__e_ 346,347c387 < AM po:v3__t_q__a < AM po:v1_it____a --- > AM po:pfx 355,356c395,396 < AM po:v3__tnq_?? < AM po:v3__tn__?? --- > AM po:v2_itnq__a > AM po:v2_i_n___a 358c398,400 < AM po:v1__t_q__a --- > AM po:titr is:mas is:sg > AM po:titr is:fem is:sg > AM po:mg po:proind 359a402,403 > AM po:mg po:prep po:prepv > AM po:mg po:negadv 363,365c407,408 < AM po:adj is:fem is:sg < AM po:v3___nq_?? < AM po:v3___n__?? --- > AM po:adj is:fem is:pl > AM po:v3_i_nq__a 368a412 > AM po:npr is:fem is:inv 370,372d413 < AM po:mg po:proneg is:mas is:sg < AM po:mg po:proind < AM po:mg po:negadv 376,379d416 < AM po:adj is:fem is:pl < AM po:v3_itn__?? < AM po:v3_it_q__a < AM po:v3_i_n__?? 381d417 < AM po:v2_i_n__?? 383c419 < AM po:titr is:mas is:sg --- > AM po:v1_i_n___a 385d420 < AM po:titr is:fem is:sg 389c424 < AM po:mg po:prep po:prepv --- > AM po:mg po:proneg is:mas is:sg 394,395c429,431 < AM po:v3_itnq__a < AM po:v3_i_n__e_ --- > AM po:v3_i_n___a > AM po:v3__tn__?? > AM po:v3___n__?? 397d432 < AM po:v2___n__?? 399c434,435 < AM po:v1_i_____a --- > AM po:v1_it_!__a > AM po:titr is:mas is:pl 402d437 < AM po:npr is:fem is:inv 408a444 > AM po:mg po:proint po:prorel 412a449 > AM po:loc.interj 416c453,456 < AM po:v3_i__q_?? --- > AM po:v3_itnq_?? > AM po:v3_i_nq_?? > AM po:v3_i_n!__a > AM po:v3_i__q__a 418a459,460 > AM po:v3__tnq_?? > AM po:v3__tn___a 420,421c462,464 < AM po:v2_itnq_?? < AM po:v2_it____a --- > AM po:v3___nq__a > AM po:v3___n___a > AM po:v2__tnq__a 423c466 < AM po:v1_it_q__a --- > AM po:v1_it_q_ea 427c470 < AM po:titr is:mas is:pl --- > AM po:v1__t_!__a 440d482 < AM po:mg po:proint po:prorel 462c504,505 < AM po:v3_it__m?? --- > AM po:v3_itn__?? > AM po:v3_it__m_a 463a507 > AM po:v3_i_n__?? 464a509 > AM po:v3_i___m_a 465a511 > AM po:v3_i______ 467a514,516 > AM po:v3__tnqmea > AM po:v3__tn!__a > AM po:v3___nq_?? 469c518 < AM po:v2_itn__?? --- > AM po:v2_itn!__a 471c520,521 < AM po:v2__tnq_?? --- > AM po:v2_it_!__a > AM po:v2__tn___a 473,474c523,525 < AM po:v2__t____a < AM po:v1_itnq__a --- > AM po:v2___n___a > AM po:v2___n__?? > AM po:v1_itn!__a 479,480c530,531 < AM po:v1_i___!e_ < AM po:v1__tnq__a --- > AM po:v1_i___m_a > AM po:v1_i__!!e_ 482a534 > AM po:v1___n___a 487a540 > AM po:prn is:mas 493a547 > AM po:npr is:fem is:sg 514a569 > AM po:nom is:mas is:pl st:crédit-bail 553a609,612 > AM po:mg po:properobj is:mas is:sg > AM po:mg po:properobj is:fem is:sg > AM po:mg po:properobj is:epi is:pl > AM po:mg po:proneg is:fem is:sg 557,558d615 < AM po:mg po:proind po:adjind < AM po:mg po:proind po:(nf) is:epi is:pl 559a617 > AM po:mg po:proind is:epi is:pl 593c651 < AM po:mg po:adv po:prodem po:partdem --- > AM po:mg po:adv po:prodem 598d655 < AM po:mg po:adv po:loc.adv 602d658 < AM po:loc 611d666 < AM po:geo is:epi is:inv 643a699 > AF -- 649d704 < AF -- 658a714 > AF A.() 661d716 < AF A.() 680d734 < AF n'q'j' 681a736 > AF n'q'j' 713a769 > AF S= 717d772 < AF S= 898,931c953,986 < PFX L' 0 l' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 91 < PFX L' a l'A a 91 < PFX L' à l'À à 91 < PFX L' â l' â 91 < PFX L' e l'E e 91 < PFX L' é l'É é 91 < PFX L' è l'È è 91 < PFX L' ê l'Ê ê 91 < PFX L' i l'I i 91 < PFX L' î l'Î î 91 < PFX L' o l'O o 91 < PFX L' ô l'Ô ô 91 < PFX L' u l'U u 91 < PFX L' y l'Y y 91 < PFX L' h l'H h 91 < PFX L' œ l'Œ œ 91 < PFX L' æ l'Æ æ 91 < PFX L' 0 L' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 91 < PFX L' a L'A a 91 < PFX L' à L'À à 91 < PFX L' â L' â 91 < PFX L' e L'E e 91 < PFX L' é L'É é 91 < PFX L' è L'È è 91 < PFX L' ê L'Ê ê 91 < PFX L' i L'I i 91 < PFX L' î L'Î î 91 < PFX L' o L'O o 91 < PFX L' ô L'Ô ô 91 < PFX L' u L'U u 91 < PFX L' y L'Y y 91 < PFX L' h L'H h 91 < PFX L' œ L'Œ œ 91 < PFX L' æ L'Æ æ 91 --- > PFX L' 0 l' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 89 > PFX L' a l'A a 89 > PFX L' à l'À à 89 > PFX L' â l' â 89 > PFX L' e l'E e 89 > PFX L' é l'É é 89 > PFX L' è l'È è 89 > PFX L' ê l'Ê ê 89 > PFX L' i l'I i 89 > PFX L' î l'Î î 89 > PFX L' o l'O o 89 > PFX L' ô l'Ô ô 89 > PFX L' u l'U u 89 > PFX L' y l'Y y 89 > PFX L' h l'H h 89 > PFX L' œ l'Œ œ 89 > PFX L' æ l'Æ æ 89 > PFX L' 0 L' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 89 > PFX L' a L'A a 89 > PFX L' à L'À à 89 > PFX L' â L' â 89 > PFX L' e L'E e 89 > PFX L' é L'É é 89 > PFX L' è L'È è 89 > PFX L' ê L'Ê ê 89 > PFX L' i L'I i 89 > PFX L' î L'Î î 89 > PFX L' o L'O o 89 > PFX L' ô L'Ô ô 89 > PFX L' u L'U u 89 > PFX L' y L'Y y 89 > PFX L' h L'H h 89 > PFX L' œ L'Œ œ 89 > PFX L' æ L'Æ æ 89 934,967c989,1022 < PFX D' 0 d' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 92 < PFX D' a d'A a 92 < PFX D' à d'À à 92 < PFX D' â d' â 92 < PFX D' e d'E e 92 < PFX D' é d'É é 92 < PFX D' è d'È è 92 < PFX D' ê d'Ê ê 92 < PFX D' i d'I i 92 < PFX D' î d'Î î 92 < PFX D' o d'O o 92 < PFX D' ô d'Ô ô 92 < PFX D' u d'U u 92 < PFX D' y d'Y y 92 < PFX D' h d'H h 92 < PFX D' œ d'Œ œ 92 < PFX D' æ d'Æ æ 92 < PFX D' 0 D' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 92 < PFX D' a D'A a 92 < PFX D' à D'À à 92 < PFX D' â D' â 92 < PFX D' e D'E e 92 < PFX D' é D'É é 92 < PFX D' è D'È è 92 < PFX D' ê D'Ê ê 92 < PFX D' i D'I i 92 < PFX D' î D'Î î 92 < PFX D' o D'O o 92 < PFX D' ô D'Ô ô 92 < PFX D' u D'U u 92 < PFX D' y D'Y y 92 < PFX D' h D'H h 92 < PFX D' œ D'Œ œ 92 < PFX D' æ D'Æ æ 92 --- > PFX D' 0 d' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 90 > PFX D' a d'A a 90 > PFX D' à d'À à 90 > PFX D' â d' â 90 > PFX D' e d'E e 90 > PFX D' é d'É é 90 > PFX D' è d'È è 90 > PFX D' ê d'Ê ê 90 > PFX D' i d'I i 90 > PFX D' î d'Î î 90 > PFX D' o d'O o 90 > PFX D' ô d'Ô ô 90 > PFX D' u d'U u 90 > PFX D' y d'Y y 90 > PFX D' h d'H h 90 > PFX D' œ d'Œ œ 90 > PFX D' æ d'Æ æ 90 > PFX D' 0 D' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 90 > PFX D' a D'A a 90 > PFX D' à D'À à 90 > PFX D' â D' â 90 > PFX D' e D'E e 90 > PFX D' é D'É é 90 > PFX D' è D'È è 90 > PFX D' ê D'Ê ê 90 > PFX D' i D'I i 90 > PFX D' î D'Î î 90 > PFX D' o D'O o 90 > PFX D' ô D'Ô ô 90 > PFX D' u D'U u 90 > PFX D' y D'Y y 90 > PFX D' h D'H h 90 > PFX D' œ D'Œ œ 90 > PFX D' æ D'Æ æ 90 970,1003c1025,1058 < PFX Q' 0 qu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 99 < PFX Q' a qu'A a 99 < PFX Q' à qu'À à 99 < PFX Q' â qu' â 99 < PFX Q' e qu'E e 99 < PFX Q' é qu'É é 99 < PFX Q' è qu'È è 99 < PFX Q' ê qu'Ê ê 99 < PFX Q' i qu'I i 99 < PFX Q' î qu'Î î 99 < PFX Q' o qu'O o 99 < PFX Q' ô qu'Ô ô 99 < PFX Q' u qu'U u 99 < PFX Q' y qu'Y y 99 < PFX Q' h qu'H h 99 < PFX Q' œ qu'Œ œ 99 < PFX Q' æ qu'Æ æ 99 < PFX Q' 0 Qu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 99 < PFX Q' a Qu'A a 99 < PFX Q' à Qu'À à 99 < PFX Q' â Qu' â 99 < PFX Q' e Qu'E e 99 < PFX Q' é Qu'É é 99 < PFX Q' è Qu'È è 99 < PFX Q' ê Qu'Ê ê 99 < PFX Q' i Qu'I i 99 < PFX Q' î Qu'Î î 99 < PFX Q' o Qu'O o 99 < PFX Q' ô Qu'Ô ô 99 < PFX Q' u Qu'U u 99 < PFX Q' y Qu'Y y 99 < PFX Q' h Qu'H h 99 < PFX Q' œ Qu'Œ œ 99 < PFX Q' æ Qu'Æ æ 99 --- > PFX Q' 0 qu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 96 > PFX Q' a qu'A a 96 > PFX Q' à qu'À à 96 > PFX Q' â qu' â 96 > PFX Q' e qu'E e 96 > PFX Q' é qu'É é 96 > PFX Q' è qu'È è 96 > PFX Q' ê qu'Ê ê 96 > PFX Q' i qu'I i 96 > PFX Q' î qu'Î î 96 > PFX Q' o qu'O o 96 > PFX Q' ô qu'Ô ô 96 > PFX Q' u qu'U u 96 > PFX Q' y qu'Y y 96 > PFX Q' h qu'H h 96 > PFX Q' œ qu'Œ œ 96 > PFX Q' æ qu'Æ æ 96 > PFX Q' 0 Qu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 96 > PFX Q' a Qu'A a 96 > PFX Q' à Qu'À à 96 > PFX Q' â Qu' â 96 > PFX Q' e Qu'E e 96 > PFX Q' é Qu'É é 96 > PFX Q' è Qu'È è 96 > PFX Q' ê Qu'Ê ê 96 > PFX Q' i Qu'I i 96 > PFX Q' î Qu'Î î 96 > PFX Q' o Qu'O o 96 > PFX Q' ô Qu'Ô ô 96 > PFX Q' u Qu'U u 96 > PFX Q' y Qu'Y y 96 > PFX Q' h Qu'H h 96 > PFX Q' œ Qu'Œ œ 96 > PFX Q' æ Qu'Æ æ 96 1006,1011c1061,1066 < PFX Q* 0 quoiqu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 270 < PFX Q* 0 puisqu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 271 < PFX Q* 0 lorsqu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 272 < PFX Q* 0 Quoiqu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 270 < PFX Q* 0 Puisqu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 271 < PFX Q* 0 Lorsqu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 272 --- > PFX Q* 0 quoiqu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 291 > PFX Q* 0 puisqu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 292 > PFX Q* 0 lorsqu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 293 > PFX Q* 0 Quoiqu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 291 > PFX Q* 0 Puisqu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 292 > PFX Q* 0 Lorsqu' [aàâeèéêiîoôuyhœæAÀÂEÈÉÊIÎOÔUYHŒÆ] 293 1014c1069 < PFX Qj 0 jusqu' [aàâeèéêiîoôuyhœæ] 430 --- > PFX Qj 0 jusqu' [aàâeèéêiîoôuyhœæ] 464 1017c1072 < PFX Si 0 s' . 426 --- > PFX Si 0 s' . 460 1020,1021c1075,1076 < SFX S. 0 0 . 118 < SFX S. 0 s [^sxz] 97 --- > SFX S. 0 0 [^sxz] 122 > SFX S. 0 s [^sxz] 94 1027,1030c1082,1085 < SFX X. 0 0 . 118 < SFX X. 0 x [aeoœ]u 97 < SFX X. l ux al 97 < SFX X. il ux ail 97 --- > SFX X. 0 0 [ul] 122 > SFX X. 0 x [aeoœ]u 94 > SFX X. l ux al 94 > SFX X. il ux ail 94 1033,1041c1088,1096 < SFX A. 0 0 . 118 < SFX A. an en an 97 < SFX A. f ves f 97 < SFX A. h hes h 97 < SFX A. s ses s 97 < SFX A. x xes x 97 < SFX A. y ies y 97 < SFX A. zz zzes zz 97 < SFX A. z zzes [^z]z 97 --- > SFX A. 0 0 . 122 > SFX A. an en an 94 > SFX A. f ves f 94 > SFX A. h hes h 94 > SFX A. s ses s 94 > SFX A. x xes x 94 > SFX A. y ies y 94 > SFX A. zz zzes zz 94 > SFX A. z zzes [^z]z 94 1044,1134c1099,1193 < SFX I. 0 0 . 118 < SFX I. a e a 97 < SFX I. e i e 97 < SFX I. en ina en 97 < SFX I. o i o 97 < SFX I. um a um 97 < SFX I. us i us 97 < < SFX F. Y 72 < SFX F. 0 0 . 204 < SFX F. 0 s [eë] 205 < SFX F. e 0 [éiï]e 82 < SFX F. e s [éiï]e 83 < SFX F. rice eur [dt]rice 82 < SFX F. rice eurs [dt]rice 83 < SFX F. de d de 82 < SFX F. de ds de 83 < SFX F. fe f fe 82 < SFX F. fe fs fe 83 < SFX F. anche anc anche 82 < SFX F. anche ancs anche 83 < SFX F. èche ec èche 82 < SFX F. èche ecs èche 83 < SFX F. aiche ais aiche 130 < SFX F. aîche ais aîche 130 < SFX F. khe kh khe 82 < SFX F. khe khs khe 83 < SFX F. he h [ut]he 82 < SFX F. he hs [ut]he 83 < SFX F. ke k ke 82 < SFX F. ke ks ke 83 < SFX F. le l [aiouûh]le 82 < SFX F. le ls [aiouûh]le 83 < SFX F. lle l [eiu]lle 82 < SFX F. lle ls [eiu]lle 83 < SFX F. ne n [aiouï]ne 82 < SFX F. ne ns [aiouï]ne 83 < SFX F. nne n [aeo]nne 82 < SFX F. nne ns [aeo]nne 83 < SFX F. ène en ène 82 < SFX F. ène ens ène 83 < SFX F. igne in igne 82 < SFX F. igne ins igne 83 < SFX F. re r [aiuûy]re 82 < SFX F. re rs [aiuûy]re 83 < SFX F. ère er ère 82 < SFX F. ère ers ère 83 < SFX F. se s [^us]se 130 < SFX F. esse e [^eo].esse 82 < SFX F. esse es [^eo].esse 83 < SFX F. eresse eur eresse 82 < SFX F. eresse eurs eresse 83 < SFX F. oresse eur oresse 82 < SFX F. oresse eurs oresse 83 < SFX F. sse s [^e]sse 130 < SFX F. use us [^eo]use 130 < SFX F. euse eur euse 82 < SFX F. euse eurs euse 83 < SFX F. te t [^èt]te 82 < SFX F. te ts [^èt]te 83 < SFX F. tte t tte 82 < SFX F. tte ts tte 83 < SFX F. ète et ète 82 < SFX F. ète ets ète 83 < SFX F. ue u [^gq]ue 82 < SFX F. ue us [^gq]ue 83 < SFX F. gue g gue 82 < SFX F. gue gs gue 83 < SFX F. cque c cque 82 < SFX F. cque cs cque 83 < SFX F. que c [^c]que 82 < SFX F. que cs [^c]que 83 < SFX F. ève ef ève 82 < SFX F. ève efs ève 83 < SFX F. ve f [iïu]ve 82 < SFX F. ve fs [iïu]ve 83 < SFX F. uë u uë 82 < SFX F. uë us uë 83 < SFX F. üe u üe 82 < SFX F. üe us üe 83 < SFX F. ze z ze 130 < < SFX W. N 8 < SFX W. 0 0 . 204 < SFX W. e es e 205 < SFX W. ce x ce 130 < SFX W. use ux [eo]use 130 < SFX W. ausse aux ausse 130 < SFX W. ousse oux ousse 130 < SFX W. ale al ale 82 < SFX W. ale aux ale 83 --- > SFX I. 0 0 . 122 > SFX I. a e a 94 > SFX I. e i e 94 > SFX I. en ina en 94 > SFX I. o i o 94 > SFX I. um a um 94 > SFX I. us i us 94 > > SFX F. Y 74 > SFX F. 0 0 [eë] 218 > SFX F. 0 s [eë] 219 > SFX F. e 0 [éiï]e 80 > SFX F. e s [éiï]e 81 > SFX F. rice eur [dt]rice 80 > SFX F. rice eurs [dt]rice 81 > SFX F. de d de 80 > SFX F. de ds de 81 > SFX F. fe f fe 80 > SFX F. fe fs fe 81 > SFX F. anche anc anche 80 > SFX F. anche ancs anche 81 > SFX F. èche ec èche 80 > SFX F. èche ecs èche 81 > SFX F. aiche ais aiche 138 > SFX F. aîche ais aîche 138 > SFX F. khe kh khe 80 > SFX F. khe khs khe 81 > SFX F. he h [ut]he 80 > SFX F. he hs [ut]he 81 > SFX F. ke k ke 80 > SFX F. ke ks ke 81 > SFX F. le l [aiouûh]le 80 > SFX F. le ls [aiouûh]le 81 > SFX F. lle l [eiu]lle 80 > SFX F. lle ls [eiu]lle 81 > SFX F. olle ou olle 80 > SFX F. olle ous olle 81 > SFX F. ne n [aiouï]ne 80 > SFX F. ne ns [aiouï]ne 81 > SFX F. nne n [aeo]nne 80 > SFX F. nne ns [aeo]nne 81 > SFX F. ène en ène 80 > SFX F. ène ens ène 81 > SFX F. igne in igne 80 > SFX F. igne ins igne 81 > SFX F. re r [aiuûy]re 80 > SFX F. re rs [aiuûy]re 81 > SFX F. ère er ère 80 > SFX F. ère ers ère 81 > SFX F. se s [^us]se 138 > SFX F. esse e [^eo].esse 80 > SFX F. esse es [^eo].esse 81 > SFX F. eresse eur eresse 80 > SFX F. eresse eurs eresse 81 > SFX F. oresse eur oresse 80 > SFX F. oresse eurs oresse 81 > SFX F. sse s [^e]sse 138 > SFX F. use us [^eo]use 138 > SFX F. euse eur euse 80 > SFX F. euse eurs euse 81 > SFX F. te t [^èt]te 80 > SFX F. te ts [^èt]te 81 > SFX F. tte t tte 80 > SFX F. tte ts tte 81 > SFX F. ète et ète 80 > SFX F. ète ets ète 81 > SFX F. ue u [^gq]ue 80 > SFX F. ue us [^gq]ue 81 > SFX F. gue g gue 80 > SFX F. gue gs gue 81 > SFX F. cque c cque 80 > SFX F. cque cs cque 81 > SFX F. que c [^c]que 80 > SFX F. que cs [^c]que 81 > SFX F. ève ef ève 80 > SFX F. ève efs ève 81 > SFX F. ve f [iïu]ve 80 > SFX F. ve fs [iïu]ve 81 > SFX F. uë u uë 80 > SFX F. uë us uë 81 > SFX F. üe u üe 80 > SFX F. üe us üe 81 > SFX F. ze z ze 138 > > SFX W. N 10 > SFX W. 0 0 e 218 > SFX W. e es e 219 > SFX W. ce x ce 138 > SFX W. use ux [eo]use 138 > SFX W. ausse aux ausse 138 > SFX W. ousse oux ousse 138 > SFX W. ale al ale 80 > SFX W. ale aux ale 81 > SFX W. elle eau elle 80 > SFX W. elle eaux elle 81 1137,1138c1196,1197 < SFX S* 0 0/50 [^sxz] 118 < SFX S* 0 s/9 [^sxz] 97 --- > SFX S* 0 0/50 [^sxz] 122 > SFX S* 0 s/9 [^sxz] 94 1141,1144c1200,1203 < SFX X* 0 0/50 . 118 < SFX X* 0 x/9 [aeoœ]u 97 < SFX X* l ux/9 al 97 < SFX X* il ux/9 ail 97 --- > SFX X* 0 0/50 [ul] 122 > SFX X* 0 x/9 [aeoœ]u 94 > SFX X* l ux/9 al 94 > SFX X* il ux/9 ail 94 1147,1162c1206,1221 < SFX A* an an/50 an 118 < SFX A* an en/9 an 97 < SFX A* f f/50 f 118 < SFX A* f ves/9 f 97 < SFX A* h h/50 h 118 < SFX A* h hes/9 h 97 < SFX A* s s/50 s 118 < SFX A* s ses/9 s 97 < SFX A* x h/50 x 118 < SFX A* x hes/9 x 97 < SFX A* y y/50 y 118 < SFX A* y ies/9 y 97 < SFX A* zz zz/50 zz 118 < SFX A* zz zzes/9 zz 97 < SFX A* z z/50 [^z]z 118 < SFX A* z zzes/9 [^z]z 97 --- > SFX A* an an/50 an 122 > SFX A* an en/9 an 94 > SFX A* f f/50 f 122 > SFX A* f ves/9 f 94 > SFX A* h h/50 h 122 > SFX A* h hes/9 h 94 > SFX A* s s/50 s 122 > SFX A* s ses/9 s 94 > SFX A* x x/50 x 122 > SFX A* x xes/9 x 94 > SFX A* y y/50 y 122 > SFX A* y ies/9 y 94 > SFX A* zz zz/50 zz 122 > SFX A* zz zzes/9 zz 94 > SFX A* z z/50 [^z]z 122 > SFX A* z zzes/9 [^z]z 94 1165,1176c1224,1235 < SFX I* a a/50 a 118 < SFX I* a e/9 a 97 < SFX I* e e/50 e 118 < SFX I* e i/9 e 97 < SFX I* en en/50 en 118 < SFX I* en ina/9 en 97 < SFX I* o o/50 o 118 < SFX I* o i/9 o 97 < SFX I* um um/50 um 118 < SFX I* um a/9 um 97 < SFX I* us us/50 us 118 < SFX I* us i/9 us 97 --- > SFX I* a a/50 a 122 > SFX I* a e/9 a 94 > SFX I* e e/50 e 122 > SFX I* e i/9 e 94 > SFX I* en en/50 en 122 > SFX I* en ina/9 en 94 > SFX I* o o/50 o 122 > SFX I* o i/9 o 94 > SFX I* um um/50 um 122 > SFX I* um a/9 um 94 > SFX I* us us/50 us 122 > SFX I* us i/9 us 94 1179,1246c1238,1307 < SFX F* 0 0/50 . 204 < SFX F* 0 s/9 [eë] 205 < SFX F* e 0/50 [éiï]e 82 < SFX F* e s/9 [éiï]e 83 < SFX F* rice eur/50 [dt]rice 82 < SFX F* rice eurs/9 [dt]rice 83 < SFX F* de d/50 de 82 < SFX F* de ds/9 de 83 < SFX F* he h/50 [ut]he 82 < SFX F* he hs/9 [ut]he 83 < SFX F* èke ek/50 èke 82 < SFX F* èke eks/9 èke 83 < SFX F* le l/50 [aiouû]le 82 < SFX F* le ls/9 [aiouû]le 83 < SFX F* lle l/50 [eiu]lle 82 < SFX F* lle ls/9 [eiu]lle 83 < SFX F* ne n/50 [aiouï]ne 82 < SFX F* ne ns/9 [aiouï]ne 83 < SFX F* nne n/50 [aeo]nne 82 < SFX F* nne ns/9 [aeo]nne 83 < SFX F* gne n/50 igne 82 < SFX F* gne ns/9 igne 83 < SFX F* re r/50 [aiuûy]re 82 < SFX F* re rs/9 [aiuûy]re 83 < SFX F* ère er/50 ère 82 < SFX F* ère ers/9 ère 83 < SFX F* se s/50 [^us]se 130 < SFX F* esse e/50 [^eo].esse 82 < SFX F* esse es/9 [^eo].esse 83 < SFX F* eresse eur/50 eresse 82 < SFX F* eresse eurs/9 eresse 83 < SFX F* oresse eur/50 oresse 82 < SFX F* oresse eurs/9 oresse 83 < SFX F* sse s/50 [^e]sse 130 < SFX F* use us/50 [^eo]use 130 < SFX F* euse eur/50 euse 82 < SFX F* euse eurs/9 euse 83 < SFX F* te t/50 [^èt]te 82 < SFX F* te ts/9 [^èt]te 83 < SFX F* tte t/50 tte 82 < SFX F* tte ts/9 tte 83 < SFX F* ète et/50 ète 82 < SFX F* ète ets/9 ète 83 < SFX F* ue u/50 [^gq]ue 82 < SFX F* ue us/9 [^gq]ue 83 < SFX F* gue g/50 gue 82 < SFX F* gue gs/9 gue 83 < SFX F* cque c/50 cque 82 < SFX F* cque cs/9 cque 83 < SFX F* que c/50 [^c]que 82 < SFX F* que cs/9 [^c]que 83 < SFX F* ève ef/50 ève 82 < SFX F* ève efs/9 ève 83 < SFX F* ve f/50 [iïu]ve 82 < SFX F* ve fs/9 [iïu]ve 83 < SFX F* uë u/50 uë 82 < SFX F* uë us/9 uë 83 < SFX F* üe u/50 üe 82 < SFX F* üe us/9 üe 83 < < SFX W* Y 7 < SFX W* 0 0/50 . 204 < SFX W* e es/9 e 205 < SFX W* ce x/50 ce 130 < SFX W* use ux/50 [eo]use 130 < SFX W* ousse oux/50 ousse 130 < SFX W* ale al/50 ale 82 < SFX W* ale aux/9 ale 83 --- > SFX F* 0 0/50 [eë] 218 > SFX F* 0 s/9 [eë] 219 > SFX F* e 0/50 [éiï]e 80 > SFX F* e s/9 [éiï]e 81 > SFX F* rice eur/50 [dt]rice 80 > SFX F* rice eurs/9 [dt]rice 81 > SFX F* de d/50 de 80 > SFX F* de ds/9 de 81 > SFX F* he h/50 [ut]he 80 > SFX F* he hs/9 [ut]he 81 > SFX F* èke ek/50 èke 80 > SFX F* èke eks/9 èke 81 > SFX F* le l/50 [aiouû]le 80 > SFX F* le ls/9 [aiouû]le 81 > SFX F* lle l/50 [eiu]lle 80 > SFX F* lle ls/9 [eiu]lle 81 > SFX F* ne n/50 [aiouï]ne 80 > SFX F* ne ns/9 [aiouï]ne 81 > SFX F* nne n/50 [aeo]nne 80 > SFX F* nne ns/9 [aeo]nne 81 > SFX F* gne n/50 igne 80 > SFX F* gne ns/9 igne 81 > SFX F* re r/50 [aiuûy]re 80 > SFX F* re rs/9 [aiuûy]re 81 > SFX F* ère er/50 ère 80 > SFX F* ère ers/9 ère 81 > SFX F* se s/50 [^us]se 138 > SFX F* esse e/50 [^eo].esse 80 > SFX F* esse es/9 [^eo].esse 81 > SFX F* eresse eur/50 eresse 80 > SFX F* eresse eurs/9 eresse 81 > SFX F* oresse eur/50 oresse 80 > SFX F* oresse eurs/9 oresse 81 > SFX F* sse s/50 [^e]sse 138 > SFX F* use us/50 [^eo]use 138 > SFX F* euse eur/50 euse 80 > SFX F* euse eurs/9 euse 81 > SFX F* te t/50 [^èt]te 80 > SFX F* te ts/9 [^èt]te 81 > SFX F* tte t/50 tte 80 > SFX F* tte ts/9 tte 81 > SFX F* ète et/50 ète 80 > SFX F* ète ets/9 ète 81 > SFX F* ue u/50 [^gq]ue 80 > SFX F* ue us/9 [^gq]ue 81 > SFX F* gue g/50 gue 80 > SFX F* gue gs/9 gue 81 > SFX F* cque c/50 cque 80 > SFX F* cque cs/9 cque 81 > SFX F* que c/50 [^c]que 80 > SFX F* que cs/9 [^c]que 81 > SFX F* ève ef/50 ève 80 > SFX F* ève efs/9 ève 81 > SFX F* ve f/50 [iïu]ve 80 > SFX F* ve fs/9 [iïu]ve 81 > SFX F* uë u/50 uë 80 > SFX F* uë us/9 uë 81 > SFX F* üe u/50 üe 80 > SFX F* üe us/9 üe 81 > > SFX W* Y 9 > SFX W* 0 0/50 e 218 > SFX W* e es/9 e 219 > SFX W* ce x/50 ce 138 > SFX W* use ux/50 [eo]use 138 > SFX W* ousse oux/50 ousse 138 > SFX W* ale al/50 ale 80 > SFX W* ale aux/9 ale 81 > SFX W* elle eau/50 elle 80 > SFX W* elle eaux/9 elle 81 1250,1251c1311,1312 < PFX Um 0 l' [aàâeèéêiîoôuyœæ] 91 < PFX Um 0 d'/1 [aàâeèéêiîoôuyœæ] 92 --- > PFX Um 0 l' [aàâeèéêiîoôuyœæ] 89 > PFX Um 0 d'/1 [aàâeèéêiîoôuyœæ] 90 1255,1256c1316,1317 < PFX Um 0 l'exa . 91 < PFX Um 0 d'exa/1 . 92 --- > PFX Um 0 l'exa . 89 > PFX Um 0 d'exa/1 . 90 1264,1265c1325,1326 < PFX Um 0 l'hecto . 91 < PFX Um 0 d'hecto/1 . 92 --- > PFX Um 0 l'hecto . 89 > PFX Um 0 d'hecto/1 . 90 1275,1276c1336,1337 < PFX Um 0 l'atto . 91 < PFX Um 0 d'atto/1 . 92 --- > PFX Um 0 l'atto . 89 > PFX Um 0 d'atto/1 . 90 1282,1283c1343,1344 < PFX Ui 0 l' [aàâeèéêiîoôuyœæ] 91 < PFX Ui 0 d' [aàâeèéêiîoôuyœæ] 92 --- > PFX Ui 0 l' [aàâeèéêiîoôuyœæ] 89 > PFX Ui 0 d' [aàâeèéêiîoôuyœæ] 90 1287,1288c1348,1349 < PFX Ui 0 l'exa . 91 < PFX Ui 0 d'exa . 92 --- > PFX Ui 0 l'exa . 89 > PFX Ui 0 d'exa . 90 1296,1297c1357,1358 < PFX Ui 0 l'hecto . 91 < PFX Ui 0 d'hecto . 92 --- > PFX Ui 0 l'hecto . 89 > PFX Ui 0 d'hecto . 90 1307,1308c1368,1369 < PFX Ui 0 l'atto . 91 < PFX Ui 0 d'atto . 92 --- > PFX Ui 0 l'atto . 89 > PFX Ui 0 d'atto . 90 1335c1396 < PFX n' 0 n' [aàâeèéêiîoôuyhœæ] 428 --- > PFX n' 0 n' [aàâeèéêiîoôuyhœæ] 462 1338c1399 < PFX q' 0 qu' [aàâeèéêiîoôuyhœæ] 99 --- > PFX q' 0 qu' [aàâeèéêiîoôuyhœæ] 96 1341c1402 < PFX d' 0 d' [aàâeèéêiîoôuyhœæ] 92 --- > PFX d' 0 d' [aàâeèéêiîoôuyhœæ] 90 1344c1405 < PFX j' 0 j' [aàâeèéêiîoôuyhœæ] 431 --- > PFX j' 0 j' [aàâeèéêiîoôuyhœæ] 465 1347,1348c1408,1409 < PFX c' 0 c' [eé] 273 < PFX c' 0 ç' a 273 --- > PFX c' 0 c' [eé] 294 > PFX c' 0 ç' a 294 1351c1412 < PFX l' 0 l' [aàâeèéêiîoôuyhœæ] 91 --- > PFX l' 0 l' [aàâeèéêiîoôuyhœæ] 89 1354c1415 < PFX m' 0 m' [aàâeèéêiîoôuyhœæ] 429 --- > PFX m' 0 m' [aàâeèéêiîoôuyhœæ] 463 1357c1418 < PFX t' 0 t' [aàâeèéêiîoôuyhœæ] 425 --- > PFX t' 0 t' [aàâeèéêiîoôuyhœæ] 459 1360c1421 < PFX s' 0 s' [aàâeèéêiîoôuyhœæ] 427 --- > PFX s' 0 s' [aàâeèéêiîoôuyhœæ] 461 1364,1371c1425,1432 < SFX zA voir yant/23 avoir 41 < SFX zA avoir eu avoir 300 < SFX zA avoir eus avoir 301 < SFX zA avoir eue avoir 302 < SFX zA avoir eues avoir 303 < SFX zA voir i/42 avoir 203 < SFX zA voir s/23 avoir 187 < SFX zA voir 0/98 avoir 68 --- > SFX zA voir yant/24 avoir 41 > SFX zA avoir eu avoir 332 > SFX zA avoir eus avoir 333 > SFX zA avoir eue avoir 334 > SFX zA avoir eues avoir 335 > SFX zA voir i/42 avoir 217 > SFX zA voir s/24 avoir 207 > SFX zA voir 0/98 avoir 69 1374c1435 < SFX zA avoir ont/23 avoir 140 --- > SFX zA avoir ont/24 avoir 159 1377,1380c1438,1441 < SFX zA voir vions/16 avoir 166 < SFX zA voir viez/13 avoir 165 < SFX zA voir vaient/23 avoir 44 < SFX zA avoir eus/19 avoir 79 --- > SFX zA voir vions/16 avoir 185 > SFX zA voir viez/13 avoir 184 > SFX zA voir vaient/24 avoir 44 > SFX zA avoir eus/19 avoir 77 1384c1445 < SFX zA avoir eurent/23 avoir 61 --- > SFX zA avoir eurent/24 avoir 61 1386c1447 < SFX zA voir uras/23 avoir 31 --- > SFX zA voir uras/24 avoir 31 1390c1451 < SFX zA voir uront/23 avoir 25 --- > SFX zA voir uront/24 avoir 25 1395,1401c1456,1462 < SFX zA voir uraient/23 avoir 24 < SFX zA voir ie/229 avoir 299 < SFX zA voir ies/41 avoir 75 < SFX zA voir it/98 avoir 105 < SFX zA voir yons/136 avoir 152 < SFX zA voir yez/35 avoir 151 < SFX zA voir ient/23 avoir 133 --- > SFX zA voir uraient/24 avoir 24 > SFX zA voir ie/229 avoir 330 > SFX zA voir ies/41 avoir 72 > SFX zA voir it/98 avoir 109 > SFX zA voir yons/136 avoir 171 > SFX zA voir yez/35 avoir 170 > SFX zA voir ient/24 avoir 149 1403,1405c1464,1466 < SFX zA avoir eussé/23 avoir 153 < SFX zA avoir eussè/23 avoir 153 < SFX zA avoir eusses/23 avoir 58 --- > SFX zA avoir eussé/24 avoir 172 > SFX zA avoir eussè/24 avoir 172 > SFX zA avoir eusses/24 avoir 58 1409c1470 < SFX zA avoir eussent/23 avoir 50 --- > SFX zA avoir eussent/24 avoir 50 1417,1420c1478,1481 < SFX zE être été être 100 < SFX zE être suis être 203 < SFX zE être es/23 être 187 < SFX zE être est/135 être 68 --- > SFX zE être été être 102 > SFX zE être suis être 217 > SFX zE être es/24 être 207 > SFX zE être est/135 être 69 1423c1484 < SFX zE être sont être 140 --- > SFX zE être sont être 159 1426,1427c1487,1488 < SFX zE être étions/16 être 166 < SFX zE être étiez/13 être 165 --- > SFX zE être étions/16 être 185 > SFX zE être étiez/13 être 184 1429c1490 < SFX zE être fus être 79 --- > SFX zE être fus être 77 1445,1449c1506,1510 < SFX zE être sois être 298 < SFX zE être soit être 105 < SFX zE être soyons être 152 < SFX zE être soyez être 151 < SFX zE être soient être 133 --- > SFX zE être sois être 329 > SFX zE être soit être 109 > SFX zE être soyons être 171 > SFX zE être soyez être 170 > SFX zE être soient être 149 1451,1452c1512,1513 < SFX zE être fussé être 153 < SFX zE être fussè être 153 --- > SFX zE être fussé être 172 > SFX zE être fussè être 172 1470c1531 < SFX a0 er è er 109 --- > SFX a0 er è er 114 1478,1480c1539,1541 < SFX a0 er ent [^y]er 35 < SFX a0 yer yent [^ou]yer 35 < SFX a0 yer ient [aou]yer 35 --- > SFX a0 er ent [^y]er 34 > SFX a0 yer yent [^ou]yer 34 > SFX a0 yer ient [aou]yer 34 1492,1497c1553,1558 < SFX a0 er ai [^cg]er 85 < SFX a0 cer çai cer 85 < SFX a0 ger geai ger 85 < SFX a0 er as [^cg]er 84 < SFX a0 cer ças cer 84 < SFX a0 ger geas ger 84 --- > SFX a0 er ai [^cg]er 84 > SFX a0 cer çai cer 84 > SFX a0 ger geai ger 84 > SFX a0 er as [^cg]er 83 > SFX a0 cer ças cer 83 > SFX a0 ger geas ger 83 1572,1575c1633,1636 < SFX a1 er e/59 [^y]er 38 < SFX a1 yer ye/59 [^ou]yer 38 < SFX a1 yer ie/59 [aou]yer 38 < SFX a1 er è/15 er 109 --- > SFX a1 er e/60 [^y]er 38 > SFX a1 yer ye/60 [^ou]yer 38 > SFX a1 yer ie/60 [aou]yer 38 > SFX a1 er è/15 er 114 1583,1585c1644,1646 < SFX a1 er ent/20 [^y]er 35 < SFX a1 yer yent/20 [^ou]yer 35 < SFX a1 yer ient/20 [aou]yer 35 --- > SFX a1 er ent/20 [^y]er 34 > SFX a1 yer yent/20 [^ou]yer 34 > SFX a1 yer ient/20 [aou]yer 34 1597,1602c1658,1663 < SFX a1 er ai/30 [^cg]er 85 < SFX a1 cer çai/30 cer 85 < SFX a1 ger geai/30 ger 85 < SFX a1 er as/15 [^cg]er 84 < SFX a1 cer ças/15 cer 84 < SFX a1 ger geas/15 ger 84 --- > SFX a1 er ai/30 [^cg]er 84 > SFX a1 cer çai/30 cer 84 > SFX a1 ger geai/30 ger 84 > SFX a1 er as/15 [^cg]er 83 > SFX a1 cer ças/15 cer 83 > SFX a1 ger geas/15 ger 83 1680c1741 < SFX a2 er è/16 er 109 --- > SFX a2 er è/16 er 114 1688,1690c1749,1751 < SFX a2 er ent/8 [^y]er 35 < SFX a2 yer yent/8 [^ou]yer 35 < SFX a2 yer ient/8 [aou]yer 35 --- > SFX a2 er ent/8 [^y]er 34 > SFX a2 yer yent/8 [^ou]yer 34 > SFX a2 yer ient/8 [aou]yer 34 1702,1707c1763,1768 < SFX a2 er ai/42 [^cg]er 85 < SFX a2 cer çai/42 cer 85 < SFX a2 ger geai/42 ger 85 < SFX a2 er as/13 [^cg]er 84 < SFX a2 cer ças/13 cer 84 < SFX a2 ger geas/13 ger 84 --- > SFX a2 er ai/42 [^cg]er 84 > SFX a2 cer çai/42 cer 84 > SFX a2 ger geai/42 ger 84 > SFX a2 er as/13 [^cg]er 83 > SFX a2 cer ças/13 cer 83 > SFX a2 ger geas/13 ger 83 1785,1788c1846,1849 < SFX a3 er è/37 er 109 < SFX a3 er es/24 [^y]er 39 < SFX a3 yer yes/24 [^ou]yer 39 < SFX a3 yer ies/24 [aou]yer 39 --- > SFX a3 er è/37 er 114 > SFX a3 er es/25 [^y]er 39 > SFX a3 yer yes/25 [^ou]yer 39 > SFX a3 yer ies/25 [aou]yer 39 1793,1795c1854,1856 < SFX a3 er ent/14 [^y]er 35 < SFX a3 yer yent/14 [^ou]yer 35 < SFX a3 yer ient/14 [aou]yer 35 --- > SFX a3 er ent/14 [^y]er 34 > SFX a3 yer yent/14 [^ou]yer 34 > SFX a3 yer ient/14 [aou]yer 34 1807,1812c1868,1873 < SFX a3 er ai/37 [^cg]er 85 < SFX a3 cer çai/37 cer 85 < SFX a3 ger geai/37 ger 85 < SFX a3 er as/24 [^cg]er 84 < SFX a3 cer ças/24 cer 84 < SFX a3 ger geas/24 ger 84 --- > SFX a3 er ai/37 [^cg]er 84 > SFX a3 cer çai/37 cer 84 > SFX a3 ger geai/37 ger 84 > SFX a3 er as/25 [^cg]er 83 > SFX a3 cer ças/25 cer 83 > SFX a3 ger geas/25 ger 83 1826,1828c1887,1889 < SFX a3 er eras/24 [^y]er 31 < SFX a3 yer yeras/24 [^ou]yer 31 < SFX a3 yer ieras/24 [aou]yer 31 --- > SFX a3 er eras/25 [^y]er 31 > SFX a3 yer yeras/25 [^ou]yer 31 > SFX a3 yer ieras/25 [aou]yer 31 1841,1843c1902,1904 < SFX a3 er erais/39 [^y]er 33 < SFX a3 yer yerais/39 [^ou]yer 33 < SFX a3 yer ierais/39 [aou]yer 33 --- > SFX a3 er erais/40 [^y]er 33 > SFX a3 yer yerais/40 [^ou]yer 33 > SFX a3 yer ierais/40 [aou]yer 33 1859,1861c1920,1922 < SFX a3 er asses/24 [^cg]er 58 < SFX a3 cer çasses/24 cer 58 < SFX a3 ger geasses/24 ger 58 --- > SFX a3 er asses/25 [^cg]er 58 > SFX a3 cer çasses/25 cer 58 > SFX a3 ger geasses/25 ger 58 1874,1876c1935,1937 < SFX a3 er e/24 [^y]er 30 < SFX a3 yer ye/24 [^ou]yer 30 < SFX a3 yer ie/24 [aou]yer 30 --- > SFX a3 er e/25 [^y]er 30 > SFX a3 yer ye/25 [^ou]yer 30 > SFX a3 yer ie/25 [aou]yer 30 1890,1893c1951,1954 < SFX a4 er è/23 er 109 < SFX a4 er es/23 [^y]er 39 < SFX a4 yer yes/23 [^ou]yer 39 < SFX a4 yer ies/23 [aou]yer 39 --- > SFX a4 er è/24 er 114 > SFX a4 er es/24 [^y]er 39 > SFX a4 yer yes/24 [^ou]yer 39 > SFX a4 yer ies/24 [aou]yer 39 1898,1900c1959,1961 < SFX a4 er ent/8 [^y]er 35 < SFX a4 yer yent/8 [^ou]yer 35 < SFX a4 yer ient/8 [aou]yer 35 --- > SFX a4 er ent/8 [^y]er 34 > SFX a4 yer yent/8 [^ou]yer 34 > SFX a4 yer ient/8 [aou]yer 34 1912,1917c1973,1978 < SFX a4 er ai/19 [^cg]er 85 < SFX a4 cer çai/19 cer 85 < SFX a4 ger geai/19 ger 85 < SFX a4 er as/23 [^cg]er 84 < SFX a4 cer ças/23 cer 84 < SFX a4 ger geas/23 ger 84 --- > SFX a4 er ai/19 [^cg]er 84 > SFX a4 cer çai/19 cer 84 > SFX a4 ger geai/19 ger 84 > SFX a4 er as/24 [^cg]er 83 > SFX a4 cer ças/24 cer 83 > SFX a4 ger geas/24 ger 83 1931,1933c1992,1994 < SFX a4 er eras/23 [^y]er 31 < SFX a4 yer yeras/23 [^ou]yer 31 < SFX a4 yer ieras/23 [aou]yer 31 --- > SFX a4 er eras/24 [^y]er 31 > SFX a4 yer yeras/24 [^ou]yer 31 > SFX a4 yer ieras/24 [aou]yer 31 1964,1966c2025,2027 < SFX a4 er asses/23 [^cg]er 58 < SFX a4 cer çasses/23 cer 58 < SFX a4 ger geasses/23 ger 58 --- > SFX a4 er asses/24 [^cg]er 58 > SFX a4 cer çasses/24 cer 58 > SFX a4 ger geasses/24 ger 58 1995c2056 < SFX a5 er è/34 er 109 --- > SFX a5 er è/34 er 114 2002,2005c2063,2066 < SFX a5 r z/25 er 60 < SFX a5 er ent/21 [^y]er 35 < SFX a5 yer yent/21 [^ou]yer 35 < SFX a5 yer ient/21 [aou]yer 35 --- > SFX a5 r z/26 er 60 > SFX a5 er ent/21 [^y]er 34 > SFX a5 yer yent/21 [^ou]yer 34 > SFX a5 yer ient/21 [aou]yer 34 2013c2074 < SFX a5 er iez/25 er 63 --- > SFX a5 er iez/26 er 63 2017,2022c2078,2083 < SFX a5 er ai/31 [^cg]er 85 < SFX a5 cer çai/31 cer 85 < SFX a5 ger geai/31 ger 85 < SFX a5 er as/34 [^cg]er 84 < SFX a5 cer ças/34 cer 84 < SFX a5 ger geas/34 ger 84 --- > SFX a5 er ai/31 [^cg]er 84 > SFX a5 cer çai/31 cer 84 > SFX a5 ger geai/31 ger 84 > SFX a5 er as/34 [^cg]er 83 > SFX a5 cer ças/34 cer 83 > SFX a5 ger geas/34 ger 83 2029,2031c2090,2092 < SFX a5 er âtes/25 [^cg]er 48 < SFX a5 cer çâtes/25 cer 48 < SFX a5 ger geâtes/25 ger 48 --- > SFX a5 er âtes/26 [^cg]er 48 > SFX a5 cer çâtes/26 cer 48 > SFX a5 ger geâtes/26 ger 48 2045,2047c2106,2108 < SFX a5 er erez/25 [^y]er 26 < SFX a5 yer yerez/25 [^ou]yer 26 < SFX a5 yer ierez/25 [aou]yer 26 --- > SFX a5 er erez/26 [^y]er 26 > SFX a5 yer yerez/26 [^ou]yer 26 > SFX a5 yer ierez/26 [aou]yer 26 2060,2062c2121,2123 < SFX a5 er eriez/25 [^y]er 28 < SFX a5 yer yeriez/25 [^ou]yer 28 < SFX a5 yer ieriez/25 [aou]yer 28 --- > SFX a5 er eriez/26 [^y]er 28 > SFX a5 yer yeriez/26 [^ou]yer 28 > SFX a5 yer ieriez/26 [aou]yer 28 2078,2080c2139,2141 < SFX a5 er assiez/25 [^cg]er 56 < SFX a5 cer çassiez/25 cer 56 < SFX a5 ger geassiez/25 ger 56 --- > SFX a5 er assiez/26 [^cg]er 56 > SFX a5 cer çassiez/26 cer 56 > SFX a5 ger geassiez/26 ger 56 2084,2086c2145,2147 < SFX a5 er e/25 [^y]er 30 < SFX a5 yer e/25 [^ou]yer 30 < SFX a5 yer ie/25 [aou]yer 30 --- > SFX a5 er e/26 [^y]er 30 > SFX a5 yer e/26 [^ou]yer 30 > SFX a5 yer ie/26 [aou]yer 30 2090c2151 < SFX a5 er ez/25 er 62 --- > SFX a5 er ez/26 er 62 2097,2099c2158,2160 < SFX a6 er e/14 [^y]er 174 < SFX a6 yer ye/14 [^ou]yer 174 < SFX a6 yer ie/14 [aou]yer 174 --- > SFX a6 er e/14 [^y]er 197 > SFX a6 yer ye/14 [^ou]yer 197 > SFX a6 yer ie/14 [aou]yer 197 2104,2106c2165,2167 < SFX a6 er ent/14 [^y]er 35 < SFX a6 yer yent/14 [^ou]yer 35 < SFX a6 yer ient/14 [aou]yer 35 --- > SFX a6 er ent/14 [^y]er 34 > SFX a6 yer yent/14 [^ou]yer 34 > SFX a6 yer ient/14 [aou]yer 34 2171c2232 < SFX a8 er e/15 er 174 --- > SFX a8 er e/15 er 197 2185c2246 < SFX a9 er ent/15 er 35 --- > SFX a9 er ent/15 er 34 2210c2271 < SFX b0 er è er 109 --- > SFX b0 er è er 114 2224,2233c2285,2294 < SFX b0 ecer ècent ecer 35 < SFX b0 emer èment emer 35 < SFX b0 ener ènent ener 35 < SFX b0 eper èpent eper 35 < SFX b0 erer èrent erer 35 < SFX b0 eser èsent eser 35 < SFX b0 ever èvent ever 35 < SFX b0 evrer èvrent evrer 35 < SFX b0 eter ètent eter 35 < SFX b0 eler èlent eler 35 --- > SFX b0 ecer ècent ecer 34 > SFX b0 emer èment emer 34 > SFX b0 ener ènent ener 34 > SFX b0 eper èpent eper 34 > SFX b0 erer èrent erer 34 > SFX b0 eser èsent eser 34 > SFX b0 ever èvent ever 34 > SFX b0 evrer èvrent evrer 34 > SFX b0 eter ètent eter 34 > SFX b0 eler èlent eler 34 2242,2245c2303,2306 < SFX b0 er ai [^c]er 85 < SFX b0 cer çai cer 85 < SFX b0 er as [^c]er 84 < SFX b0 cer ças cer 84 --- > SFX b0 er ai [^c]er 84 > SFX b0 cer çai cer 84 > SFX b0 er as [^c]er 83 > SFX b0 cer ças cer 83 2403c2464 < SFX b1 er è/20 er 109 --- > SFX b1 er è/20 er 114 2417,2426c2478,2487 < SFX b1 ecer ècent/20 ecer 35 < SFX b1 emer èment/20 emer 35 < SFX b1 ener ènent/20 ener 35 < SFX b1 eper èpent/20 eper 35 < SFX b1 erer èrent/20 erer 35 < SFX b1 eser èsent/20 eser 35 < SFX b1 ever èvent/20 ever 35 < SFX b1 evrer èvrent/20 evrer 35 < SFX b1 eter ètent/20 eter 35 < SFX b1 eler èlent/20 eler 35 --- > SFX b1 ecer ècent/20 ecer 34 > SFX b1 emer èment/20 emer 34 > SFX b1 ener ènent/20 ener 34 > SFX b1 eper èpent/20 eper 34 > SFX b1 erer èrent/20 erer 34 > SFX b1 eser èsent/20 eser 34 > SFX b1 ever èvent/20 ever 34 > SFX b1 evrer èvrent/20 evrer 34 > SFX b1 eter ètent/20 eter 34 > SFX b1 eler èlent/20 eler 34 2435,2438c2496,2499 < SFX b1 er ai/30 [^c]er 85 < SFX b1 cer çai/30 cer 85 < SFX b1 er as/15 [^c]er 84 < SFX b1 cer ças/15 cer 84 --- > SFX b1 er ai/30 [^c]er 84 > SFX b1 cer çai/30 cer 84 > SFX b1 er as/15 [^c]er 83 > SFX b1 cer ças/15 cer 83 2596c2657 < SFX b2 er è/16 er 109 --- > SFX b2 er è/16 er 114 2610,2619c2671,2680 < SFX b2 ecer ècent/8 ecer 35 < SFX b2 emer èment/8 emer 35 < SFX b2 ener ènent/8 ener 35 < SFX b2 eper èpent/8 eper 35 < SFX b2 erer èrent/8 erer 35 < SFX b2 eser èsent/8 eser 35 < SFX b2 ever èvent/8 ever 35 < SFX b2 evrer èvrent/8 evrer 35 < SFX b2 eter ètent/8 eter 35 < SFX b2 eler èlent/8 eler 35 --- > SFX b2 ecer ècent/8 ecer 34 > SFX b2 emer èment/8 emer 34 > SFX b2 ener ènent/8 ener 34 > SFX b2 eper èpent/8 eper 34 > SFX b2 erer èrent/8 erer 34 > SFX b2 eser èsent/8 eser 34 > SFX b2 ever èvent/8 ever 34 > SFX b2 evrer èvrent/8 evrer 34 > SFX b2 eter ètent/8 eter 34 > SFX b2 eler èlent/8 eler 34 2628,2631c2689,2692 < SFX b2 er ai/42 [^c]er 85 < SFX b2 cer çai/42 cer 85 < SFX b2 er as/13 [^c]er 84 < SFX b2 cer ças/13 cer 84 --- > SFX b2 er ai/42 [^c]er 84 > SFX b2 cer çai/42 cer 84 > SFX b2 er as/13 [^c]er 83 > SFX b2 cer ças/13 cer 83 2789,2799c2850,2860 < SFX b3 er è/37 er 109 < SFX b3 ecer èces/24 ecer 39 < SFX b3 emer èmes/24 emer 39 < SFX b3 ener ènes/24 ener 39 < SFX b3 eper èpes/24 eper 39 < SFX b3 erer ères/24 erer 39 < SFX b3 eser èses/24 eser 39 < SFX b3 ever èves/24 ever 39 < SFX b3 evrer èvres/24 evrer 39 < SFX b3 eter ètes/24 eter 39 < SFX b3 eler èles/24 eler 39 --- > SFX b3 er è/37 er 114 > SFX b3 ecer èces/25 ecer 39 > SFX b3 emer èmes/25 emer 39 > SFX b3 ener ènes/25 ener 39 > SFX b3 eper èpes/25 eper 39 > SFX b3 erer ères/25 erer 39 > SFX b3 eser èses/25 eser 39 > SFX b3 ever èves/25 ever 39 > SFX b3 evrer èvres/25 evrer 39 > SFX b3 eter ètes/25 eter 39 > SFX b3 eler èles/25 eler 39 2803,2814c2864,2875 < SFX b3 ecer ècent/14 ecer 35 < SFX b3 emer èment/14 emer 35 < SFX b3 ener ènent/14 ener 35 < SFX b3 eper èpent/14 eper 35 < SFX b3 erer èrent/14 erer 35 < SFX b3 eser èsent/14 eser 35 < SFX b3 ever èvent/14 ever 35 < SFX b3 evrer èvrent/14 evrer 35 < SFX b3 eter ètent/14 eter 35 < SFX b3 eler èlent/14 eler 35 < SFX b3 er ais/39 [^c]er 51 < SFX b3 cer çais/39 cer 51 --- > SFX b3 ecer ècent/14 ecer 34 > SFX b3 emer èment/14 emer 34 > SFX b3 ener ènent/14 ener 34 > SFX b3 eper èpent/14 eper 34 > SFX b3 erer èrent/14 erer 34 > SFX b3 eser èsent/14 eser 34 > SFX b3 ever èvent/14 ever 34 > SFX b3 evrer èvrent/14 evrer 34 > SFX b3 eter ètent/14 eter 34 > SFX b3 eler èlent/14 eler 34 > SFX b3 er ais/40 [^c]er 51 > SFX b3 cer çais/40 cer 51 2821,2824c2882,2885 < SFX b3 er ai/37 [^c]er 85 < SFX b3 cer çai/37 cer 85 < SFX b3 er as/24 [^c]er 84 < SFX b3 cer ças/24 cer 84 --- > SFX b3 er ai/37 [^c]er 84 > SFX b3 cer çai/37 cer 84 > SFX b3 er as/25 [^c]er 83 > SFX b3 cer ças/25 cer 83 2842,2851c2903,2912 < SFX b3 ecer èceras/24 ecer 31 < SFX b3 emer èmeras/24 emer 31 < SFX b3 ener èneras/24 ener 31 < SFX b3 eper èperas/24 eper 31 < SFX b3 erer èreras/24 erer 31 < SFX b3 eser èseras/24 eser 31 < SFX b3 ever èveras/24 ever 31 < SFX b3 evrer èvreras/24 evrer 31 < SFX b3 eter èteras/24 eter 31 < SFX b3 eler èleras/24 eler 31 --- > SFX b3 ecer èceras/25 ecer 31 > SFX b3 emer èmeras/25 emer 31 > SFX b3 ener èneras/25 ener 31 > SFX b3 eper èperas/25 eper 31 > SFX b3 erer èreras/25 erer 31 > SFX b3 eser èseras/25 eser 31 > SFX b3 ever èveras/25 ever 31 > SFX b3 evrer èvreras/25 evrer 31 > SFX b3 eter èteras/25 eter 31 > SFX b3 eler èleras/25 eler 31 2892,2901c2953,2962 < SFX b3 ecer ècerais/39 ecer 33 < SFX b3 emer èmerais/39 emer 33 < SFX b3 ener ènerais/39 ener 33 < SFX b3 eper èperais/39 eper 33 < SFX b3 erer èrerais/39 erer 33 < SFX b3 eser èserais/39 eser 33 < SFX b3 ever èverais/39 ever 33 < SFX b3 evrer èvrerais/39 evrer 33 < SFX b3 eter èterais/39 eter 33 < SFX b3 eler èlerais/39 eler 33 --- > SFX b3 ecer ècerais/40 ecer 33 > SFX b3 emer èmerais/40 emer 33 > SFX b3 ener ènerais/40 ener 33 > SFX b3 eper èperais/40 eper 33 > SFX b3 erer èrerais/40 erer 33 > SFX b3 eser èserais/40 eser 33 > SFX b3 ever èverais/40 ever 33 > SFX b3 evrer èvrerais/40 evrer 33 > SFX b3 eter èterais/40 eter 33 > SFX b3 eler èlerais/40 eler 33 2944,2945c3005,3006 < SFX b3 er asses/24 [^c]er 58 < SFX b3 cer çasses/24 cer 58 --- > SFX b3 er asses/25 [^c]er 58 > SFX b3 cer çasses/25 cer 58 2954,2963c3015,3024 < SFX b3 ecer èce/24 ecer 30 < SFX b3 emer ème/24 emer 30 < SFX b3 ener ène/24 ener 30 < SFX b3 eper èpe/24 eper 30 < SFX b3 erer ère/24 erer 30 < SFX b3 eser èse/24 eser 30 < SFX b3 ever ève/24 ever 30 < SFX b3 evrer èvre/24 evrer 30 < SFX b3 eter ète/24 eter 30 < SFX b3 eler èle/24 eler 30 --- > SFX b3 ecer èce/25 ecer 30 > SFX b3 emer ème/25 emer 30 > SFX b3 ener ène/25 ener 30 > SFX b3 eper èpe/25 eper 30 > SFX b3 erer ère/25 erer 30 > SFX b3 eser èse/25 eser 30 > SFX b3 ever ève/25 ever 30 > SFX b3 evrer èvre/25 evrer 30 > SFX b3 eter ète/25 eter 30 > SFX b3 eler èle/25 eler 30 2982,2992c3043,3053 < SFX b4 er è/23 er 109 < SFX b4 ecer èces/23 ecer 39 < SFX b4 emer èmes/23 emer 39 < SFX b4 ener ènes/23 ener 39 < SFX b4 eper èpes/23 eper 39 < SFX b4 erer ères/23 erer 39 < SFX b4 eser èses/23 eser 39 < SFX b4 ever èves/23 ever 39 < SFX b4 evrer èvres/23 evrer 39 < SFX b4 eter ètes/23 eter 39 < SFX b4 eler èles/23 eler 39 --- > SFX b4 er è/24 er 114 > SFX b4 ecer èces/24 ecer 39 > SFX b4 emer èmes/24 emer 39 > SFX b4 ener ènes/24 ener 39 > SFX b4 eper èpes/24 eper 39 > SFX b4 erer ères/24 erer 39 > SFX b4 eser èses/24 eser 39 > SFX b4 ever èves/24 ever 39 > SFX b4 evrer èvres/24 evrer 39 > SFX b4 eter ètes/24 eter 39 > SFX b4 eler èles/24 eler 39 2996,3005c3057,3066 < SFX b4 ecer ècent/8 ecer 35 < SFX b4 emer èment/8 emer 35 < SFX b4 ener ènent/8 ener 35 < SFX b4 eper èpent/8 eper 35 < SFX b4 erer èrent/8 erer 35 < SFX b4 eser èsent/8 eser 35 < SFX b4 ever èvent/8 ever 35 < SFX b4 evrer èvrent/8 evrer 35 < SFX b4 eter ètent/8 eter 35 < SFX b4 eler èlent/8 eler 35 --- > SFX b4 ecer ècent/8 ecer 34 > SFX b4 emer èment/8 emer 34 > SFX b4 ener ènent/8 ener 34 > SFX b4 eper èpent/8 eper 34 > SFX b4 erer èrent/8 erer 34 > SFX b4 eser èsent/8 eser 34 > SFX b4 ever èvent/8 ever 34 > SFX b4 evrer èvrent/8 evrer 34 > SFX b4 eter ètent/8 eter 34 > SFX b4 eler èlent/8 eler 34 3014,3017c3075,3078 < SFX b4 er ai/19 [^c]er 85 < SFX b4 cer çai/19 cer 85 < SFX b4 er as/23 [^c]er 84 < SFX b4 cer ças/23 cer 84 --- > SFX b4 er ai/19 [^c]er 84 > SFX b4 cer çai/19 cer 84 > SFX b4 er as/24 [^c]er 83 > SFX b4 cer ças/24 cer 83 3035,3044c3096,3105 < SFX b4 ecer èceras/23 ecer 31 < SFX b4 emer èmeras/23 emer 31 < SFX b4 ener èneras/23 ener 31 < SFX b4 eper èperas/23 eper 31 < SFX b4 erer èreras/23 erer 31 < SFX b4 eser èseras/23 eser 31 < SFX b4 ever èveras/23 ever 31 < SFX b4 evrer èvreras/23 evrer 31 < SFX b4 eter èteras/23 eter 31 < SFX b4 eler èleras/23 eler 31 --- > SFX b4 ecer èceras/24 ecer 31 > SFX b4 emer èmeras/24 emer 31 > SFX b4 ener èneras/24 ener 31 > SFX b4 eper èperas/24 eper 31 > SFX b4 erer èreras/24 erer 31 > SFX b4 eser èseras/24 eser 31 > SFX b4 ever èveras/24 ever 31 > SFX b4 evrer èvreras/24 evrer 31 > SFX b4 eter èteras/24 eter 31 > SFX b4 eler èleras/24 eler 31 3137,3138c3198,3199 < SFX b4 er asses/23 [^c]er 58 < SFX b4 cer çasses/23 cer 58 --- > SFX b4 er asses/24 [^c]er 58 > SFX b4 cer çasses/24 cer 58 3175c3236 < SFX b5 er è/34 er 109 --- > SFX b5 er è/34 er 114 3188,3198c3249,3259 < SFX b5 er ez/25 er 60 < SFX b5 ecer ècent/21 ecer 35 < SFX b5 emer èment/21 emer 35 < SFX b5 ener ènent/21 ener 35 < SFX b5 eper èpent/21 eper 35 < SFX b5 erer èrent/21 erer 35 < SFX b5 eser èsent/21 eser 35 < SFX b5 ever èvent/21 ever 35 < SFX b5 evrer èvrent/21 evrer 35 < SFX b5 eter ètent/21 eter 35 < SFX b5 eler èlent/21 eler 35 --- > SFX b5 er ez/26 er 60 > SFX b5 ecer ècent/21 ecer 34 > SFX b5 emer èment/21 emer 34 > SFX b5 ener ènent/21 ener 34 > SFX b5 eper èpent/21 eper 34 > SFX b5 erer èrent/21 erer 34 > SFX b5 eser èsent/21 eser 34 > SFX b5 ever èvent/21 ever 34 > SFX b5 evrer èvrent/21 evrer 34 > SFX b5 eter ètent/21 eter 34 > SFX b5 eler èlent/21 eler 34 3204c3265 < SFX b5 er iez/25 er 63 --- > SFX b5 er iez/26 er 63 3207,3210c3268,3271 < SFX b5 er ai/31 [^c]er 85 < SFX b5 cer çai/31 cer 85 < SFX b5 er as/34 [^c]er 84 < SFX b5 cer ças/34 cer 84 --- > SFX b5 er ai/31 [^c]er 84 > SFX b5 cer çai/31 cer 84 > SFX b5 er as/34 [^c]er 83 > SFX b5 cer ças/34 cer 83 3215,3216c3276,3277 < SFX b5 er âtes/25 [^c]er 48 < SFX b5 cer çâtes/25 cer 48 --- > SFX b5 er âtes/26 [^c]er 48 > SFX b5 cer çâtes/26 cer 48 3258,3267c3319,3328 < SFX b5 ecer ècerez/25 ecer 26 < SFX b5 emer èmerez/25 emer 26 < SFX b5 ener ènerez/25 ener 26 < SFX b5 eper èperez/25 eper 26 < SFX b5 erer èrerez/25 erer 26 < SFX b5 eser èserez/25 eser 26 < SFX b5 ever èverez/25 ever 26 < SFX b5 evrer èvrerez/25 evrer 26 < SFX b5 eter èterez/25 eter 26 < SFX b5 eler èlerez/25 eler 26 --- > SFX b5 ecer ècerez/26 ecer 26 > SFX b5 emer èmerez/26 emer 26 > SFX b5 ener ènerez/26 ener 26 > SFX b5 eper èperez/26 eper 26 > SFX b5 erer èrerez/26 erer 26 > SFX b5 eser èserez/26 eser 26 > SFX b5 ever èverez/26 ever 26 > SFX b5 evrer èvrerez/26 evrer 26 > SFX b5 eter èterez/26 eter 26 > SFX b5 eler èlerez/26 eler 26 3308,3317c3369,3378 < SFX b5 ecer èceriez/25 ecer 28 < SFX b5 emer èmeriez/25 emer 28 < SFX b5 ener èneriez/25 ener 28 < SFX b5 eper èperiez/25 eper 28 < SFX b5 erer èreriez/25 erer 28 < SFX b5 eser èseriez/25 eser 28 < SFX b5 ever èveriez/25 ever 28 < SFX b5 evrer èvreriez/25 evrer 28 < SFX b5 eter èteriez/25 eter 28 < SFX b5 eler èleriez/25 eler 28 --- > SFX b5 ecer èceriez/26 ecer 28 > SFX b5 emer èmeriez/26 emer 28 > SFX b5 ener èneriez/26 ener 28 > SFX b5 eper èperiez/26 eper 28 > SFX b5 erer èreriez/26 erer 28 > SFX b5 eser èseriez/26 eser 28 > SFX b5 ever èveriez/26 ever 28 > SFX b5 evrer èvreriez/26 evrer 28 > SFX b5 eter èteriez/26 eter 28 > SFX b5 eler èleriez/26 eler 28 3336,3337c3397,3398 < SFX b5 er assiez/25 [^c]er 56 < SFX b5 cer çassiez/25 cer 56 --- > SFX b5 er assiez/26 [^c]er 56 > SFX b5 cer çassiez/26 cer 56 3340,3349c3401,3410 < SFX b5 ecer èce/25 ecer 30 < SFX b5 emer ème/25 emer 30 < SFX b5 ener ène/25 ener 30 < SFX b5 eper èpe/25 eper 30 < SFX b5 erer ère/25 erer 30 < SFX b5 eser èse/25 eser 30 < SFX b5 ever ève/25 ever 30 < SFX b5 evrer èvre/25 evrer 30 < SFX b5 eter ète/25 eter 30 < SFX b5 eler èle/25 eler 30 --- > SFX b5 ecer èce/26 ecer 30 > SFX b5 emer ème/26 emer 30 > SFX b5 ener ène/26 ener 30 > SFX b5 eper èpe/26 eper 30 > SFX b5 erer ère/26 erer 30 > SFX b5 eser èse/26 eser 30 > SFX b5 ever ève/26 ever 30 > SFX b5 evrer èvre/26 evrer 30 > SFX b5 eter ète/26 eter 30 > SFX b5 eler èle/26 eler 30 3380c3441 < SFX c0 er è er 109 --- > SFX c0 er è er 114 3406,3426c3467,3487 < SFX c0 ébrer èbrent ébrer 35 < SFX c0 écer ècent écer 35 < SFX c0 écher èchent écher 35 < SFX c0 écrer ècrent écrer 35 < SFX c0 éder èdent éder 35 < SFX c0 éger ègent éger 35 < SFX c0 égler èglent égler 35 < SFX c0 égner ègnent égner 35 < SFX c0 égrer ègrent égrer 35 < SFX c0 éguer èguent éguer 35 < SFX c0 éler èlent éler 35 < SFX c0 émer èment émer 35 < SFX c0 éner ènent éner 35 < SFX c0 éper èpent éper 35 < SFX c0 équer èquent équer 35 < SFX c0 érer èrent érer 35 < SFX c0 éser èsent éser 35 < SFX c0 éter ètent éter 35 < SFX c0 étrer ètrent étrer 35 < SFX c0 évrer èvrent évrer 35 < SFX c0 éyer èyent éyer 35 --- > SFX c0 ébrer èbrent ébrer 34 > SFX c0 écer ècent écer 34 > SFX c0 écher èchent écher 34 > SFX c0 écrer ècrent écrer 34 > SFX c0 éder èdent éder 34 > SFX c0 éger ègent éger 34 > SFX c0 égler èglent égler 34 > SFX c0 égner ègnent égner 34 > SFX c0 égrer ègrent égrer 34 > SFX c0 éguer èguent éguer 34 > SFX c0 éler èlent éler 34 > SFX c0 émer èment émer 34 > SFX c0 éner ènent éner 34 > SFX c0 éper èpent éper 34 > SFX c0 équer èquent équer 34 > SFX c0 érer èrent érer 34 > SFX c0 éser èsent éser 34 > SFX c0 éter ètent éter 34 > SFX c0 étrer ètrent étrer 34 > SFX c0 évrer èvrent évrer 34 > SFX c0 éyer èyent éyer 34 3438,3443c3499,3504 < SFX c0 er ai [^cg]er 85 < SFX c0 écer éçai écer 85 < SFX c0 éger égeai éger 85 < SFX c0 er as [^cg]er 84 < SFX c0 écer éças écer 84 < SFX c0 éger égeas éger 84 --- > SFX c0 er ai [^cg]er 84 > SFX c0 écer éçai écer 84 > SFX c0 éger égeai éger 84 > SFX c0 er as [^cg]er 83 > SFX c0 écer éças écer 83 > SFX c0 éger égeas éger 83 3745,3766c3806,3827 < SFX c1 ébrer èbre/59 ébrer 38 < SFX c1 écer èce/59 écer 38 < SFX c1 écher èche/59 écher 38 < SFX c1 écrer ècre/59 écrer 38 < SFX c1 éder ède/59 éder 38 < SFX c1 éger ège/59 éger 38 < SFX c1 égler ègle/59 égler 38 < SFX c1 égner ègne/59 égner 38 < SFX c1 égrer ègre/59 égrer 38 < SFX c1 éguer ègue/59 éguer 38 < SFX c1 éler èle/59 éler 38 < SFX c1 émer ème/59 émer 38 < SFX c1 éner ène/59 éner 38 < SFX c1 éper èpe/59 éper 38 < SFX c1 équer èque/59 équer 38 < SFX c1 érer ère/59 érer 38 < SFX c1 éser èse/59 éser 38 < SFX c1 éter ète/59 éter 38 < SFX c1 étrer ètre/59 étrer 38 < SFX c1 évrer èvre/59 évrer 38 < SFX c1 éyer èye/59 éyer 38 < SFX c1 er è/15 er 109 --- > SFX c1 ébrer èbre/60 ébrer 38 > SFX c1 écer èce/60 écer 38 > SFX c1 écher èche/60 écher 38 > SFX c1 écrer ècre/60 écrer 38 > SFX c1 éder ède/60 éder 38 > SFX c1 éger ège/60 éger 38 > SFX c1 égler ègle/60 égler 38 > SFX c1 égner ègne/60 égner 38 > SFX c1 égrer ègre/60 égrer 38 > SFX c1 éguer ègue/60 éguer 38 > SFX c1 éler èle/60 éler 38 > SFX c1 émer ème/60 émer 38 > SFX c1 éner ène/60 éner 38 > SFX c1 éper èpe/60 éper 38 > SFX c1 équer èque/60 équer 38 > SFX c1 érer ère/60 érer 38 > SFX c1 éser èse/60 éser 38 > SFX c1 éter ète/60 éter 38 > SFX c1 étrer ètre/60 étrer 38 > SFX c1 évrer èvre/60 évrer 38 > SFX c1 éyer èye/60 éyer 38 > SFX c1 er è/15 er 114 3792,3812c3853,3873 < SFX c1 ébrer èbrent/20 ébrer 35 < SFX c1 écer ècent/20 écer 35 < SFX c1 écher èchent/20 écher 35 < SFX c1 écrer ècrent/20 écrer 35 < SFX c1 éder èdent/20 éder 35 < SFX c1 éger ègent/20 éger 35 < SFX c1 égler èglent/20 égler 35 < SFX c1 égner ègnent/20 égner 35 < SFX c1 égrer ègrent/20 égrer 35 < SFX c1 éguer èguent/20 éguer 35 < SFX c1 éler èlent/20 éler 35 < SFX c1 émer èment/20 émer 35 < SFX c1 éner ènent/20 éner 35 < SFX c1 éper èpent/20 éper 35 < SFX c1 équer èquent/20 équer 35 < SFX c1 érer èrent/20 érer 35 < SFX c1 éser èsent/20 éser 35 < SFX c1 éter ètent/20 éter 35 < SFX c1 étrer ètrent/20 étrer 35 < SFX c1 évrer èvrent/20 évrer 35 < SFX c1 éyer èyent/20 éyer 35 --- > SFX c1 ébrer èbrent/20 ébrer 34 > SFX c1 écer ècent/20 écer 34 > SFX c1 écher èchent/20 écher 34 > SFX c1 écrer ècrent/20 écrer 34 > SFX c1 éder èdent/20 éder 34 > SFX c1 éger ègent/20 éger 34 > SFX c1 égler èglent/20 égler 34 > SFX c1 égner ègnent/20 égner 34 > SFX c1 égrer ègrent/20 égrer 34 > SFX c1 éguer èguent/20 éguer 34 > SFX c1 éler èlent/20 éler 34 > SFX c1 émer èment/20 émer 34 > SFX c1 éner ènent/20 éner 34 > SFX c1 éper èpent/20 éper 34 > SFX c1 équer èquent/20 équer 34 > SFX c1 érer èrent/20 érer 34 > SFX c1 éser èsent/20 éser 34 > SFX c1 éter ètent/20 éter 34 > SFX c1 étrer ètrent/20 étrer 34 > SFX c1 évrer èvrent/20 évrer 34 > SFX c1 éyer èyent/20 éyer 34 3824,3829c3885,3890 < SFX c1 er ai/30 [^cg]er 85 < SFX c1 écer éçai/30 écer 85 < SFX c1 éger égeai/30 éger 85 < SFX c1 er as/15 [^cg]er 84 < SFX c1 écer éças/15 écer 84 < SFX c1 éger égeas/15 éger 84 --- > SFX c1 er ai/30 [^cg]er 84 > SFX c1 écer éçai/30 écer 84 > SFX c1 éger égeai/30 éger 84 > SFX c1 er as/15 [^cg]er 83 > SFX c1 écer éças/15 écer 83 > SFX c1 éger égeas/15 éger 83 4152c4213 < SFX c2 er è/16 er 109 --- > SFX c2 er è/16 er 114 4178,4198c4239,4259 < SFX c2 ébrer èbrent/8 ébrer 35 < SFX c2 écer ècent/8 écer 35 < SFX c2 écher èchent/8 écher 35 < SFX c2 écrer ècrent/8 écrer 35 < SFX c2 éder èdent/8 éder 35 < SFX c2 éger ègent/8 éger 35 < SFX c2 égler èglent/8 égler 35 < SFX c2 égner ègnent/8 égner 35 < SFX c2 égrer ègrent/8 égrer 35 < SFX c2 éguer èguent/8 éguer 35 < SFX c2 éler èlent/8 éler 35 < SFX c2 émer èment/8 émer 35 < SFX c2 éner ènent/8 éner 35 < SFX c2 éper èpent/8 éper 35 < SFX c2 équer èquent/8 équer 35 < SFX c2 érer èrent/8 érer 35 < SFX c2 éser èsent/8 éser 35 < SFX c2 éter ètent/8 éter 35 < SFX c2 étrer ètrent/8 étrer 35 < SFX c2 évrer èvrent/8 évrer 35 < SFX c2 éyer èyent/8 éyer 35 --- > SFX c2 ébrer èbrent/8 ébrer 34 > SFX c2 écer ècent/8 écer 34 > SFX c2 écher èchent/8 écher 34 > SFX c2 écrer ècrent/8 écrer 34 > SFX c2 éder èdent/8 éder 34 > SFX c2 éger ègent/8 éger 34 > SFX c2 égler èglent/8 égler 34 > SFX c2 égner ègnent/8 égner 34 > SFX c2 égrer ègrent/8 égrer 34 > SFX c2 éguer èguent/8 éguer 34 > SFX c2 éler èlent/8 éler 34 > SFX c2 émer èment/8 émer 34 > SFX c2 éner ènent/8 éner 34 > SFX c2 éper èpent/8 éper 34 > SFX c2 équer èquent/8 équer 34 > SFX c2 érer èrent/8 érer 34 > SFX c2 éser èsent/8 éser 34 > SFX c2 éter ètent/8 éter 34 > SFX c2 étrer ètrent/8 étrer 34 > SFX c2 évrer èvrent/8 évrer 34 > SFX c2 éyer èyent/8 éyer 34 4210,4215c4271,4276 < SFX c2 er ai/42 [^cg]er 85 < SFX c2 écer éçai/42 écer 85 < SFX c2 éger égeai/42 éger 85 < SFX c2 er as/13 [^cg]er 84 < SFX c2 écer éças/13 écer 84 < SFX c2 éger égeas/13 éger 84 --- > SFX c2 er ai/42 [^cg]er 84 > SFX c2 écer éçai/42 écer 84 > SFX c2 éger égeai/42 éger 84 > SFX c2 er as/13 [^cg]er 83 > SFX c2 écer éças/13 écer 83 > SFX c2 éger égeas/13 éger 83 4538,4559c4599,4620 < SFX c3 er è/37 er 109 < SFX c3 ébrer èbres/24 ébrer 39 < SFX c3 écer èces/24 écer 39 < SFX c3 écher èches/24 écher 39 < SFX c3 écrer ècres/24 écrer 39 < SFX c3 éder èdes/24 éder 39 < SFX c3 éger èges/24 éger 39 < SFX c3 égler ègles/24 égler 39 < SFX c3 égner ègnes/24 égner 39 < SFX c3 égrer ègres/24 égrer 39 < SFX c3 éguer ègues/24 éguer 39 < SFX c3 éler èles/24 éler 39 < SFX c3 émer èmes/24 émer 39 < SFX c3 éner ènes/24 éner 39 < SFX c3 éper èpes/24 éper 39 < SFX c3 équer èques/24 équer 39 < SFX c3 érer ères/24 érer 39 < SFX c3 éser èses/24 éser 39 < SFX c3 éter ètes/24 éter 39 < SFX c3 étrer ètres/24 étrer 39 < SFX c3 évrer èvres/24 évrer 39 < SFX c3 éyer èyes/24 éyer 39 --- > SFX c3 er è/37 er 114 > SFX c3 ébrer èbres/25 ébrer 39 > SFX c3 écer èces/25 écer 39 > SFX c3 écher èches/25 écher 39 > SFX c3 écrer ècres/25 écrer 39 > SFX c3 éder èdes/25 éder 39 > SFX c3 éger èges/25 éger 39 > SFX c3 égler ègles/25 égler 39 > SFX c3 égner ègnes/25 égner 39 > SFX c3 égrer ègres/25 égrer 39 > SFX c3 éguer ègues/25 éguer 39 > SFX c3 éler èles/25 éler 39 > SFX c3 émer èmes/25 émer 39 > SFX c3 éner ènes/25 éner 39 > SFX c3 éper èpes/25 éper 39 > SFX c3 équer èques/25 équer 39 > SFX c3 érer ères/25 érer 39 > SFX c3 éser èses/25 éser 39 > SFX c3 éter ètes/25 éter 39 > SFX c3 étrer ètres/25 étrer 39 > SFX c3 évrer èvres/25 évrer 39 > SFX c3 éyer èyes/25 éyer 39 4564,4587c4625,4648 < SFX c3 ébrer èbrent/14 ébrer 35 < SFX c3 écer ècent/14 écer 35 < SFX c3 écher èchent/14 écher 35 < SFX c3 écrer ècrent/14 écrer 35 < SFX c3 éder èdent/14 éder 35 < SFX c3 éger ègent/14 éger 35 < SFX c3 égler èglent/14 égler 35 < SFX c3 égner ègnent/14 égner 35 < SFX c3 égrer ègrent/14 égrer 35 < SFX c3 éguer èguent/14 éguer 35 < SFX c3 éler èlent/14 éler 35 < SFX c3 émer èment/14 émer 35 < SFX c3 éner ènent/14 éner 35 < SFX c3 éper èpent/14 éper 35 < SFX c3 équer èquent/14 équer 35 < SFX c3 érer èrent/14 érer 35 < SFX c3 éser èsent/14 éser 35 < SFX c3 éter ètent/14 éter 35 < SFX c3 étrer ètrent/14 étrer 35 < SFX c3 évrer èvrent/14 évrer 35 < SFX c3 éyer èyent/14 éyer 35 < SFX c3 er ais/39 [^cg]er 51 < SFX c3 écer éçais/39 écer 51 < SFX c3 éger égeais/39 éger 51 --- > SFX c3 ébrer èbrent/14 ébrer 34 > SFX c3 écer ècent/14 écer 34 > SFX c3 écher èchent/14 écher 34 > SFX c3 écrer ècrent/14 écrer 34 > SFX c3 éder èdent/14 éder 34 > SFX c3 éger ègent/14 éger 34 > SFX c3 égler èglent/14 égler 34 > SFX c3 égner ègnent/14 égner 34 > SFX c3 égrer ègrent/14 égrer 34 > SFX c3 éguer èguent/14 éguer 34 > SFX c3 éler èlent/14 éler 34 > SFX c3 émer èment/14 émer 34 > SFX c3 éner ènent/14 éner 34 > SFX c3 éper èpent/14 éper 34 > SFX c3 équer èquent/14 équer 34 > SFX c3 érer èrent/14 érer 34 > SFX c3 éser èsent/14 éser 34 > SFX c3 éter ètent/14 éter 34 > SFX c3 étrer ètrent/14 étrer 34 > SFX c3 évrer èvrent/14 évrer 34 > SFX c3 éyer èyent/14 éyer 34 > SFX c3 er ais/40 [^cg]er 51 > SFX c3 écer éçais/40 écer 51 > SFX c3 éger égeais/40 éger 51 4596,4601c4657,4662 < SFX c3 er ai/37 [^cg]er 85 < SFX c3 écer éçai/37 écer 85 < SFX c3 éger égeai/37 éger 85 < SFX c3 er as/24 [^cg]er 84 < SFX c3 écer éças/24 écer 84 < SFX c3 éger égeas/24 éger 84 --- > SFX c3 er ai/37 [^cg]er 84 > SFX c3 écer éçai/37 écer 84 > SFX c3 éger égeai/37 éger 84 > SFX c3 er as/25 [^cg]er 83 > SFX c3 écer éças/25 écer 83 > SFX c3 éger égeas/25 éger 83 4634,4655c4695,4716 < SFX c3 er eras/24 er 31 < SFX c3 ébrer èbreras/24 ébrer 31 < SFX c3 écer èceras/24 écer 31 < SFX c3 écher ècheras/24 écher 31 < SFX c3 écrer ècreras/24 écrer 31 < SFX c3 éder èderas/24 éder 31 < SFX c3 éger ègeras/24 éger 31 < SFX c3 égler ègleras/24 égler 31 < SFX c3 égner ègneras/24 égner 31 < SFX c3 égrer ègreras/24 égrer 31 < SFX c3 éguer ègueras/24 éguer 31 < SFX c3 éler èleras/24 éler 31 < SFX c3 émer èmeras/24 émer 31 < SFX c3 éner èneras/24 éner 31 < SFX c3 éper èperas/24 éper 31 < SFX c3 équer èqueras/24 équer 31 < SFX c3 érer èreras/24 érer 31 < SFX c3 éser èseras/24 éser 31 < SFX c3 éter èteras/24 éter 31 < SFX c3 étrer ètreras/24 étrer 31 < SFX c3 évrer èvreras/24 évrer 31 < SFX c3 éyer èyeras/24 éyer 31 --- > SFX c3 er eras/25 er 31 > SFX c3 ébrer èbreras/25 ébrer 31 > SFX c3 écer èceras/25 écer 31 > SFX c3 écher ècheras/25 écher 31 > SFX c3 écrer ècreras/25 écrer 31 > SFX c3 éder èderas/25 éder 31 > SFX c3 éger ègeras/25 éger 31 > SFX c3 égler ègleras/25 égler 31 > SFX c3 égner ègneras/25 égner 31 > SFX c3 égrer ègreras/25 égrer 31 > SFX c3 éguer ègueras/25 éguer 31 > SFX c3 éler èleras/25 éler 31 > SFX c3 émer èmeras/25 émer 31 > SFX c3 éner èneras/25 éner 31 > SFX c3 éper èperas/25 éper 31 > SFX c3 équer èqueras/25 équer 31 > SFX c3 érer èreras/25 érer 31 > SFX c3 éser èseras/25 éser 31 > SFX c3 éter èteras/25 éter 31 > SFX c3 étrer ètreras/25 étrer 31 > SFX c3 évrer èvreras/25 évrer 31 > SFX c3 éyer èyeras/25 éyer 31 4744,4765c4805,4826 < SFX c3 er erais/39 er 33 < SFX c3 ébrer èbrerais/39 ébrer 33 < SFX c3 écer ècerais/39 écer 33 < SFX c3 écher ècherais/39 écher 33 < SFX c3 écrer ècrerais/39 écrer 33 < SFX c3 éder èderais/39 éder 33 < SFX c3 éger ègerais/39 éger 33 < SFX c3 égler èglerais/39 égler 33 < SFX c3 égner ègnerais/39 égner 33 < SFX c3 égrer ègrerais/39 égrer 33 < SFX c3 éguer èguerais/39 éguer 33 < SFX c3 éler èlerais/39 éler 33 < SFX c3 émer èmerais/39 émer 33 < SFX c3 éner ènerais/39 éner 33 < SFX c3 éper èperais/39 éper 33 < SFX c3 équer èquerais/39 équer 33 < SFX c3 érer èrerais/39 érer 33 < SFX c3 éser èserais/39 éser 33 < SFX c3 éter èterais/39 éter 33 < SFX c3 étrer ètrerais/39 étrer 33 < SFX c3 évrer èvrerais/39 évrer 33 < SFX c3 éyer èyerais/39 éyer 33 --- > SFX c3 er erais/40 er 33 > SFX c3 ébrer èbrerais/40 ébrer 33 > SFX c3 écer ècerais/40 écer 33 > SFX c3 écher ècherais/40 écher 33 > SFX c3 écrer ècrerais/40 écrer 33 > SFX c3 éder èderais/40 éder 33 > SFX c3 éger ègerais/40 éger 33 > SFX c3 égler èglerais/40 égler 33 > SFX c3 égner ègnerais/40 égner 33 > SFX c3 égrer ègrerais/40 égrer 33 > SFX c3 éguer èguerais/40 éguer 33 > SFX c3 éler èlerais/40 éler 33 > SFX c3 émer èmerais/40 émer 33 > SFX c3 éner ènerais/40 éner 33 > SFX c3 éper èperais/40 éper 33 > SFX c3 équer èquerais/40 équer 33 > SFX c3 érer èrerais/40 érer 33 > SFX c3 éser èserais/40 éser 33 > SFX c3 éter èterais/40 éter 33 > SFX c3 étrer ètrerais/40 étrer 33 > SFX c3 évrer èvrerais/40 évrer 33 > SFX c3 éyer èyerais/40 éyer 33 4857,4859c4918,4920 < SFX c3 er asses/24 [^cg]er 58 < SFX c3 écer éçasses/24 écer 58 < SFX c3 éger égeasses/24 éger 58 --- > SFX c3 er asses/25 [^cg]er 58 > SFX c3 écer éçasses/25 écer 58 > SFX c3 éger égeasses/25 éger 58 4872,4892c4933,4953 < SFX c3 ébrer èbre/24 ébrer 30 < SFX c3 écer èce/24 écer 30 < SFX c3 écher èche/24 écher 30 < SFX c3 écrer ècre/24 écrer 30 < SFX c3 éder ède/24 éder 30 < SFX c3 éger ège/24 éger 30 < SFX c3 égler ègle/24 égler 30 < SFX c3 égner ègne/24 égner 30 < SFX c3 égrer ègre/24 égrer 30 < SFX c3 éguer ègue/24 éguer 30 < SFX c3 éler èle/24 éler 30 < SFX c3 émer ème/24 émer 30 < SFX c3 éner ène/24 éner 30 < SFX c3 éper èpe/24 éper 30 < SFX c3 équer èque/24 équer 30 < SFX c3 érer ère/24 érer 30 < SFX c3 éser èse/24 éser 30 < SFX c3 éter ète/24 éter 30 < SFX c3 étrer ètre/24 étrer 30 < SFX c3 évrer èvre/24 évrer 30 < SFX c3 éyer èye/24 éyer 30 --- > SFX c3 ébrer èbre/25 ébrer 30 > SFX c3 écer èce/25 écer 30 > SFX c3 écher èche/25 écher 30 > SFX c3 écrer ècre/25 écrer 30 > SFX c3 éder ède/25 éder 30 > SFX c3 éger ège/25 éger 30 > SFX c3 égler ègle/25 égler 30 > SFX c3 égner ègne/25 égner 30 > SFX c3 égrer ègre/25 égrer 30 > SFX c3 éguer ègue/25 éguer 30 > SFX c3 éler èle/25 éler 30 > SFX c3 émer ème/25 émer 30 > SFX c3 éner ène/25 éner 30 > SFX c3 éper èpe/25 éper 30 > SFX c3 équer èque/25 équer 30 > SFX c3 érer ère/25 érer 30 > SFX c3 éser èse/25 éser 30 > SFX c3 éter ète/25 éter 30 > SFX c3 étrer ètre/25 étrer 30 > SFX c3 évrer èvre/25 évrer 30 > SFX c3 éyer èye/25 éyer 30 4924,4945c4985,5006 < SFX c4 er è/23 er 109 < SFX c4 ébrer èbres/23 ébrer 39 < SFX c4 écer èces/23 écer 39 < SFX c4 écher èches/23 écher 39 < SFX c4 écrer ècres/23 écrer 39 < SFX c4 éder èdes/23 éder 39 < SFX c4 éger èges/23 éger 39 < SFX c4 égler ègles/23 égler 39 < SFX c4 égner ègnes/23 égner 39 < SFX c4 égrer ègres/23 égrer 39 < SFX c4 éguer ègues/23 éguer 39 < SFX c4 éler èles/23 éler 39 < SFX c4 émer èmes/23 émer 39 < SFX c4 éner ènes/23 éner 39 < SFX c4 éper èpes/23 éper 39 < SFX c4 équer èques/23 équer 39 < SFX c4 érer ères/23 érer 39 < SFX c4 éser èses/23 éser 39 < SFX c4 éter ètes/23 éter 39 < SFX c4 étrer ètres/23 étrer 39 < SFX c4 évrer èvres/23 évrer 39 < SFX c4 éyer èyes/23 éyer 39 --- > SFX c4 er è/24 er 114 > SFX c4 ébrer èbres/24 ébrer 39 > SFX c4 écer èces/24 écer 39 > SFX c4 écher èches/24 écher 39 > SFX c4 écrer ècres/24 écrer 39 > SFX c4 éder èdes/24 éder 39 > SFX c4 éger èges/24 éger 39 > SFX c4 égler ègles/24 égler 39 > SFX c4 égner ègnes/24 égner 39 > SFX c4 égrer ègres/24 égrer 39 > SFX c4 éguer ègues/24 éguer 39 > SFX c4 éler èles/24 éler 39 > SFX c4 émer èmes/24 émer 39 > SFX c4 éner ènes/24 éner 39 > SFX c4 éper èpes/24 éper 39 > SFX c4 équer èques/24 équer 39 > SFX c4 érer ères/24 érer 39 > SFX c4 éser èses/24 éser 39 > SFX c4 éter ètes/24 éter 39 > SFX c4 étrer ètres/24 étrer 39 > SFX c4 évrer èvres/24 évrer 39 > SFX c4 éyer èyes/24 éyer 39 4950,4970c5011,5031 < SFX c4 ébrer èbrent/8 ébrer 35 < SFX c4 écer ècent/8 écer 35 < SFX c4 écher èchent/8 écher 35 < SFX c4 écrer ècrent/8 écrer 35 < SFX c4 éder èdent/8 éder 35 < SFX c4 éger ègent/8 éger 35 < SFX c4 égler èglent/8 égler 35 < SFX c4 égner ègnent/8 égner 35 < SFX c4 égrer ègrent/8 égrer 35 < SFX c4 éguer èguent/8 éguer 35 < SFX c4 éler èlent/8 éler 35 < SFX c4 émer èment/8 émer 35 < SFX c4 éner ènent/8 éner 35 < SFX c4 éper èpent/8 éper 35 < SFX c4 équer èquent/8 équer 35 < SFX c4 érer èrent/8 érer 35 < SFX c4 éser èsent/8 éser 35 < SFX c4 éter ètent/8 éter 35 < SFX c4 étrer ètrent/8 étrer 35 < SFX c4 évrer èvrent/8 évrer 35 < SFX c4 éyer èyent/8 éyer 35 --- > SFX c4 ébrer èbrent/8 ébrer 34 > SFX c4 écer ècent/8 écer 34 > SFX c4 écher èchent/8 écher 34 > SFX c4 écrer ècrent/8 écrer 34 > SFX c4 éder èdent/8 éder 34 > SFX c4 éger ègent/8 éger 34 > SFX c4 égler èglent/8 égler 34 > SFX c4 égner ègnent/8 égner 34 > SFX c4 égrer ègrent/8 égrer 34 > SFX c4 éguer èguent/8 éguer 34 > SFX c4 éler èlent/8 éler 34 > SFX c4 émer èment/8 émer 34 > SFX c4 éner ènent/8 éner 34 > SFX c4 éper èpent/8 éper 34 > SFX c4 équer èquent/8 équer 34 > SFX c4 érer èrent/8 érer 34 > SFX c4 éser èsent/8 éser 34 > SFX c4 éter ètent/8 éter 34 > SFX c4 étrer ètrent/8 étrer 34 > SFX c4 évrer èvrent/8 évrer 34 > SFX c4 éyer èyent/8 éyer 34 4982,4987c5043,5048 < SFX c4 er ai/19 [^cg]er 85 < SFX c4 écer éçai/19 écer 85 < SFX c4 éger égeai/19 éger 85 < SFX c4 er as/23 [^cg]er 84 < SFX c4 écer éças/23 écer 84 < SFX c4 éger égeas/23 éger 84 --- > SFX c4 er ai/19 [^cg]er 84 > SFX c4 écer éçai/19 écer 84 > SFX c4 éger égeai/19 éger 84 > SFX c4 er as/24 [^cg]er 83 > SFX c4 écer éças/24 écer 83 > SFX c4 éger égeas/24 éger 83 5020,5041c5081,5102 < SFX c4 er eras/23 er 31 < SFX c4 ébrer èbreras/23 ébrer 31 < SFX c4 écer èceras/23 écer 31 < SFX c4 écher ècheras/23 écher 31 < SFX c4 écrer ècreras/23 écrer 31 < SFX c4 éder èderas/23 éder 31 < SFX c4 éger ègeras/23 éger 31 < SFX c4 égler ègleras/23 égler 31 < SFX c4 égner ègneras/23 égner 31 < SFX c4 égrer ègreras/23 égrer 31 < SFX c4 éguer ègueras/23 éguer 31 < SFX c4 éler èleras/23 éler 31 < SFX c4 émer èmeras/23 émer 31 < SFX c4 éner èneras/23 éner 31 < SFX c4 éper èperas/23 éper 31 < SFX c4 équer èqueras/23 équer 31 < SFX c4 érer èreras/23 érer 31 < SFX c4 éser èseras/23 éser 31 < SFX c4 éter èteras/23 éter 31 < SFX c4 étrer ètreras/23 étrer 31 < SFX c4 évrer èvreras/23 évrer 31 < SFX c4 éyer èyeras/23 éyer 31 --- > SFX c4 er eras/24 er 31 > SFX c4 ébrer èbreras/24 ébrer 31 > SFX c4 écer èceras/24 écer 31 > SFX c4 écher ècheras/24 écher 31 > SFX c4 écrer ècreras/24 écrer 31 > SFX c4 éder èderas/24 éder 31 > SFX c4 éger ègeras/24 éger 31 > SFX c4 égler ègleras/24 égler 31 > SFX c4 égner ègneras/24 égner 31 > SFX c4 égrer ègreras/24 égrer 31 > SFX c4 éguer ègueras/24 éguer 31 > SFX c4 éler èleras/24 éler 31 > SFX c4 émer èmeras/24 émer 31 > SFX c4 éner èneras/24 éner 31 > SFX c4 éper èperas/24 éper 31 > SFX c4 équer èqueras/24 équer 31 > SFX c4 érer èreras/24 érer 31 > SFX c4 éser èseras/24 éser 31 > SFX c4 éter èteras/24 éter 31 > SFX c4 étrer ètreras/24 étrer 31 > SFX c4 évrer èvreras/24 évrer 31 > SFX c4 éyer èyeras/24 éyer 31 5243,5245c5304,5306 < SFX c4 er asses/23 [^cg]er 58 < SFX c4 écer éçasses/23 écer 58 < SFX c4 éger égeasses/23 éger 58 --- > SFX c4 er asses/24 [^cg]er 58 > SFX c4 écer éçasses/24 écer 58 > SFX c4 éger égeasses/24 éger 58 5310c5371 < SFX c5 er è/34 er 109 --- > SFX c5 er è/34 er 114 5335,5356c5396,5417 < SFX c5 er ez/25 er 60 < SFX c5 ébrer èbrent/21 ébrer 35 < SFX c5 écer ècent/21 écer 35 < SFX c5 écher èchent/21 écher 35 < SFX c5 écrer ècrent/21 écrer 35 < SFX c5 éder èdent/21 éder 35 < SFX c5 éger ègent/21 éger 35 < SFX c5 égler èglent/21 égler 35 < SFX c5 égner ègnent/21 égner 35 < SFX c5 égrer ègrent/21 égrer 35 < SFX c5 éguer èguent/21 éguer 35 < SFX c5 éler èlent/21 éler 35 < SFX c5 émer èment/21 émer 35 < SFX c5 éner ènent/21 éner 35 < SFX c5 éper èpent/21 éper 35 < SFX c5 équer èquent/21 équer 35 < SFX c5 érer èrent/21 érer 35 < SFX c5 éser èsent/21 éser 35 < SFX c5 éter ètent/21 éter 35 < SFX c5 étrer ètrent/21 étrer 35 < SFX c5 évrer èvrent/21 évrer 35 < SFX c5 éyer èyent/21 éyer 35 --- > SFX c5 er ez/26 er 60 > SFX c5 ébrer èbrent/21 ébrer 34 > SFX c5 écer ècent/21 écer 34 > SFX c5 écher èchent/21 écher 34 > SFX c5 écrer ècrent/21 écrer 34 > SFX c5 éder èdent/21 éder 34 > SFX c5 éger ègent/21 éger 34 > SFX c5 égler èglent/21 égler 34 > SFX c5 égner ègnent/21 égner 34 > SFX c5 égrer ègrent/21 égrer 34 > SFX c5 éguer èguent/21 éguer 34 > SFX c5 éler èlent/21 éler 34 > SFX c5 émer èment/21 émer 34 > SFX c5 éner ènent/21 éner 34 > SFX c5 éper èpent/21 éper 34 > SFX c5 équer èquent/21 équer 34 > SFX c5 érer èrent/21 érer 34 > SFX c5 éser èsent/21 éser 34 > SFX c5 éter ètent/21 éter 34 > SFX c5 étrer ètrent/21 étrer 34 > SFX c5 évrer èvrent/21 évrer 34 > SFX c5 éyer èyent/21 éyer 34 5364c5425 < SFX c5 er iez/25 er 63 --- > SFX c5 er iez/26 er 63 5368,5373c5429,5434 < SFX c5 er ai/31 [^cg]er 85 < SFX c5 écer éçai/31 écer 85 < SFX c5 éger égeai/31 éger 85 < SFX c5 er as/34 [^cg]er 84 < SFX c5 écer éças/34 écer 84 < SFX c5 éger égeas/34 éger 84 --- > SFX c5 er ai/31 [^cg]er 84 > SFX c5 écer éçai/31 écer 84 > SFX c5 éger égeai/31 éger 84 > SFX c5 er as/34 [^cg]er 83 > SFX c5 écer éças/34 écer 83 > SFX c5 éger égeas/34 éger 83 5380,5382c5441,5443 < SFX c5 er âtes/25 [^cg]er 48 < SFX c5 écer éçâtes/25 écer 48 < SFX c5 éger égeâtes/25 éger 48 --- > SFX c5 er âtes/26 [^cg]er 48 > SFX c5 écer éçâtes/26 écer 48 > SFX c5 éger égeâtes/26 éger 48 5472,5493c5533,5554 < SFX c5 er erez/25 er 26 < SFX c5 ébrer èbrerez/25 ébrer 26 < SFX c5 écer ècerez/25 écer 26 < SFX c5 écher ècherez/25 écher 26 < SFX c5 écrer ècrerez/25 écrer 26 < SFX c5 éder èderez/25 éder 26 < SFX c5 éger ègerez/25 éger 26 < SFX c5 égler èglerez/25 égler 26 < SFX c5 égner ègnerez/25 égner 26 < SFX c5 égrer ègrerez/25 égrer 26 < SFX c5 éguer èguerez/25 éguer 26 < SFX c5 éler èlerez/25 éler 26 < SFX c5 émer èmerez/25 émer 26 < SFX c5 éner ènerez/25 éner 26 < SFX c5 éper èperez/25 éper 26 < SFX c5 équer èquerez/25 équer 26 < SFX c5 érer èrerez/25 érer 26 < SFX c5 éser èserez/25 éser 26 < SFX c5 éter èterez/25 éter 26 < SFX c5 étrer ètrerez/25 étrer 26 < SFX c5 évrer èvrerez/25 évrer 26 < SFX c5 éyer èyerez/25 éyer 26 --- > SFX c5 er erez/26 er 26 > SFX c5 ébrer èbrerez/26 ébrer 26 > SFX c5 écer ècerez/26 écer 26 > SFX c5 écher ècherez/26 écher 26 > SFX c5 écrer ècrerez/26 écrer 26 > SFX c5 éder èderez/26 éder 26 > SFX c5 éger ègerez/26 éger 26 > SFX c5 égler èglerez/26 égler 26 > SFX c5 égner ègnerez/26 égner 26 > SFX c5 égrer ègrerez/26 égrer 26 > SFX c5 éguer èguerez/26 éguer 26 > SFX c5 éler èlerez/26 éler 26 > SFX c5 émer èmerez/26 émer 26 > SFX c5 éner ènerez/26 éner 26 > SFX c5 éper èperez/26 éper 26 > SFX c5 équer èquerez/26 équer 26 > SFX c5 érer èrerez/26 érer 26 > SFX c5 éser èserez/26 éser 26 > SFX c5 éter èterez/26 éter 26 > SFX c5 étrer ètrerez/26 étrer 26 > SFX c5 évrer èvrerez/26 évrer 26 > SFX c5 éyer èyerez/26 éyer 26 5582,5603c5643,5664 < SFX c5 er eriez/25 er 28 < SFX c5 ébrer èbreriez/25 ébrer 28 < SFX c5 écer èceriez/25 écer 28 < SFX c5 écher ècheriez/25 écher 28 < SFX c5 écrer ècreriez/25 écrer 28 < SFX c5 éder èderiez/25 éder 28 < SFX c5 éger ègeriez/25 éger 28 < SFX c5 égler ègleriez/25 égler 28 < SFX c5 égner ègneriez/25 égner 28 < SFX c5 égrer ègreriez/25 égrer 28 < SFX c5 éguer ègueriez/25 éguer 28 < SFX c5 éler èleriez/25 éler 28 < SFX c5 émer èmeriez/25 émer 28 < SFX c5 éner èneriez/25 éner 28 < SFX c5 éper èperiez/25 éper 28 < SFX c5 équer èqueriez/25 équer 28 < SFX c5 érer èreriez/25 érer 28 < SFX c5 éser èseriez/25 éser 28 < SFX c5 éter èteriez/25 éter 28 < SFX c5 étrer ètreriez/25 étrer 28 < SFX c5 évrer èvreriez/25 évrer 28 < SFX c5 éyer èyeriez/25 éyer 28 --- > SFX c5 er eriez/26 er 28 > SFX c5 ébrer èbreriez/26 ébrer 28 > SFX c5 écer èceriez/26 écer 28 > SFX c5 écher ècheriez/26 écher 28 > SFX c5 écrer ècreriez/26 écrer 28 > SFX c5 éder èderiez/26 éder 28 > SFX c5 éger ègeriez/26 éger 28 > SFX c5 égler ègleriez/26 égler 28 > SFX c5 égner ègneriez/26 égner 28 > SFX c5 égrer ègreriez/26 égrer 28 > SFX c5 éguer ègueriez/26 éguer 28 > SFX c5 éler èleriez/26 éler 28 > SFX c5 émer èmeriez/26 émer 28 > SFX c5 éner èneriez/26 éner 28 > SFX c5 éper èperiez/26 éper 28 > SFX c5 équer èqueriez/26 équer 28 > SFX c5 érer èreriez/26 érer 28 > SFX c5 éser èseriez/26 éser 28 > SFX c5 éter èteriez/26 éter 28 > SFX c5 étrer ètreriez/26 étrer 28 > SFX c5 évrer èvreriez/26 évrer 28 > SFX c5 éyer èyeriez/26 éyer 28 5638,5640c5699,5701 < SFX c5 er assiez/25 [^cg]er 56 < SFX c5 écer éçassiez/25 écer 56 < SFX c5 éger égeassiez/25 éger 56 --- > SFX c5 er assiez/26 [^cg]er 56 > SFX c5 écer éçassiez/26 écer 56 > SFX c5 éger égeassiez/26 éger 56 5644,5664c5705,5725 < SFX c5 ébrer èbre/25 ébrer 30 < SFX c5 écer èce/25 écer 30 < SFX c5 écher èche/25 écher 30 < SFX c5 écrer ècre/25 écrer 30 < SFX c5 éder ède/25 éder 30 < SFX c5 éger ège/25 éger 30 < SFX c5 égler ègle/25 égler 30 < SFX c5 égner ègne/25 égner 30 < SFX c5 égrer ègre/25 égrer 30 < SFX c5 éguer ègue/25 éguer 30 < SFX c5 éler èle/25 éler 30 < SFX c5 émer ème/25 émer 30 < SFX c5 éner ène/25 éner 30 < SFX c5 éper èpe/25 éper 30 < SFX c5 équer èque/25 équer 30 < SFX c5 érer ère/25 érer 30 < SFX c5 éser èse/25 éser 30 < SFX c5 éter ète/25 éter 30 < SFX c5 étrer ètre/25 étrer 30 < SFX c5 évrer èvre/25 évrer 30 < SFX c5 éyer èye/25 éyer 30 --- > SFX c5 ébrer èbre/26 ébrer 30 > SFX c5 écer èce/26 écer 30 > SFX c5 écher èche/26 écher 30 > SFX c5 écrer ècre/26 écrer 30 > SFX c5 éder ède/26 éder 30 > SFX c5 éger ège/26 éger 30 > SFX c5 égler ègle/26 égler 30 > SFX c5 égner ègne/26 égner 30 > SFX c5 égrer ègre/26 égrer 30 > SFX c5 éguer ègue/26 éguer 30 > SFX c5 éler èle/26 éler 30 > SFX c5 émer ème/26 émer 30 > SFX c5 éner ène/26 éner 30 > SFX c5 éper èpe/26 éper 30 > SFX c5 équer èque/26 équer 30 > SFX c5 érer ère/26 érer 30 > SFX c5 éser èse/26 éser 30 > SFX c5 éter ète/26 éter 30 > SFX c5 étrer ètre/26 étrer 30 > SFX c5 évrer èvre/26 évrer 30 > SFX c5 éyer èye/26 éyer 30 5679c5740 < SFX d0 er è er 109 --- > SFX d0 er è er 114 5688,5693c5749,5754 < SFX d0 eter ettent jeter 35 < SFX d0 eter ettent [^j]eter 35 < SFX d0 eter ètent [^j]eter 35 < SFX d0 eler ellent ppeler 35 < SFX d0 eler ellent [^p].eler 35 < SFX d0 eler èlent [^p].eler 35 --- > SFX d0 eter ettent jeter 34 > SFX d0 eter ettent [^j]eter 34 > SFX d0 eter ètent [^j]eter 34 > SFX d0 eler ellent ppeler 34 > SFX d0 eler ellent [^p].eler 34 > SFX d0 eler èlent [^p].eler 34 5699,5700c5760,5761 < SFX d0 er ai er 85 < SFX d0 er as er 84 --- > SFX d0 er ai er 84 > SFX d0 er as er 83 5789,5795c5850,5856 < SFX d1 eter ette/59 jeter 38 < SFX d1 eter ette/59 [^j]eter 38 < SFX d1 eter ète/59 [^j]eter 38 < SFX d1 eler elle/59 ppeler 38 < SFX d1 eler elle/59 [^p].eler 38 < SFX d1 eler èle/59 [^p].eler 38 < SFX d1 er è/15 er 109 --- > SFX d1 eter ette/60 jeter 38 > SFX d1 eter ette/60 [^j]eter 38 > SFX d1 eter ète/60 [^j]eter 38 > SFX d1 eler elle/60 ppeler 38 > SFX d1 eler elle/60 [^p].eler 38 > SFX d1 eler èle/60 [^p].eler 38 > SFX d1 er è/15 er 114 5804,5809c5865,5870 < SFX d1 eter ettent/20 jeter 35 < SFX d1 eter ettent/20 [^j]eter 35 < SFX d1 eter ètent/20 [^j]eter 35 < SFX d1 eler ellent/20 ppeler 35 < SFX d1 eler ellent/20 [^p].eler 35 < SFX d1 eler èlent/20 [^p].eler 35 --- > SFX d1 eter ettent/20 jeter 34 > SFX d1 eter ettent/20 [^j]eter 34 > SFX d1 eter ètent/20 [^j]eter 34 > SFX d1 eler ellent/20 ppeler 34 > SFX d1 eler ellent/20 [^p].eler 34 > SFX d1 eler èlent/20 [^p].eler 34 5815,5816c5876,5877 < SFX d1 er ai/30 er 85 < SFX d1 er as/15 er 84 --- > SFX d1 er ai/30 er 84 > SFX d1 er as/15 er 83 5911c5972 < SFX d2 er è/16 er 109 --- > SFX d2 er è/16 er 114 5920,5925c5981,5986 < SFX d2 eter ettent/8 jeter 35 < SFX d2 eter ettent/8 [^j]eter 35 < SFX d2 eter ètent/8 [^j]eter 35 < SFX d2 eler ellent/8 ppeler 35 < SFX d2 eler ellent/8 [^p].eler 35 < SFX d2 eler èlent/8 [^p].eler 35 --- > SFX d2 eter ettent/8 jeter 34 > SFX d2 eter ettent/8 [^j]eter 34 > SFX d2 eter ètent/8 [^j]eter 34 > SFX d2 eler ellent/8 ppeler 34 > SFX d2 eler ellent/8 [^p].eler 34 > SFX d2 eler èlent/8 [^p].eler 34 5931,5932c5992,5993 < SFX d2 er ai/42 er 85 < SFX d2 er as/13 er 84 --- > SFX d2 er ai/42 er 84 > SFX d2 er as/13 er 83 6027,6033c6088,6094 < SFX d3 er è/37 er 109 < SFX d3 eter ettes/24 jeter 39 < SFX d3 eter ettes/24 [^j]eter 39 < SFX d3 eter ètes/24 [^j]eter 39 < SFX d3 eler elles/24 ppeler 39 < SFX d3 eler elles/24 [^p].eler 39 < SFX d3 eler èles/24 [^p].eler 39 --- > SFX d3 er è/37 er 114 > SFX d3 eter ettes/25 jeter 39 > SFX d3 eter ettes/25 [^j]eter 39 > SFX d3 eter ètes/25 [^j]eter 39 > SFX d3 eler elles/25 ppeler 39 > SFX d3 eler elles/25 [^p].eler 39 > SFX d3 eler èles/25 [^p].eler 39 6036,6042c6097,6103 < SFX d3 eter ettent/14 jeter 35 < SFX d3 eter ettent/14 [^j]eter 35 < SFX d3 eter ètent/14 [^j]eter 35 < SFX d3 eler ellent/14 ppeler 35 < SFX d3 eler ellent/14 [^p].eler 35 < SFX d3 eler èlent/14 [^p].eler 35 < SFX d3 er ais/39 er 51 --- > SFX d3 eter ettent/14 jeter 34 > SFX d3 eter ettent/14 [^j]eter 34 > SFX d3 eter ètent/14 [^j]eter 34 > SFX d3 eler ellent/14 ppeler 34 > SFX d3 eler ellent/14 [^p].eler 34 > SFX d3 eler èlent/14 [^p].eler 34 > SFX d3 er ais/40 er 51 6047,6048c6108,6109 < SFX d3 er ai/37 er 85 < SFX d3 er as/24 er 84 --- > SFX d3 er ai/37 er 84 > SFX d3 er as/25 er 83 6059,6064c6120,6125 < SFX d3 eter etteras/24 jeter 31 < SFX d3 eter etteras/24 [^j]eter 31 < SFX d3 eter èteras/24 [^j]eter 31 < SFX d3 eler elleras/24 ppeler 31 < SFX d3 eler elleras/24 [^p].eler 31 < SFX d3 eler èleras/24 [^p].eler 31 --- > SFX d3 eter etteras/25 jeter 31 > SFX d3 eter etteras/25 [^j]eter 31 > SFX d3 eter èteras/25 [^j]eter 31 > SFX d3 eler elleras/25 ppeler 31 > SFX d3 eler elleras/25 [^p].eler 31 > SFX d3 eler èleras/25 [^p].eler 31 6089,6094c6150,6155 < SFX d3 eter etterais/39 jeter 33 < SFX d3 eter etterais/39 [^j]eter 33 < SFX d3 eter èterais/39 [^j]eter 33 < SFX d3 eler ellerais/39 ppeler 33 < SFX d3 eler ellerais/39 [^p].eler 33 < SFX d3 eler èlerais/39 [^p].eler 33 --- > SFX d3 eter etterais/40 jeter 33 > SFX d3 eter etterais/40 [^j]eter 33 > SFX d3 eter èterais/40 [^j]eter 33 > SFX d3 eler ellerais/40 ppeler 33 > SFX d3 eler ellerais/40 [^p].eler 33 > SFX d3 eler èlerais/40 [^p].eler 33 6120c6181 < SFX d3 er asses/24 er 58 --- > SFX d3 er asses/25 er 58 6125,6130c6186,6191 < SFX d3 eter ette/24 jeter 30 < SFX d3 eter ette/24 [^j]eter 30 < SFX d3 eter ète/24 [^j]eter 30 < SFX d3 eler elle/24 ppeler 30 < SFX d3 eler elle/24 [^p].eler 30 < SFX d3 eler èle/24 [^p].eler 30 --- > SFX d3 eter ette/25 jeter 30 > SFX d3 eter ette/25 [^j]eter 30 > SFX d3 eter ète/25 [^j]eter 30 > SFX d3 eler elle/25 ppeler 30 > SFX d3 eler elle/25 [^p].eler 30 > SFX d3 eler èle/25 [^p].eler 30 6145,6153c6206,6214 < SFX d4 er è/23 er 109 < SFX d4 eter ettes/23 jeter 39 < SFX d4 eter ettes/23 [^j]eter 39 < SFX d4 eter ètes/23 [^j]eter 39 < SFX d4 eler elles/23 ppeler 39 < SFX d4 eler elles/23 [^p].eler 39 < SFX d4 eler èles/23 [^p].eler 39 < SFX d4 eler elles/23 épeler 39 < SFX d4 eler èles/23 épeler 39 --- > SFX d4 er è/24 er 114 > SFX d4 eter ettes/24 jeter 39 > SFX d4 eter ettes/24 [^j]eter 39 > SFX d4 eter ètes/24 [^j]eter 39 > SFX d4 eler elles/24 ppeler 39 > SFX d4 eler elles/24 [^p].eler 39 > SFX d4 eler èles/24 [^p].eler 39 > SFX d4 eler elles/24 épeler 39 > SFX d4 eler èles/24 épeler 39 6156,6163c6217,6224 < SFX d4 eter ettent/8 jeter 35 < SFX d4 eter ettent/8 [^j]eter 35 < SFX d4 eter ètent/8 [^j]eter 35 < SFX d4 eler ellent/8 ppeler 35 < SFX d4 eler ellent/8 [^p].eler 35 < SFX d4 eler èlent/8 [^p].eler 35 < SFX d4 eler ellent/8 épeler 35 < SFX d4 eler èlent/8 épeler 35 --- > SFX d4 eter ettent/8 jeter 34 > SFX d4 eter ettent/8 [^j]eter 34 > SFX d4 eter ètent/8 [^j]eter 34 > SFX d4 eler ellent/8 ppeler 34 > SFX d4 eler ellent/8 [^p].eler 34 > SFX d4 eler èlent/8 [^p].eler 34 > SFX d4 eler ellent/8 épeler 34 > SFX d4 eler èlent/8 épeler 34 6169,6170c6230,6231 < SFX d4 er ai/19 er 85 < SFX d4 er as/23 er 84 --- > SFX d4 er ai/19 er 84 > SFX d4 er as/24 er 83 6183,6190c6244,6251 < SFX d4 eter etteras/23 jeter 31 < SFX d4 eter etteras/23 [^j]eter 31 < SFX d4 eter èteras/23 [^j]eter 31 < SFX d4 eler elleras/23 ppeler 31 < SFX d4 eler elleras/23 [^p].eler 31 < SFX d4 eler èleras/23 [^p].eler 31 < SFX d4 eler elleras/23 épeler 31 < SFX d4 eler èleras/23 épeler 31 --- > SFX d4 eter etteras/24 jeter 31 > SFX d4 eter etteras/24 [^j]eter 31 > SFX d4 eter èteras/24 [^j]eter 31 > SFX d4 eler elleras/24 ppeler 31 > SFX d4 eler elleras/24 [^p].eler 31 > SFX d4 eler èleras/24 [^p].eler 31 > SFX d4 eler elleras/24 épeler 31 > SFX d4 eler èleras/24 épeler 31 6264c6325 < SFX d4 er asses/23 er 58 --- > SFX d4 er asses/24 er 58 6289c6350 < SFX d5 er è/34 er 109 --- > SFX d5 er è/34 er 114 6297,6303c6358,6364 < SFX d5 er ez/25 er 60 < SFX d5 eter ettent/21 jeter 35 < SFX d5 eter ettent/21 [^j]eter 35 < SFX d5 eter ètent/21 [^j]eter 35 < SFX d5 eler ellent/21 ppeler 35 < SFX d5 eler ellent/21 [^p].eler 35 < SFX d5 eler èlent/21 [^p].eler 35 --- > SFX d5 er ez/26 er 60 > SFX d5 eter ettent/21 jeter 34 > SFX d5 eter ettent/21 [^j]eter 34 > SFX d5 eter ètent/21 [^j]eter 34 > SFX d5 eler ellent/21 ppeler 34 > SFX d5 eler ellent/21 [^p].eler 34 > SFX d5 eler èlent/21 [^p].eler 34 6307c6368 < SFX d5 er iez/25 er 63 --- > SFX d5 er iez/26 er 63 6309,6310c6370,6371 < SFX d5 er ai/31 er 85 < SFX d5 er as/34 er 84 --- > SFX d5 er ai/31 er 84 > SFX d5 er as/34 er 83 6313c6374 < SFX d5 er âtes/25 er 48 --- > SFX d5 er âtes/26 er 48 6339,6344c6400,6405 < SFX d5 eter etterez/25 jeter 26 < SFX d5 eter etterez/25 [^j]eter 26 < SFX d5 eter èterez/25 [^j]eter 26 < SFX d5 eler ellerez/25 ppeler 26 < SFX d5 eler ellerez/25 [^p].eler 26 < SFX d5 eler èlerez/25 [^p].eler 26 --- > SFX d5 eter etterez/26 jeter 26 > SFX d5 eter etterez/26 [^j]eter 26 > SFX d5 eter èterez/26 [^j]eter 26 > SFX d5 eler ellerez/26 ppeler 26 > SFX d5 eler ellerez/26 [^p].eler 26 > SFX d5 eler èlerez/26 [^p].eler 26 6369,6374c6430,6435 < SFX d5 eter etteriez/25 jeter 28 < SFX d5 eter etteriez/25 [^j]eter 28 < SFX d5 eter èteriez/25 [^j]eter 28 < SFX d5 eler elleriez/25 ppeler 28 < SFX d5 eler elleriez/25 [^p].eler 28 < SFX d5 eler èleriez/25 [^p].eler 28 --- > SFX d5 eter etteriez/26 jeter 28 > SFX d5 eter etteriez/26 [^j]eter 28 > SFX d5 eter èteriez/26 [^j]eter 28 > SFX d5 eler elleriez/26 ppeler 28 > SFX d5 eler elleriez/26 [^p].eler 28 > SFX d5 eler èleriez/26 [^p].eler 28 6385c6446 < SFX d5 er assiez/25 er 56 --- > SFX d5 er assiez/26 er 56 6399,6405c6460,6466 < SFX aA ller llé/64 aller 74 < SFX aA ller llés/64 aller 73 < SFX aA ller llée/64 aller 65 < SFX aA ller llées/64 aller 66 < SFX aA aller vais aller 203 < SFX aA aller vas aller 187 < SFX aA aller va aller 68 --- > SFX aA ller llé/64 aller 71 > SFX aA ller llés/64 aller 70 > SFX aA ller llée/64 aller 67 > SFX aA ller llées/64 aller 68 > SFX aA aller vais aller 217 > SFX aA aller vas aller 207 > SFX aA aller va aller 69 6408,6409c6469,6470 < SFX aA aller vont aller 140 < SFX aA ller llais/59 aller 51 --- > SFX aA aller vont aller 159 > SFX aA ller llais/60 aller 51 6411,6412c6472,6473 < SFX aA ller llions/20 aller 166 < SFX aA ller lliez/20 aller 165 --- > SFX aA ller llions/20 aller 185 > SFX aA ller lliez/20 aller 184 6414,6415c6475,6476 < SFX aA ller llai/59 aller 85 < SFX aA ller llas/20 aller 84 --- > SFX aA ller llai/60 aller 84 > SFX aA ller llas/20 aller 83 6420c6481 < SFX aA aller irai/59 aller 32 --- > SFX aA aller irai/60 aller 32 6426c6487 < SFX aA aller irais/59 aller 33 --- > SFX aA aller irais/60 aller 33 6431,6436c6492,6497 < SFX aA ller ille/80 aller 76 < SFX aA ller illes/15 aller 75 < SFX aA ller llions/15 aller 152 < SFX aA ller lliez/15 aller 151 < SFX aA ller illent/58 aller 133 < SFX aA ller llasse/59 aller 59 --- > SFX aA ller ille/80 aller 73 > SFX aA ller illes/15 aller 72 > SFX aA ller llions/15 aller 171 > SFX aA ller lliez/15 aller 170 > SFX aA ller illent/58 aller 149 > SFX aA ller llasse/60 aller 59 6444,6447c6505,6508 < SFX aA aller vas-y aller 417 < SFX aA aller va-t'en aller 418 < SFX aA ller llons-y aller 421 < SFX aA ller llons-nous-en aller 422 --- > SFX aA aller vas-y aller 452 > SFX aA aller va-t'en aller 453 > SFX aA ller llons-y aller 456 > SFX aA ller llons-nous-en aller 457 6449,6450c6510,6511 < SFX aA ller llez-y aller 419 < SFX aA ller llez-vous-en aller 420 --- > SFX aA ller llez-y aller 454 > SFX aA ller llez-vous-en aller 455 6455,6460c6516,6521 < SFX aD voyer voyé/64 envoyer 74 < SFX aD voyer voyés/64 envoyer 73 < SFX aD voyer voyée/64 envoyer 65 < SFX aD voyer voyées/64 envoyer 66 < SFX aD voyer voie/33 envoyer 416 < SFX aD voyer voies/23 envoyer 187 --- > SFX aD voyer voyé/64 envoyer 71 > SFX aD voyer voyés/64 envoyer 70 > SFX aD voyer voyée/64 envoyer 67 > SFX aD voyer voyées/64 envoyer 68 > SFX aD voyer voie/33 envoyer 451 > SFX aD voyer voies/24 envoyer 207 6463c6524 < SFX aD voyer voient/8 envoyer 35 --- > SFX aD voyer voient/8 envoyer 34 6469,6470c6530,6531 < SFX aD voyer voyai/19 envoyer 85 < SFX aD voyer voyas/23 envoyer 84 --- > SFX aD voyer voyai/19 envoyer 84 > SFX aD voyer voyas/24 envoyer 83 6476c6537 < SFX aD voyer verras/23 envoyer 31 --- > SFX aD voyer verras/24 envoyer 31 6486,6487c6547,6548 < SFX aD voyer voie/33 envoyer 76 < SFX aD voyer voies/41 envoyer 75 --- > SFX aD voyer voie/33 envoyer 73 > SFX aD voyer voies/41 envoyer 72 6489c6550 < SFX aD voyer voyasses/23 envoyer 58 --- > SFX aD voyer voyasses/24 envoyer 58 6501,6504c6562,6565 < SFX aE direr diré/64 direr 74 < SFX aE direr dirés/64 direr 73 < SFX aE direr dirée/64 direr 65 < SFX aE direr dirées/64 direr 66 --- > SFX aE direr diré/64 direr 71 > SFX aE direr dirés/64 direr 70 > SFX aE direr dirée/64 direr 67 > SFX aE direr dirées/64 direr 68 6509,6514c6570,6575 < SFX aF cerner cerné er 74 < SFX aF cerner cernés er 73 < SFX aF cerner cernée er 65 < SFX aF cerner cernées er 66 < SFX aF cerner cerne er 174 < SFX aF cerner cernent er 35 --- > SFX aF cerner cerné er 71 > SFX aF cerner cernés er 70 > SFX aF cerner cernée er 67 > SFX aF cerner cernées er 68 > SFX aF cerner cerne er 197 > SFX aF cerner cernent er 34 6529,6535c6590,6596 < SFX aG mber mbé mber 100 < SFX aG lter lté lter 74 < SFX aG lter ltés lter 73 < SFX aG lter ltée lter 65 < SFX aG lter ltées lter 66 < SFX aG er e/58 er 174 < SFX aG er ent/58 er 35 --- > SFX aG mber mbé mber 102 > SFX aG lter lté lter 71 > SFX aG lter ltés lter 70 > SFX aG lter ltée lter 67 > SFX aG lter ltées lter 68 > SFX aG er e/58 er 197 > SFX aG er ent/58 er 34 6550c6611 < SFX aH er é gger 243 --- > SFX aH er é gger 265 6555c6616 < SFX aH er ent gger 35 --- > SFX aH er ent gger 34 6561,6562c6622,6623 < SFX aH er ai gger 85 < SFX aH er as gger 84 --- > SFX aH er ai gger 84 > SFX aH er as gger 83 6591,6594c6652,6655 < SFX aY neler nelé neler 200 < SFX aY neler nelés neler 73 < SFX aY neler nelée neler 65 < SFX aY neler nelées neler 66 --- > SFX aY neler nelé neler 214 > SFX aY neler nelés neler 70 > SFX aY neler nelée neler 67 > SFX aY neler nelées neler 68 6601,6602c6662,6663 < SFX aY éneler énellent éneler 35 < SFX aY èneler énèlent èneler 35 --- > SFX aY éneler énellent éneler 34 > SFX aY èneler énèlent èneler 34 6608,6609c6669,6670 < SFX aY neler nelai neler 85 < SFX aY neler nelas neler 84 --- > SFX aY neler nelai neler 84 > SFX aY neler nelas neler 83 6650,6653c6711,6714 < SFX aZ teler telé teler 200 < SFX aZ teler telés teler 73 < SFX aZ teler telée teler 65 < SFX aZ teler telées teler 66 --- > SFX aZ teler telé teler 214 > SFX aZ teler telés teler 70 > SFX aZ teler telée teler 67 > SFX aZ teler telées teler 68 6660,6661c6721,6722 < SFX aZ ételer étellent ételer 35 < SFX aZ èteler étèlent èteler 35 --- > SFX aZ ételer étellent ételer 34 > SFX aZ èteler étèlent èteler 34 6667,6668c6728,6729 < SFX aZ teler telai teler 85 < SFX aZ teler telas teler 84 --- > SFX aZ teler telai teler 84 > SFX aZ teler telas teler 83 6709,6712c6770,6773 < SFX dA peler pelé/64 peler 200 < SFX dA peler pelés/64 peler 73 < SFX dA peler pelée/64 peler 65 < SFX dA peler pelées/64 peler 66 --- > SFX dA peler pelé/64 peler 214 > SFX dA peler pelés/64 peler 70 > SFX dA peler pelée/64 peler 67 > SFX dA peler pelées/64 peler 68 6717c6778 < SFX dA peler pellent/8 peler 35 --- > SFX dA peler pellent/8 peler 34 6723,6724c6784,6785 < SFX dA peler pelai/42 peler 85 < SFX dA peler pelas/13 peler 84 --- > SFX dA peler pelai/42 peler 84 > SFX dA peler pelas/13 peler 83 6753,6754c6814,6815 < SFX f0 ir is ir 123 < SFX f0 ir it ir 122 --- > SFX f0 ir is ir 128 > SFX f0 ir it ir 127 6757c6818 < SFX f0 ir issent ir 134 --- > SFX f0 ir issent ir 151 6760,6761c6821,6822 < SFX f0 ir issions ir 142 < SFX f0 ir issiez ir 141 --- > SFX f0 ir issions ir 161 > SFX f0 ir issiez ir 160 6777,6779c6838,6840 < SFX f0 ir isse ir 144 < SFX f0 ir isses ir 143 < SFX f0 ir isse ir 105 --- > SFX f0 ir isse ir 164 > SFX f0 ir isses ir 163 > SFX f0 ir isse ir 109 6788,6789c6849,6850 < SFX f1 ir is/30 ir 123 < SFX f1 ir it/20 ir 122 --- > SFX f1 ir is/30 ir 128 > SFX f1 ir it/20 ir 127 6792c6853 < SFX f1 ir issent/20 ir 134 --- > SFX f1 ir issent/20 ir 151 6795,6796c6856,6857 < SFX f1 ir issions/15 ir 142 < SFX f1 ir issiez/15 ir 141 --- > SFX f1 ir issions/15 ir 161 > SFX f1 ir issiez/15 ir 160 6812,6814c6873,6875 < SFX f1 ir isse/30 ir 144 < SFX f1 ir isses/15 ir 143 < SFX f1 ir isse/20 ir 105 --- > SFX f1 ir isse/30 ir 164 > SFX f1 ir isses/15 ir 163 > SFX f1 ir isse/20 ir 109 6823,6824c6884,6885 < SFX f2 ir is/42 ir 123 < SFX f2 ir it/8 ir 122 --- > SFX f2 ir is/42 ir 128 > SFX f2 ir it/8 ir 127 6827c6888 < SFX f2 ir issent/8 ir 134 --- > SFX f2 ir issent/8 ir 151 6830,6831c6891,6892 < SFX f2 ir issions/16 ir 142 < SFX f2 ir issiez/13 ir 141 --- > SFX f2 ir issions/16 ir 161 > SFX f2 ir issiez/13 ir 160 6837c6898 < SFX f2 ir iras/23 ir 31 --- > SFX f2 ir iras/24 ir 31 6847,6849c6908,6910 < SFX f2 ir isse/42 ir 144 < SFX f2 ir isses/13 ir 143 < SFX f2 ir isse/8 ir 105 --- > SFX f2 ir isse/42 ir 164 > SFX f2 ir isses/13 ir 163 > SFX f2 ir isse/8 ir 109 6858,6859c6919,6920 < SFX f3 ir is/39 ir 123 < SFX f3 ir it/14 ir 122 --- > SFX f3 ir is/40 ir 128 > SFX f3 ir it/14 ir 127 6862,6863c6923,6924 < SFX f3 ir issent/14 ir 134 < SFX f3 ir issais/39 ir 51 --- > SFX f3 ir issent/14 ir 151 > SFX f3 ir issais/40 ir 51 6865,6866c6926,6927 < SFX f3 ir issions ir 142 < SFX f3 ir issiez ir 141 --- > SFX f3 ir issions ir 161 > SFX f3 ir issiez ir 160 6872c6933 < SFX f3 ir iras/24 ir 31 --- > SFX f3 ir iras/25 ir 31 6877c6938 < SFX f3 ir irais/39 ir 33 --- > SFX f3 ir irais/40 ir 33 6882,6884c6943,6945 < SFX f3 ir isse/37 ir 144 < SFX f3 ir isses/24 ir 143 < SFX f3 ir isse/14 ir 105 --- > SFX f3 ir isse/37 ir 164 > SFX f3 ir isses/25 ir 163 > SFX f3 ir isse/14 ir 109 6886c6947 < SFX f3 ir is/24 ir 30 --- > SFX f3 ir is/25 ir 30 6893,6894c6954,6955 < SFX f4 ir is/19 ir 123 < SFX f4 ir it/8 ir 122 --- > SFX f4 ir is/19 ir 128 > SFX f4 ir it/8 ir 127 6897c6958 < SFX f4 ir issent/8 ir 134 --- > SFX f4 ir issent/8 ir 151 6900,6901c6961,6962 < SFX f4 ir issions/16 ir 142 < SFX f4 ir issiez/13 ir 141 --- > SFX f4 ir issions/16 ir 161 > SFX f4 ir issiez/13 ir 160 6907c6968 < SFX f4 ir iras/23 ir 31 --- > SFX f4 ir iras/24 ir 31 6917,6919c6978,6980 < SFX f4 ir isse/19 ir 144 < SFX f4 ir isses/23 ir 143 < SFX f4 ir isse/8 ir 105 --- > SFX f4 ir isse/19 ir 164 > SFX f4 ir isses/24 ir 163 > SFX f4 ir isse/8 ir 109 6928,6929c6989,6990 < SFX f5 ir is/31 ir 123 < SFX f5 ir it/21 ir 122 --- > SFX f5 ir is/31 ir 128 > SFX f5 ir it/21 ir 127 6931,6932c6992,6993 < SFX f5 ir issez/25 ir 60 < SFX f5 ir issent/21 ir 134 --- > SFX f5 ir issez/26 ir 60 > SFX f5 ir issent/21 ir 151 6935,6936c6996,6997 < SFX f5 ir issions/29 ir 142 < SFX f5 ir issiez/25 ir 141 --- > SFX f5 ir issions/29 ir 161 > SFX f5 ir issiez/26 ir 160 6939c7000 < SFX f5 ir îtes/25 ir 48 --- > SFX f5 ir îtes/26 ir 48 6945c7006 < SFX f5 ir irez/25 ir 26 --- > SFX f5 ir irez/26 ir 26 6950c7011 < SFX f5 ir iriez/25 ir 28 --- > SFX f5 ir iriez/26 ir 28 6952,6954c7013,7015 < SFX f5 ir isse/31 ir 144 < SFX f5 ir isses/34 ir 143 < SFX f5 ir isse/21 ir 105 --- > SFX f5 ir isse/31 ir 164 > SFX f5 ir isses/34 ir 163 > SFX f5 ir isse/21 ir 109 6956c7017 < SFX f5 ir is/25 ir 30 --- > SFX f5 ir is/26 ir 30 6958c7019 < SFX f5 ir issez/25 ir 62 --- > SFX f5 ir issez/26 ir 62 6963,6968c7024,7029 < SFX fA aïr aï aïr 74 < SFX fA aïr aïs aïr 73 < SFX fA aïr aïe aïr 65 < SFX fA aïr aïes aïr 66 < SFX fA aïr ais aïr 77 < SFX fA aïr ait aïr 68 --- > SFX fA aïr aï aïr 71 > SFX fA aïr aïs aïr 70 > SFX fA aïr aïe aïr 67 > SFX fA aïr aïes aïr 68 > SFX fA aïr ais aïr 75 > SFX fA aïr ait aïr 69 6971c7032 < SFX fA aïr aïssent aïr 134 --- > SFX fA aïr aïssent aïr 151 6974,6975c7035,7036 < SFX fA aïr aïssions aïr 142 < SFX fA aïr aïssiez aïr 141 --- > SFX fA aïr aïssions aïr 161 > SFX fA aïr aïssiez aïr 160 6977,6978c7038,7039 < SFX fA aïr aïs aïr 79 < SFX fA aïr aït aïr 269 --- > SFX fA aïr aïs aïr 77 > SFX fA aïr aït aïr 290 6993,6995c7054,7056 < SFX fA aïr aïsse aïr 144 < SFX fA aïr aïsses aïr 143 < SFX fA aïr aïsse aïr 105 --- > SFX fA aïr aïsse aïr 164 > SFX fA aïr aïsses aïr 163 > SFX fA aïr aïsse aïr 109 7003,7007c7064,7068 < SFX fB haïr haï aïr 74 < SFX fB haïr haïs aïr 73 < SFX fB haïr haïe aïr 65 < SFX fB haïr haïes aïr 66 < SFX fB haïr hait/14 aïr 68 --- > SFX fB haïr haï aïr 71 > SFX fB haïr haïs aïr 70 > SFX fB haïr haïe aïr 67 > SFX fB haïr haïes aïr 68 > SFX fB haïr hait/14 aïr 69 7010c7071 < SFX fB haïr haïssent/14 aïr 134 --- > SFX fB haïr haïssent/14 aïr 151 7012,7013c7073,7074 < SFX fB haïr haïssions aïr 142 < SFX fB haïr haïssiez aïr 141 --- > SFX fB haïr haïssions aïr 161 > SFX fB haïr haïssiez aïr 160 7015c7076 < SFX fB haïr haït/14 aïr 269 --- > SFX fB haïr haït/14 aïr 290 7027c7088 < SFX fB haïr haïsse/14 aïr 105 --- > SFX fB haïr haïsse/14 aïr 109 7034,7039c7095,7100 < SFX fC partir parti/64 impartir 74 < SFX fC partir partis/64 impartir 73 < SFX fC partir partie/64 impartir 65 < SFX fC partir parties/64 impartir 66 < SFX fC partir partis/19 impartir 77 < SFX fC partir partit/8 impartir 68 --- > SFX fC partir parti/64 impartir 71 > SFX fC partir partis/64 impartir 70 > SFX fC partir partie/64 impartir 67 > SFX fC partir parties/64 impartir 68 > SFX fC partir partis/19 impartir 75 > SFX fC partir partit/8 impartir 69 7042c7103 < SFX fC partir partissent/8 impartir 140 --- > SFX fC partir partissent/8 impartir 159 7047,7048c7108,7109 < SFX fD ortir ortit sortir 68 < SFX fD ortir ortissent sortir 134 --- > SFX fD ortir ortit sortir 69 > SFX fD ortir ortissent sortir 151 7055c7116 < SFX fD ortir ortisse sortir 105 --- > SFX fD ortir ortisse sortir 109 7061,7066c7122,7127 < SFX fY uïr uï uïr 74 < SFX fY uïr uïs uïr 73 < SFX fY uïr uïe uïr 65 < SFX fY uïr uïes uïr 66 < SFX fY uïr uïs/39 uïr 123 < SFX fY uïr uït/14 uïr 122 --- > SFX fY uïr uï uïr 71 > SFX fY uïr uïs uïr 70 > SFX fY uïr uïe uïr 67 > SFX fY uïr uïes uïr 68 > SFX fY uïr uïs/40 uïr 128 > SFX fY uïr uït/14 uïr 127 7069,7070c7130,7131 < SFX fY uïr uïssent/14 uïr 134 < SFX fY uïr uïssais/39 uïr 51 --- > SFX fY uïr uïssent/14 uïr 151 > SFX fY uïr uïssais/40 uïr 51 7072,7073c7133,7134 < SFX fY uïr uïssions uïr 142 < SFX fY uïr uïssiez uïr 141 --- > SFX fY uïr uïssions uïr 161 > SFX fY uïr uïssiez uïr 160 7079c7140 < SFX fY uïr uïras/24 uïr 31 --- > SFX fY uïr uïras/25 uïr 31 7084c7145 < SFX fY uïr uïrais/39 uïr 33 --- > SFX fY uïr uïrais/40 uïr 33 7089,7091c7150,7152 < SFX fY uïr uïsse/37 uïr 144 < SFX fY uïr uïsses/24 uïr 143 < SFX fY uïr uïsse/14 uïr 105 --- > SFX fY uïr uïsse/37 uïr 164 > SFX fY uïr uïsses/25 uïr 163 > SFX fY uïr uïsse/14 uïr 109 7093c7154 < SFX fY uïr uïs/24 uïr 30 --- > SFX fY uïr uïs/25 uïr 30 7100c7161 < SFX fZ gir git agir 68 --- > SFX fZ gir git agir 69 7104c7165 < SFX fZ gir gisse agir 105 --- > SFX fZ gir gisse agir 109 7108,7115c7169,7176 < SFX p+ er é/6 er 200 < SFX p+ er és/9 er 73 < SFX p+ er ée/6 er 65 < SFX p+ er ées/9 er 66 < SFX p+ ir i/6 ir 74 < SFX p+ ir is/9 ir 73 < SFX p+ ir ie/6 ir 65 < SFX p+ ir ies/9 ir 66 --- > SFX p+ er é/6 er 214 > SFX p+ er és/9 er 70 > SFX p+ er ée/6 er 67 > SFX p+ er ées/9 er 68 > SFX p+ ir i/6 ir 71 > SFX p+ ir is/9 ir 70 > SFX p+ ir ie/6 ir 67 > SFX p+ ir ies/9 ir 68 7118,7119c7179,7180 < SFX p. er é/64 er 243 < SFX p. ir i/64 ir 100 --- > SFX p. er é/64 er 265 > SFX p. ir i/64 ir 102 7124,7125c7185,7186 < SFX i0 enir iens/30 enir 77 < SFX i0 enir ient/20 enir 68 --- > SFX i0 enir iens/30 enir 75 > SFX i0 enir ient/20 enir 69 7128c7189 < SFX i0 enir iennent/20 enir 35 --- > SFX i0 enir iennent/20 enir 34 7134c7195 < SFX i0 enir ins/30 enir 79 --- > SFX i0 enir ins/30 enir 77 7150,7151c7211,7212 < SFX i0 enir ienne/59 enir 76 < SFX i0 enir iennes/15 enir 75 --- > SFX i0 enir ienne/60 enir 73 > SFX i0 enir iennes/15 enir 72 7165,7166c7226,7227 < SFX i1 enir iens/19 enir 77 < SFX i1 enir ient/8 enir 68 --- > SFX i1 enir iens/19 enir 75 > SFX i1 enir ient/8 enir 69 7169c7230 < SFX i1 enir iennent/8 enir 35 --- > SFX i1 enir iennent/8 enir 34 7175c7236 < SFX i1 enir ins/19 enir 79 --- > SFX i1 enir ins/19 enir 77 7181c7242 < SFX i1 enir iendras/23 enir 31 --- > SFX i1 enir iendras/24 enir 31 7191,7192c7252,7253 < SFX i1 enir ienne/33 enir 76 < SFX i1 enir iennes/41 enir 75 --- > SFX i1 enir ienne/33 enir 73 > SFX i1 enir iennes/41 enir 72 7194c7255 < SFX i1 enir insses/23 enir 58 --- > SFX i1 enir insses/24 enir 58 7206,7207c7267,7268 < SFX i2 enir iens/39 enir 77 < SFX i2 enir ient/14 enir 68 --- > SFX i2 enir iens/40 enir 75 > SFX i2 enir ient/14 enir 69 7210,7211c7271,7272 < SFX i2 enir iennent/14 enir 35 < SFX i2 enir enais/39 enir 51 --- > SFX i2 enir iennent/14 enir 34 > SFX i2 enir enais/40 enir 51 7216c7277 < SFX i2 enir ins/39 enir 79 --- > SFX i2 enir ins/40 enir 77 7222c7283 < SFX i2 enir iendras/24 enir 31 --- > SFX i2 enir iendras/25 enir 31 7227c7288 < SFX i2 enir iendrais/39 enir 33 --- > SFX i2 enir iendrais/40 enir 33 7232,7233c7293,7294 < SFX i2 enir ienne/51 enir 76 < SFX i2 enir iennes/24 enir 75 --- > SFX i2 enir ienne/51 enir 73 > SFX i2 enir iennes/25 enir 72 7235c7296 < SFX i2 enir insses/24 enir 58 --- > SFX i2 enir insses/25 enir 58 7240c7301 < SFX i2 enir iens/24 enir 30 --- > SFX i2 enir iens/25 enir 30 7247,7248c7308,7309 < SFX i5 tir s tir 77 < SFX i5 tir t tir 68 --- > SFX i5 tir s tir 75 > SFX i5 tir t tir 69 7251c7312 < SFX i5 tir tent tir 35 --- > SFX i5 tir tent tir 34 7257c7318 < SFX i5 tir tis tir 79 --- > SFX i5 tir tis tir 77 7273,7274c7334,7335 < SFX i5 tir te tir 76 < SFX i5 tir tes tir 75 --- > SFX i5 tir te tir 73 > SFX i5 tir tes tir 72 7288,7293c7349,7354 < SFX iA dvenir dvenu/74 venir 74 < SFX iA dvenir dvenus/74 venir 73 < SFX iA dvenir dvenue/74 venir 65 < SFX iA dvenir dvenues/74 venir 66 < SFX iA dvenir dvient/58 venir 68 < SFX iA dvenir dviennent/20 venir 35 --- > SFX iA dvenir dvenu/74 venir 71 > SFX iA dvenir dvenus/74 venir 70 > SFX iA dvenir dvenue/74 venir 67 > SFX iA dvenir dvenues/74 venir 68 > SFX iA dvenir dvient/58 venir 69 > SFX iA dvenir dviennent/20 venir 34 7302c7363 < SFX iA dvenir dvienne/58 venir 105 --- > SFX iA dvenir dvienne/58 venir 109 7309,7311c7370,7372 < SFX iB partenir partenu/64 tenir 100 < SFX iB partenir partiens/31 tenir 77 < SFX iB partenir partient/21 tenir 68 --- > SFX iB partenir partenu/64 tenir 102 > SFX iB partenir partiens/31 tenir 75 > SFX iB partenir partient/21 tenir 69 7313,7314c7374,7375 < SFX iB partenir partenez/25 tenir 60 < SFX iB partenir partiennent/21 tenir 35 --- > SFX iB partenir partenez/26 tenir 60 > SFX iB partenir partiennent/21 tenir 34 7318c7379 < SFX iB partenir parteniez/25 tenir 63 --- > SFX iB partenir parteniez/26 tenir 63 7320c7381 < SFX iB partenir partins/31 tenir 79 --- > SFX iB partenir partins/31 tenir 77 7323c7384 < SFX iB partenir partîntes/25 tenir 48 --- > SFX iB partenir partîntes/26 tenir 48 7329c7390 < SFX iB partenir partiendrez/25 tenir 26 --- > SFX iB partenir partiendrez/26 tenir 26 7334c7395 < SFX iB partenir partiendriez/25 tenir 28 --- > SFX iB partenir partiendriez/26 tenir 28 7336,7337c7397,7398 < SFX iB partenir partienne/55 tenir 76 < SFX iB partenir partiennes/34 tenir 75 --- > SFX iB partenir partienne/55 tenir 73 > SFX iB partenir partiennes/34 tenir 72 7342c7403 < SFX iB partenir partinssiez/25 tenir 56 --- > SFX iB partenir partinssiez/26 tenir 56 7346c7407 < SFX iB partenir partenez/25 tenir 62 --- > SFX iB partenir partenez/26 tenir 62 7351,7354c7412,7415 < SFX iC rir ert/6 [vf]rir 74 < SFX iC rir erts/9 [vf]rir 73 < SFX iC rir erte/6 [vf]rir 65 < SFX iC rir ertes/9 [vf]rir 66 --- > SFX iC rir ert/6 [vf]rir 71 > SFX iC rir erts/9 [vf]rir 70 > SFX iC rir erte/6 [vf]rir 67 > SFX iC rir ertes/9 [vf]rir 68 7356c7417 < SFX iC rir res/23 [vf]rir 187 --- > SFX iC rir res/24 [vf]rir 207 7359c7420 < SFX iC rir rent/8 [vf]rir 35 --- > SFX iC rir rent/8 [vf]rir 34 7365c7426 < SFX iC rir ris/19 [vf]rir 79 --- > SFX iC rir ris/19 [vf]rir 77 7371c7432 < SFX iC rir riras/23 [vf]rir 31 --- > SFX iC rir riras/24 [vf]rir 31 7382c7443 < SFX iC rir risses/23 [vf]rir 58 --- > SFX iC rir risses/24 [vf]rir 58 7394,7399c7455,7460 < SFX iD courir couru courir 74 < SFX iD courir courus courir 73 < SFX iD courir courue courir 65 < SFX iD courir courues courir 66 < SFX iD courir cours/30 courir 77 < SFX iD courir court/15 courir 68 --- > SFX iD courir couru courir 71 > SFX iD courir courus courir 70 > SFX iD courir courue courir 67 > SFX iD courir courues courir 68 > SFX iD courir cours/30 courir 75 > SFX iD courir court/15 courir 69 7402c7463 < SFX iD courir courent/15 courir 35 --- > SFX iD courir courent/15 courir 34 7408c7469 < SFX iD courir courus/30 courir 79 --- > SFX iD courir courus/30 courir 77 7424,7425c7485,7486 < SFX iD courir coure/30 courir 76 < SFX iD courir coures/15 courir 75 --- > SFX iD courir coure/30 courir 73 > SFX iD courir coures/15 courir 72 7439,7447c7500,7508 < SFX iE ourir ouru/6 courir 74 < SFX iE ourir ourus/9 courir 73 < SFX iE ourir ourue/6 courir 65 < SFX iE ourir ourues/9 courir 66 < SFX iE ourir ours/19 courir 77 < SFX iE ourir ourt/63 courir 68 < SFX iE ourir ourons/38 courir 46 < SFX iE ourir ourez/38 courir 60 < SFX iE ourir ourent/63 courir 35 --- > SFX iE ourir ouru/6 courir 71 > SFX iE ourir ourus/9 courir 70 > SFX iE ourir ourue/6 courir 67 > SFX iE ourir ourues/9 courir 68 > SFX iE ourir ours/19 courir 75 > SFX iE ourir ourt/63 courir 69 > SFX iE ourir ourons/39 courir 46 > SFX iE ourir ourez/39 courir 60 > SFX iE ourir ourent/63 courir 34 7450,7451c7511,7512 < SFX iE ourir ourions/38 courir 64 < SFX iE ourir ouriez/38 courir 63 --- > SFX iE ourir ourions/39 courir 64 > SFX iE ourir ouriez/39 courir 63 7453c7514 < SFX iE ourir ourus/19 courir 79 --- > SFX iE ourir ourus/19 courir 77 7455,7456c7516,7517 < SFX iE ourir ourûmes/38 courir 49 < SFX iE ourir ourûtes/38 courir 48 --- > SFX iE ourir ourûmes/39 courir 49 > SFX iE ourir ourûtes/39 courir 48 7461,7462c7522,7523 < SFX iE ourir ourrons/38 courir 27 < SFX iE ourir ourrez/38 courir 26 --- > SFX iE ourir ourrons/39 courir 27 > SFX iE ourir ourrez/39 courir 26 7466,7467c7527,7528 < SFX iE ourir ourrions/38 courir 29 < SFX iE ourir ourriez/38 courir 28 --- > SFX iE ourir ourrions/39 courir 29 > SFX iE ourir ourriez/39 courir 28 7469,7470c7530,7531 < SFX iE ourir oure/133 courir 76 < SFX iE ourir oures/136 courir 75 --- > SFX iE ourir oure/133 courir 73 > SFX iE ourir oures/136 courir 72 7474,7475c7535,7536 < SFX iE ourir ourussions/38 courir 57 < SFX iE ourir ourussiez/38 courir 56 --- > SFX iE ourir ourussions/39 courir 57 > SFX iE ourir ourussiez/39 courir 56 7484,7489c7545,7550 < SFX iF ervir ervi servir 74 < SFX iF ervir ervis servir 73 < SFX iF ervir ervie servir 65 < SFX iF ervir ervies servir 66 < SFX iF ervir ers servir 77 < SFX iF ervir ert servir 68 --- > SFX iF ervir ervi servir 71 > SFX iF ervir ervis servir 70 > SFX iF ervir ervie servir 67 > SFX iF ervir ervies servir 68 > SFX iF ervir ers servir 75 > SFX iF ervir ert servir 69 7492c7553 < SFX iF ervir ervent servir 35 --- > SFX iF ervir ervent servir 34 7498c7559 < SFX iF ervir ervis servir 79 --- > SFX iF ervir ervis servir 77 7514,7515c7575,7576 < SFX iF ervir erve servir 76 < SFX iF ervir erves servir 75 --- > SFX iF ervir erve servir 73 > SFX iF ervir erves servir 72 7529,7534c7590,7595 < SFX iG êtir êtu vêtir 74 < SFX iG êtir êtus vêtir 73 < SFX iG êtir êtue vêtir 65 < SFX iG êtir êtues vêtir 66 < SFX iG êtir êts vêtir 77 < SFX iG êtir êt vêtir 68 --- > SFX iG êtir êtu vêtir 71 > SFX iG êtir êtus vêtir 70 > SFX iG êtir êtue vêtir 67 > SFX iG êtir êtues vêtir 68 > SFX iG êtir êts vêtir 75 > SFX iG êtir êt vêtir 69 7537c7598 < SFX iG êtir êtent vêtir 35 --- > SFX iG êtir êtent vêtir 34 7543c7604 < SFX iG êtir êtis vêtir 79 --- > SFX iG êtir êtis vêtir 77 7559,7560c7620,7621 < SFX iG êtir ête vêtir 76 < SFX iG êtir êtes vêtir 75 --- > SFX iG êtir ête vêtir 73 > SFX iG êtir êtes vêtir 72 7574,7576c7635,7637 < SFX iI ormir ormi dormir 100 < SFX iI ormir ors dormir 77 < SFX iI ormir ort dormir 68 --- > SFX iI ormir ormi dormir 102 > SFX iI ormir ors dormir 75 > SFX iI ormir ort dormir 69 7579c7640 < SFX iI ormir orment dormir 35 --- > SFX iI ormir orment dormir 34 7585c7646 < SFX iI ormir ormis dormir 79 --- > SFX iI ormir ormis dormir 77 7601,7602c7662,7663 < SFX iI ormir orme dormir 76 < SFX iI ormir ormes dormir 75 --- > SFX iI ormir orme dormir 73 > SFX iI ormir ormes dormir 72 7616,7621c7677,7682 < SFX iJ dormir dormi/6 dormir 74 < SFX iJ dormir dormis/9 dormir 73 < SFX iJ dormir dormie/6 dormir 65 < SFX iJ dormir dormies/9 dormir 66 < SFX iJ dormir dors/19 dormir 77 < SFX iJ dormir dort/8 dormir 68 --- > SFX iJ dormir dormi/6 dormir 71 > SFX iJ dormir dormis/9 dormir 70 > SFX iJ dormir dormie/6 dormir 67 > SFX iJ dormir dormies/9 dormir 68 > SFX iJ dormir dors/19 dormir 75 > SFX iJ dormir dort/8 dormir 69 7624c7685 < SFX iJ dormir dorment/8 dormir 35 --- > SFX iJ dormir dorment/8 dormir 34 7630c7691 < SFX iJ dormir dormis/19 dormir 79 --- > SFX iJ dormir dormis/19 dormir 77 7636c7697 < SFX iJ dormir dormiras/23 dormir 31 --- > SFX iJ dormir dormiras/24 dormir 31 7646,7647c7707,7708 < SFX iJ dormir dorme/33 dormir 76 < SFX iJ dormir dormes/41 dormir 75 --- > SFX iJ dormir dorme/33 dormir 73 > SFX iJ dormir dormes/41 dormir 72 7649c7710 < SFX iJ dormir dormisses/23 dormir 58 --- > SFX iJ dormir dormisses/24 dormir 58 7661,7665c7722,7726 < SFX iK quérir quis/6 quérir 116 < SFX iK quérir quise/6 quérir 65 < SFX iK quérir quises/9 quérir 66 < SFX iK quérir quiers/19 quérir 77 < SFX iK quérir quiert/8 quérir 68 --- > SFX iK quérir quis/6 quérir 121 > SFX iK quérir quise/6 quérir 67 > SFX iK quérir quises/9 quérir 68 > SFX iK quérir quiers/19 quérir 75 > SFX iK quérir quiert/8 quérir 69 7668c7729 < SFX iK quérir quièrent/8 quérir 35 --- > SFX iK quérir quièrent/8 quérir 34 7674c7735 < SFX iK quérir quis/19 quérir 79 --- > SFX iK quérir quis/19 quérir 77 7680c7741 < SFX iK quérir querras/23 quérir 31 --- > SFX iK quérir querras/24 quérir 31 7690,7691c7751,7752 < SFX iK quérir quière/33 quérir 76 < SFX iK quérir quières/41 quérir 75 --- > SFX iK quérir quière/33 quérir 73 > SFX iK quérir quières/41 quérir 72 7693c7754 < SFX iK quérir quisses/23 quérir 58 --- > SFX iK quérir quisses/24 quérir 58 7705,7709c7766,7770 < SFX iM quérir quis/6 quérir 116 < SFX iM quérir quise/6 quérir 65 < SFX iM quérir quises/9 quérir 66 < SFX iM quérir quiers/39 quérir 77 < SFX iM quérir quiert/14 quérir 68 --- > SFX iM quérir quis/6 quérir 121 > SFX iM quérir quise/6 quérir 67 > SFX iM quérir quises/9 quérir 68 > SFX iM quérir quiers/40 quérir 75 > SFX iM quérir quiert/14 quérir 69 7712,7713c7773,7774 < SFX iM quérir quièrent/14 quérir 35 < SFX iM quérir quérais/39 quérir 51 --- > SFX iM quérir quièrent/14 quérir 34 > SFX iM quérir quérais/40 quérir 51 7718c7779 < SFX iM quérir quis/39 quérir 79 --- > SFX iM quérir quis/40 quérir 77 7724c7785 < SFX iM quérir querras/24 quérir 31 --- > SFX iM quérir querras/25 quérir 31 7729c7790 < SFX iM quérir querrais/39 quérir 33 --- > SFX iM quérir querrais/40 quérir 33 7734,7735c7795,7796 < SFX iM quérir quière/51 quérir 76 < SFX iM quérir quières/24 quérir 75 --- > SFX iM quérir quière/51 quérir 73 > SFX iM quérir quières/25 quérir 72 7737c7798 < SFX iM quérir quisses/24 quérir 58 --- > SFX iM quérir quisses/25 quérir 58 7742c7803 < SFX iM quérir quiers/24 quérir 30 --- > SFX iM quérir quiers/25 quérir 30 7749,7754c7810,7815 < SFX iN uir ui fuir 74 < SFX iN uir uis fuir 73 < SFX iN uir uie fuir 65 < SFX iN uir uies fuir 66 < SFX iN uir uis fuir 123 < SFX iN uir uit fuir 122 --- > SFX iN uir ui fuir 71 > SFX iN uir uis fuir 70 > SFX iN uir uie fuir 67 > SFX iN uir uies fuir 68 > SFX iN uir uis fuir 128 > SFX iN uir uit fuir 127 7757c7818 < SFX iN uir uient fuir 35 --- > SFX iN uir uient fuir 34 7777,7778c7838,7839 < SFX iN uir uie fuir 76 < SFX iN uir uies fuir 75 --- > SFX iN uir uie fuir 73 > SFX iN uir uies fuir 72 7792,7797c7853,7858 < SFX iO fuir fui/6 enfuir 74 < SFX iO fuir fuis/9 enfuir 73 < SFX iO fuir fuie/6 enfuir 65 < SFX iO fuir fuies/9 enfuir 66 < SFX iO fuir fuis/39 enfuir 123 < SFX iO fuir fuit/14 enfuir 122 --- > SFX iO fuir fui/6 enfuir 71 > SFX iO fuir fuis/9 enfuir 70 > SFX iO fuir fuie/6 enfuir 67 > SFX iO fuir fuies/9 enfuir 68 > SFX iO fuir fuis/40 enfuir 128 > SFX iO fuir fuit/14 enfuir 127 7800,7801c7861,7862 < SFX iO fuir fuient/14 enfuir 35 < SFX iO fuir fuyais/39 enfuir 51 --- > SFX iO fuir fuient/14 enfuir 34 > SFX iO fuir fuyais/40 enfuir 51 7810c7871 < SFX iO fuir fuiras/24 enfuir 31 --- > SFX iO fuir fuiras/25 enfuir 31 7815c7876 < SFX iO fuir fuirais/39 enfuir 33 --- > SFX iO fuir fuirais/40 enfuir 33 7820,7821c7881,7882 < SFX iO fuir fuie/51 enfuir 76 < SFX iO fuir fuies/24 enfuir 75 --- > SFX iO fuir fuie/51 enfuir 73 > SFX iO fuir fuies/25 enfuir 72 7823c7884 < SFX iO fuir fuisses/24 enfuir 58 --- > SFX iO fuir fuisses/25 enfuir 58 7828c7889 < SFX iO fuir fuis/24 enfuir 30 --- > SFX iO fuir fuis/25 enfuir 30 7835,7840c7896,7901 < SFX iP ourir ort mourir 74 < SFX iP ourir orts mourir 73 < SFX iP ourir orte mourir 65 < SFX iP ourir ortes mourir 66 < SFX iP ourir eurs mourir 77 < SFX iP ourir eurt mourir 68 --- > SFX iP ourir ort mourir 71 > SFX iP ourir orts mourir 70 > SFX iP ourir orte mourir 67 > SFX iP ourir ortes mourir 68 > SFX iP ourir eurs mourir 75 > SFX iP ourir eurt mourir 69 7843c7904 < SFX iP ourir eurent mourir 35 --- > SFX iP ourir eurent mourir 34 7849c7910 < SFX iP ourir ourus mourir 79 --- > SFX iP ourir ourus mourir 77 7865,7866c7926,7927 < SFX iP ourir eure mourir 76 < SFX iP ourir eures mourir 75 --- > SFX iP ourir eure mourir 73 > SFX iP ourir eures mourir 72 7880,7885c7941,7946 < SFX iQ ouillir ouilli bouillir 74 < SFX iQ ouillir ouillis bouillir 73 < SFX iQ ouillir ouillie bouillir 65 < SFX iQ ouillir ouillies bouillir 66 < SFX iQ ouillir ous bouillir 77 < SFX iQ ouillir out bouillir 68 --- > SFX iQ ouillir ouilli bouillir 71 > SFX iQ ouillir ouillis bouillir 70 > SFX iQ ouillir ouillie bouillir 67 > SFX iQ ouillir ouillies bouillir 68 > SFX iQ ouillir ous bouillir 75 > SFX iQ ouillir out bouillir 69 7888c7949 < SFX iQ ouillir ouillent bouillir 35 --- > SFX iQ ouillir ouillent bouillir 34 7894c7955 < SFX iQ ouillir ouillis bouillir 79 --- > SFX iQ ouillir ouillis bouillir 77 7910,7911c7971,7972 < SFX iQ ouillir ouille bouillir 76 < SFX iQ ouillir ouilles bouillir 75 --- > SFX iQ ouillir ouille bouillir 73 > SFX iQ ouillir ouilles bouillir 72 7925,7928c7986,7989 < SFX iR ueillir ueilli/6 cueillir 74 < SFX iR ueillir ueillis/9 cueillir 73 < SFX iR ueillir ueillie/6 cueillir 65 < SFX iR ueillir ueillies/9 cueillir 66 --- > SFX iR ueillir ueilli/6 cueillir 71 > SFX iR ueillir ueillis/9 cueillir 70 > SFX iR ueillir ueillie/6 cueillir 67 > SFX iR ueillir ueillies/9 cueillir 68 7933c7994 < SFX iR ueillir ueillent/8 cueillir 35 --- > SFX iR ueillir ueillent/8 cueillir 34 7939c8000 < SFX iR ueillir ueillis/42 cueillir 79 --- > SFX iR ueillir ueillis/42 cueillir 77 7968c8029 < SFX iS aillir ailli aillir 100 --- > SFX iS aillir ailli aillir 102 7973c8034 < SFX iS aillir aillent aillir 35 --- > SFX iS aillir aillent aillir 34 7979c8040 < SFX iS aillir aillis aillir 79 --- > SFX iS aillir aillis aillir 77 8008,8011c8069,8072 < SFX iT saillir sailli/6 aillir 74 < SFX iT saillir saillis/9 aillir 73 < SFX iT saillir saillie/6 aillir 65 < SFX iT saillir saillies/9 aillir 66 --- > SFX iT saillir sailli/6 aillir 71 > SFX iT saillir saillis/9 aillir 70 > SFX iT saillir saillie/6 aillir 67 > SFX iT saillir saillies/9 aillir 68 8013c8074 < SFX iT saillir sailles/23 aillir 39 --- > SFX iT saillir sailles/24 aillir 39 8016c8077 < SFX iT saillir saillent/8 aillir 35 --- > SFX iT saillir saillent/8 aillir 34 8022c8083 < SFX iT saillir saillis/19 aillir 79 --- > SFX iT saillir saillis/19 aillir 77 8028c8089 < SFX iT saillir sailliras/23 aillir 31 --- > SFX iT saillir sailliras/24 aillir 31 8039c8100 < SFX iT saillir saillisses/23 aillir 58 --- > SFX iT saillir saillisses/24 aillir 58 8051,8053c8112,8114 < SFX iU aillir ailli faillir 100 < SFX iU aillir aux faillir 77 < SFX iU aillir aut faillir 68 --- > SFX iU aillir ailli faillir 102 > SFX iU aillir aux faillir 75 > SFX iU aillir aut faillir 69 8056c8117 < SFX iU aillir aillent faillir 35 --- > SFX iU aillir aillent faillir 34 8062c8123 < SFX iU aillir aillis faillir 79 --- > SFX iU aillir aillis faillir 77 8078,8079c8139,8140 < SFX iU aillir aille faillir 76 < SFX iU aillir ailles faillir 75 --- > SFX iU aillir aille faillir 73 > SFX iU aillir ailles faillir 72 8090,8092c8151,8153 < SFX iV ésir is gésir 77 < SFX iV ésir ît gésir 68 < SFX iV ésir it gésir 68 --- > SFX iV ésir is gésir 75 > SFX iV ésir ît gésir 69 > SFX iV ésir it gésir 69 8095c8156 < SFX iV ésir isent gésir 164 --- > SFX iV ésir isent gésir 183 8098,8099c8159,8160 < SFX iV ésir isions gésir 166 < SFX iV ésir isiez gésir 165 --- > SFX iV ésir isions gésir 185 > SFX iV ésir isiez gésir 184 8105,8110c8166,8171 < SFX iW uïr uï/6 ouïr 74 < SFX iW uïr uïs/9 ouïr 73 < SFX iW uïr uïe/6 ouïr 65 < SFX iW uïr uïes/9 ouïr 66 < SFX iW uïr is/19 ouïr 77 < SFX iW uïr it/23 ouïr 68 --- > SFX iW uïr uï/6 ouïr 71 > SFX iW uïr uïs/9 ouïr 70 > SFX iW uïr uïe/6 ouïr 67 > SFX iW uïr uïes/9 ouïr 68 > SFX iW uïr is/19 ouïr 75 > SFX iW uïr it/24 ouïr 69 8113c8174 < SFX iW uïr ient/8 ouïr 35 --- > SFX iW uïr ient/8 ouïr 34 8115c8176 < SFX iW uïr yait/23 ouïr 43 --- > SFX iW uïr yait/24 ouïr 43 8119,8120c8180,8181 < SFX iW uïr uïs/19 ouïr 79 < SFX iW uïr uït/23 ouïr 55 --- > SFX iW uïr uïs/19 ouïr 77 > SFX iW uïr uït/24 ouïr 55 8126,8129c8187,8190 < SFX iW uïr uïras/23 ouïr 31 < SFX iW uïr rras/23 ouïr 31 < SFX iW uïr uïra/23 ouïr 22 < SFX iW uïr rra/23 ouïr 22 --- > SFX iW uïr uïras/24 ouïr 31 > SFX iW uïr rras/24 ouïr 31 > SFX iW uïr uïra/24 ouïr 22 > SFX iW uïr rra/24 ouïr 22 8138,8139c8199,8200 < SFX iW uïr uïrait/23 ouïr 23 < SFX iW uïr rrait/23 ouïr 23 --- > SFX iW uïr uïrait/24 ouïr 23 > SFX iW uïr rrait/24 ouïr 23 8146,8147c8207,8208 < SFX iW uïr ie/33 ouïr 76 < SFX iW uïr ies/41 ouïr 75 --- > SFX iW uïr ie/33 ouïr 73 > SFX iW uïr ies/41 ouïr 72 8149,8150c8210,8211 < SFX iW uïr uïsses/23 ouïr 58 < SFX iW uïr uït/23 ouïr 45 --- > SFX iW uïr uïsses/24 ouïr 58 > SFX iW uïr uït/24 ouïr 45 8160,8163c8221,8224 < SFX iX érir éru férir 74 < SFX iX érir érus férir 73 < SFX iX érir érue férir 65 < SFX iX érir érues férir 66 --- > SFX iX érir éru férir 71 > SFX iX érir érus férir 70 > SFX iX érir érue férir 67 > SFX iX érir érues férir 68 8167,8170c8228,8231 < SFX iY ssir ssu/6 issir 74 < SFX iY ssir ssus/9 issir 73 < SFX iY ssir ssue/6 issir 65 < SFX iY ssir ssues/9 issir 66 --- > SFX iY ssir ssu/6 issir 71 > SFX iY ssir ssus/9 issir 70 > SFX iY ssir ssue/6 issir 67 > SFX iY ssir ssues/9 issir 68 8175,8178c8236,8239 < SFX pA ouvoir u pouvoir 100 < SFX pA ouvoir eux pouvoir 77 < SFX pA ouvoir uis pouvoir 203 < SFX pA ouvoir eut pouvoir 68 --- > SFX pA ouvoir u pouvoir 102 > SFX pA ouvoir eux pouvoir 75 > SFX pA ouvoir uis pouvoir 217 > SFX pA ouvoir eut pouvoir 69 8181c8242 < SFX pA ouvoir euvent pouvoir 140 --- > SFX pA ouvoir euvent pouvoir 159 8184,8185c8245,8246 < SFX pA ouvoir ouvions pouvoir 166 < SFX pA ouvoir ouviez pouvoir 165 --- > SFX pA ouvoir ouvions pouvoir 185 > SFX pA ouvoir ouviez pouvoir 184 8187c8248 < SFX pA ouvoir us pouvoir 79 --- > SFX pA ouvoir us pouvoir 77 8203,8209c8264,8270 < SFX pA ouvoir uisse pouvoir 76 < SFX pA ouvoir uissé pouvoir 198 < SFX pA ouvoir uissè pouvoir 198 < SFX pA ouvoir uisses pouvoir 75 < SFX pA ouvoir uissions pouvoir 152 < SFX pA ouvoir uissiez pouvoir 151 < SFX pA ouvoir uissent pouvoir 133 --- > SFX pA ouvoir uisse pouvoir 73 > SFX pA ouvoir uissé pouvoir 212 > SFX pA ouvoir uissè pouvoir 212 > SFX pA ouvoir uisses pouvoir 72 > SFX pA ouvoir uissions pouvoir 171 > SFX pA ouvoir uissiez pouvoir 170 > SFX pA ouvoir uissent pouvoir 149 8211,8212c8272,8273 < SFX pA ouvoir ussé pouvoir 153 < SFX pA ouvoir ussè pouvoir 153 --- > SFX pA ouvoir ussé pouvoir 172 > SFX pA ouvoir ussè pouvoir 172 8222,8227c8283,8288 < SFX pB ouloir oulu vouloir 74 < SFX pB ouloir oulus vouloir 73 < SFX pB ouloir oulue vouloir 65 < SFX pB ouloir oulues vouloir 66 < SFX pB ouloir eux vouloir 77 < SFX pB ouloir eut vouloir 68 --- > SFX pB ouloir oulu vouloir 71 > SFX pB ouloir oulus vouloir 70 > SFX pB ouloir oulue vouloir 67 > SFX pB ouloir oulues vouloir 68 > SFX pB ouloir eux vouloir 75 > SFX pB ouloir eut vouloir 69 8230c8291 < SFX pB ouloir eulent vouloir 140 --- > SFX pB ouloir eulent vouloir 159 8236c8297 < SFX pB ouloir oulus vouloir 79 --- > SFX pB ouloir oulus vouloir 77 8252,8256c8313,8317 < SFX pB ouloir euille vouloir 76 < SFX pB ouloir euillé vouloir 198 < SFX pB ouloir euillè vouloir 198 < SFX pB ouloir euilles vouloir 75 < SFX pB ouloir euillent vouloir 133 --- > SFX pB ouloir euille vouloir 73 > SFX pB ouloir euillé vouloir 212 > SFX pB ouloir euillè vouloir 212 > SFX pB ouloir euilles vouloir 72 > SFX pB ouloir euillent vouloir 149 8263d8323 < SFX pB ouloir eux vouloir 30 8265c8325 < SFX pB ouloir oulons vouloir 47 --- > SFX pB ouloir eux vouloir 30 8267c8327 < SFX pB ouloir oulez vouloir 62 --- > SFX pB ouloir oulons vouloir 47 8268a8329 > SFX pB ouloir oulez vouloir 62 8273,8279c8334,8340 < SFX pC evoir û redevoir 242 < SFX pC evoir u redevoir 242 < SFX pC evoir us devoir 73 < SFX pC evoir ue devoir 65 < SFX pC evoir ues devoir 66 < SFX pC evoir ois devoir 77 < SFX pC evoir oit devoir 68 --- > SFX pC evoir û redevoir 264 > SFX pC evoir u redevoir 264 > SFX pC evoir us devoir 70 > SFX pC evoir ue devoir 67 > SFX pC evoir ues devoir 68 > SFX pC evoir ois devoir 75 > SFX pC evoir oit devoir 69 8282c8343 < SFX pC evoir oivent devoir 35 --- > SFX pC evoir oivent devoir 34 8288c8349 < SFX pC evoir us devoir 79 --- > SFX pC evoir us devoir 77 8304,8305c8365,8366 < SFX pC evoir oive devoir 76 < SFX pC evoir oives devoir 75 --- > SFX pC evoir oive devoir 73 > SFX pC evoir oives devoir 72 8307,8308c8368,8369 < SFX pC evoir ussé devoir 153 < SFX pC evoir ussè devoir 153 --- > SFX pC evoir ussé devoir 172 > SFX pC evoir ussè devoir 172 8319c8380 < SFX pD evoir û devoir 74 --- > SFX pD evoir û devoir 71 8324,8329c8385,8390 < SFX pE avoir u savoir 74 < SFX pE avoir us savoir 73 < SFX pE avoir ue savoir 65 < SFX pE avoir ues savoir 66 < SFX pE avoir ais savoir 77 < SFX pE avoir ait savoir 68 --- > SFX pE avoir u savoir 71 > SFX pE avoir us savoir 70 > SFX pE avoir ue savoir 67 > SFX pE avoir ues savoir 68 > SFX pE avoir ais savoir 75 > SFX pE avoir ait savoir 69 8332c8393 < SFX pE avoir avent savoir 140 --- > SFX pE avoir avent savoir 159 8335,8336c8396,8397 < SFX pE avoir avions savoir 166 < SFX pE avoir aviez savoir 165 --- > SFX pE avoir avions savoir 185 > SFX pE avoir aviez savoir 184 8338c8399 < SFX pE avoir us savoir 79 --- > SFX pE avoir us savoir 77 8354,8358c8415,8419 < SFX pE avoir ache savoir 76 < SFX pE avoir aches savoir 75 < SFX pE avoir achions savoir 152 < SFX pE avoir achiez savoir 151 < SFX pE avoir achent savoir 133 --- > SFX pE avoir ache savoir 73 > SFX pE avoir aches savoir 72 > SFX pE avoir achions savoir 171 > SFX pE avoir achiez savoir 170 > SFX pE avoir achent savoir 149 8372,8377c8433,8438 < SFX pF oir u/6 voir 74 < SFX pF oir us/9 voir 73 < SFX pF oir ue/6 voir 65 < SFX pF oir ues/9 voir 66 < SFX pF oir ois/19 voir 77 < SFX pF oir oit/8 voir 68 --- > SFX pF oir u/6 voir 71 > SFX pF oir us/9 voir 70 > SFX pF oir ue/6 voir 67 > SFX pF oir ues/9 voir 68 > SFX pF oir ois/19 voir 75 > SFX pF oir oit/8 voir 69 8380c8441 < SFX pF oir oient/8 voir 35 --- > SFX pF oir oient/8 voir 34 8386c8447 < SFX pF oir is/19 voir 79 --- > SFX pF oir is/19 voir 77 8393c8454 < SFX pF oir erras/23 [^é]voir 31 --- > SFX pF oir erras/24 [^é]voir 31 8413,8414c8474,8475 < SFX pF oir oie/33 voir 76 < SFX pF oir oies/41 voir 75 --- > SFX pF oir oie/33 voir 73 > SFX pF oir oies/41 voir 72 8416c8477 < SFX pF oir isses/23 voir 58 --- > SFX pF oir isses/24 voir 58 8441,8446c8502,8507 < SFX pH ouvoir u/6 .mouvoir 74 < SFX pH ouvoir us/9 mouvoir 73 < SFX pH ouvoir ue/6 mouvoir 65 < SFX pH ouvoir ues/9 mouvoir 66 < SFX pH ouvoir eus/19 mouvoir 77 < SFX pH ouvoir eut/8 mouvoir 68 --- > SFX pH ouvoir u/6 .mouvoir 71 > SFX pH ouvoir us/9 mouvoir 70 > SFX pH ouvoir ue/6 mouvoir 67 > SFX pH ouvoir ues/9 mouvoir 68 > SFX pH ouvoir eus/19 mouvoir 75 > SFX pH ouvoir eut/8 mouvoir 69 8449c8510 < SFX pH ouvoir euvent/8 mouvoir 35 --- > SFX pH ouvoir euvent/8 mouvoir 34 8455c8516 < SFX pH ouvoir us/19 mouvoir 79 --- > SFX pH ouvoir us/19 mouvoir 77 8461c8522 < SFX pH ouvoir ouvras/23 mouvoir 31 --- > SFX pH ouvoir ouvras/24 mouvoir 31 8471,8472c8532,8533 < SFX pH ouvoir euve/33 mouvoir 76 < SFX pH ouvoir euves/41 mouvoir 75 --- > SFX pH ouvoir euve/33 mouvoir 73 > SFX pH ouvoir euves/41 mouvoir 72 8474c8535 < SFX pH ouvoir usses/23 mouvoir 58 --- > SFX pH ouvoir usses/24 mouvoir 58 8484,8485c8545,8546 < SFX pI ouvoir û/64 mouvoir 74 < SFX pI ouvoir u/64 mouvoir 74 --- > SFX pI ouvoir û/64 mouvoir 71 > SFX pI ouvoir u/64 mouvoir 71 8490,8495c8551,8556 < SFX pJ ourvoir ourvu pourvoir 74 < SFX pJ ourvoir ourvus pourvoir 73 < SFX pJ ourvoir ourvue pourvoir 65 < SFX pJ ourvoir ourvues pourvoir 66 < SFX pJ ourvoir ourvois pourvoir 77 < SFX pJ ourvoir ourvoit pourvoir 68 --- > SFX pJ ourvoir ourvu pourvoir 71 > SFX pJ ourvoir ourvus pourvoir 70 > SFX pJ ourvoir ourvue pourvoir 67 > SFX pJ ourvoir ourvues pourvoir 68 > SFX pJ ourvoir ourvois pourvoir 75 > SFX pJ ourvoir ourvoit pourvoir 69 8498c8559 < SFX pJ ourvoir ourvoient pourvoir 35 --- > SFX pJ ourvoir ourvoient pourvoir 34 8504c8565 < SFX pJ ourvoir ourvus pourvoir 79 --- > SFX pJ ourvoir ourvus pourvoir 77 8520,8521c8581,8582 < SFX pJ ourvoir ourvoie pourvoir 76 < SFX pJ ourvoir ourvoies pourvoir 75 --- > SFX pJ ourvoir ourvoie pourvoir 73 > SFX pJ ourvoir ourvoies pourvoir 72 8535,8540c8596,8601 < SFX pK cevoir çu/6 cevoir 74 < SFX pK cevoir çus/9 cevoir 73 < SFX pK cevoir çue/6 cevoir 65 < SFX pK cevoir çues/9 cevoir 66 < SFX pK cevoir çois/19 cevoir 77 < SFX pK cevoir çoit/8 cevoir 68 --- > SFX pK cevoir çu/6 cevoir 71 > SFX pK cevoir çus/9 cevoir 70 > SFX pK cevoir çue/6 cevoir 67 > SFX pK cevoir çues/9 cevoir 68 > SFX pK cevoir çois/19 cevoir 75 > SFX pK cevoir çoit/8 cevoir 69 8543c8604 < SFX pK cevoir çoivent/8 cevoir 35 --- > SFX pK cevoir çoivent/8 cevoir 34 8549c8610 < SFX pK cevoir çus/19 cevoir 79 --- > SFX pK cevoir çus/19 cevoir 77 8555c8616 < SFX pK cevoir cevras/23 cevoir 31 --- > SFX pK cevoir cevras/24 cevoir 31 8565,8566c8626,8627 < SFX pK cevoir çoive/33 cevoir 76 < SFX pK cevoir çoives/41 cevoir 75 --- > SFX pK cevoir çoive/33 cevoir 73 > SFX pK cevoir çoives/41 cevoir 72 8568c8629 < SFX pK cevoir çusses/23 cevoir 58 --- > SFX pK cevoir çusses/24 cevoir 58 8580,8582c8641,8643 < SFX pM aloir alu valoir 100 < SFX pM aloir aux valoir 77 < SFX pM aloir aut valoir 68 --- > SFX pM aloir alu valoir 102 > SFX pM aloir aux valoir 75 > SFX pM aloir aut valoir 69 8585c8646 < SFX pM aloir alent valoir 140 --- > SFX pM aloir alent valoir 159 8591c8652 < SFX pM aloir alus valoir 79 --- > SFX pM aloir alus valoir 77 8607,8609c8668,8670 < SFX pM aloir aille valoir 76 < SFX pM aloir ailles valoir 75 < SFX pM aloir aillent valoir 133 --- > SFX pM aloir aille valoir 73 > SFX pM aloir ailles valoir 72 > SFX pM aloir aillent valoir 149 8623,8624c8684,8685 < SFX pN valoir vaux/31 valoir 77 < SFX pN valoir vaut/79 valoir 68 --- > SFX pN valoir vaux/31 valoir 75 > SFX pN valoir vaut/79 valoir 69 8626,8628c8687,8689 < SFX pN valoir valez/25 valoir 60 < SFX pN valoir valent/79 quivaloir 164 < SFX pN valoir valent révaloir 35 --- > SFX pN valoir valez/26 valoir 60 > SFX pN valoir valent/79 quivaloir 183 > SFX pN valoir valent révaloir 34 8632c8693 < SFX pN valoir valiez/25 valoir 63 --- > SFX pN valoir valiez/26 valoir 63 8634c8695 < SFX pN valoir valus/31 valoir 79 --- > SFX pN valoir valus/31 valoir 77 8637c8698 < SFX pN valoir valûtes/25 valoir 48 --- > SFX pN valoir valûtes/26 valoir 48 8643c8704 < SFX pN valoir vaudrez/25 valoir 26 --- > SFX pN valoir vaudrez/26 valoir 26 8648c8709 < SFX pN valoir vaudriez/25 valoir 28 --- > SFX pN valoir vaudriez/26 valoir 28 8650,8654c8711,8715 < SFX pN valoir vaille/228 quivaloir 76 < SFX pN valoir vale révaloir 76 < SFX pN valoir vailles/34 quivaloir 75 < SFX pN valoir vales révaloir 75 < SFX pN valoir vaillent/79 quivaloir 133 --- > SFX pN valoir vaille/228 quivaloir 73 > SFX pN valoir vale révaloir 73 > SFX pN valoir vailles/34 quivaloir 72 > SFX pN valoir vales révaloir 72 > SFX pN valoir vaillent/79 quivaloir 149 8659c8720 < SFX pN valoir valussiez/25 valoir 56 --- > SFX pN valoir valussiez/26 valoir 56 8668,8671c8729,8732 < SFX pO valoir valu revaloir 74 < SFX pO valoir valus revaloir 73 < SFX pO valoir value revaloir 65 < SFX pO valoir values revaloir 66 --- > SFX pO valoir valu revaloir 71 > SFX pO valoir valus revaloir 70 > SFX pO valoir value revaloir 67 > SFX pO valoir values revaloir 68 8690c8751 < SFX pQ haloir haut chaloir 68 --- > SFX pQ haloir haut chaloir 69 8694c8755 < SFX pR pparoir ppert/20 apparoir 68 --- > SFX pR pparoir ppert/20 apparoir 69 8702,8709c8763,8770 < SFX pS sseoir ssis/6 seoir 116 < SFX pS sseoir ssise/6 seoir 65 < SFX pS sseoir ssises/9 seoir 66 < SFX pS ssoir ssis/6 soir 116 < SFX pS ssoir ssise/6 soir 65 < SFX pS ssoir ssises/9 soir 66 < SFX pS sseoir ssieds/19 seoir 77 < SFX pS sseoir ssied/8 seoir 68 --- > SFX pS sseoir ssis/6 seoir 121 > SFX pS sseoir ssise/6 seoir 67 > SFX pS sseoir ssises/9 seoir 68 > SFX pS ssoir ssis/6 soir 121 > SFX pS ssoir ssise/6 soir 67 > SFX pS ssoir ssises/9 soir 68 > SFX pS sseoir ssieds/19 seoir 75 > SFX pS sseoir ssied/8 seoir 69 8712,8714c8773,8775 < SFX pS sseoir sseyent/8 seoir 35 < SFX pS sseoir ssois/19 seoir 77 < SFX pS sseoir ssoit/8 seoir 68 --- > SFX pS sseoir sseyent/8 seoir 34 > SFX pS sseoir ssois/19 seoir 75 > SFX pS sseoir ssoit/8 seoir 69 8717,8719c8778,8780 < SFX pS sseoir ssoient/8 seoir 35 < SFX pS ssoir ssieds/19 soir 77 < SFX pS ssoir ssied/8 soir 68 --- > SFX pS sseoir ssoient/8 seoir 34 > SFX pS ssoir ssieds/19 soir 75 > SFX pS ssoir ssied/8 soir 69 8722,8724c8783,8785 < SFX pS ssoir sseyent/8 soir 35 < SFX pS ssoir ssois/19 soir 77 < SFX pS ssoir ssoit/8 soir 68 --- > SFX pS ssoir sseyent/8 soir 34 > SFX pS ssoir ssois/19 soir 75 > SFX pS ssoir ssoit/8 soir 69 8727c8788 < SFX pS ssoir ssoient/8 soir 35 --- > SFX pS ssoir ssoient/8 soir 34 8748c8809 < SFX pS sseoir ssis/19 seoir 79 --- > SFX pS sseoir ssis/19 seoir 77 8753c8814 < SFX pS ssoir ssis/19 soir 79 --- > SFX pS ssoir ssis/19 soir 77 8759c8820 < SFX pS sseoir ssiéras/23 seoir 31 --- > SFX pS sseoir ssiéras/24 seoir 31 8763c8824 < SFX pS sseoir ssiéront/8 seoir 227 --- > SFX pS sseoir ssiéront/8 seoir 243 8765c8826 < SFX pS sseoir ssoiras/23 seoir 31 --- > SFX pS sseoir ssoiras/24 seoir 31 8771c8832 < SFX pS ssoir ssiéras/23 soir 31 --- > SFX pS ssoir ssiéras/24 soir 31 8777c8838 < SFX pS ssoir ssoiras/23 soir 31 --- > SFX pS ssoir ssoiras/24 soir 31 8781c8842 < SFX pS ssoir ssoiront/8 soir 227 --- > SFX pS ssoir ssoiront/8 soir 243 8802,8809c8863,8870 < SFX pS sseoir sseye/33 seoir 76 < SFX pS sseoir sseyes/41 seoir 75 < SFX pS sseoir ssoie/33 seoir 76 < SFX pS sseoir ssoies/41 seoir 75 < SFX pS ssoir sseye/33 soir 76 < SFX pS ssoir sseyes/41 soir 75 < SFX pS ssoir ssoie/33 soir 76 < SFX pS ssoir ssoies/41 soir 75 --- > SFX pS sseoir sseye/33 seoir 73 > SFX pS sseoir sseyes/41 seoir 72 > SFX pS sseoir ssoie/33 seoir 73 > SFX pS sseoir ssoies/41 seoir 72 > SFX pS ssoir sseye/33 soir 73 > SFX pS ssoir sseyes/41 soir 72 > SFX pS ssoir ssoie/33 soir 73 > SFX pS ssoir ssoies/41 soir 72 8811c8872 < SFX pS sseoir ssisses/23 seoir 58 --- > SFX pS sseoir ssisses/24 seoir 58 8817c8878 < SFX pS ssoir ssisses/23 soir 58 --- > SFX pS ssoir ssisses/24 soir 58 8839,8846c8900,8907 < SFX pT urseoir ursis seoir 116 < SFX pT urseoir ursise seoir 65 < SFX pT urseoir ursises seoir 66 < SFX pT ursoir ursis soir 116 < SFX pT ursoir ursise soir 65 < SFX pT ursoir ursises soir 66 < SFX pT urseoir ursois seoir 77 < SFX pT urseoir ursoit seoir 68 --- > SFX pT urseoir ursis seoir 121 > SFX pT urseoir ursise seoir 67 > SFX pT urseoir ursises seoir 68 > SFX pT ursoir ursis soir 121 > SFX pT ursoir ursise soir 67 > SFX pT ursoir ursises soir 68 > SFX pT urseoir ursois seoir 75 > SFX pT urseoir ursoit seoir 69 8849,8851c8910,8912 < SFX pT urseoir ursoient seoir 35 < SFX pT ursoir ursois soir 77 < SFX pT ursoir ursoit soir 68 --- > SFX pT urseoir ursoient seoir 34 > SFX pT ursoir ursois soir 75 > SFX pT ursoir ursoit soir 69 8854c8915 < SFX pT ursoir ursoient soir 35 --- > SFX pT ursoir ursoient soir 34 8865c8926 < SFX pT urseoir ursis seoir 79 --- > SFX pT urseoir ursis seoir 77 8870c8931 < SFX pT ursoir ursis soir 79 --- > SFX pT ursoir ursis soir 77 8874c8935 < SFX pT ursoir ursirent soir 415 --- > SFX pT ursoir ursirent soir 450 8880c8941 < SFX pT urseoir urseoiront seoir 227 --- > SFX pT urseoir urseoiront seoir 243 8897,8900c8958,8961 < SFX pT urseoir ursoie seoir 76 < SFX pT urseoir ursoies seoir 75 < SFX pT ursoir ursoie soir 76 < SFX pT ursoir ursoies soir 75 --- > SFX pT urseoir ursoie seoir 73 > SFX pT urseoir ursoies seoir 72 > SFX pT ursoir ursoie soir 73 > SFX pT ursoir ursoies soir 72 8923,8925c8984,8986 < SFX pU eoir is seoir 116 < SFX pU eoir ise seoir 65 < SFX pU eoir ises seoir 66 --- > SFX pU eoir is seoir 121 > SFX pU eoir ise seoir 67 > SFX pU eoir ises seoir 68 8931,8933c8992,8994 < SFX pV eoir is seoir 100 < SFX pV eoir ied seoir 68 < SFX pV eoir iéent seoir 164 --- > SFX pV eoir is seoir 102 > SFX pV eoir ied seoir 69 > SFX pV eoir iéent seoir 183 8940,8941c9001,9002 < SFX pV eoir iée seoir 105 < SFX pV eoir iéent seoir 133 --- > SFX pV eoir iée seoir 109 > SFX pV eoir iéent seoir 149 8947,8950c9008,9011 < SFX pW sseoir ssied seoir 68 < SFX pW sseoir ssiéent seoir 164 < SFX pW ssoir ssied soir 68 < SFX pW ssoir ssiéent soir 164 --- > SFX pW sseoir ssied seoir 69 > SFX pW sseoir ssiéent seoir 183 > SFX pW ssoir ssied soir 69 > SFX pW ssoir ssiéent soir 183 8963,8966c9024,9027 < SFX pW sseoir ssiée seoir 105 < SFX pW sseoir ssiéent seoir 133 < SFX pW ssoir ssiée soir 105 < SFX pW ssoir ssiéent soir 133 --- > SFX pW sseoir ssiée seoir 109 > SFX pW sseoir ssiéent seoir 149 > SFX pW ssoir ssiée soir 109 > SFX pW ssoir ssiéent soir 149 8970,8975c9031,9036 < SFX pX hoir hu choir 74 < SFX pX hoir hus choir 73 < SFX pX hoir hue choir 65 < SFX pX hoir hues choir 66 < SFX pX hoir hois choir 77 < SFX pX hoir hoit choir 68 --- > SFX pX hoir hu choir 71 > SFX pX hoir hus choir 70 > SFX pX hoir hue choir 67 > SFX pX hoir hues choir 68 > SFX pX hoir hois choir 75 > SFX pX hoir hoit choir 69 8978c9039 < SFX pX hoir hoient choir 35 --- > SFX pX hoir hoient choir 34 8984c9045 < SFX pX hoir hus choir 79 --- > SFX pX hoir hus choir 77 9011,9012c9072,9073 < SFX pX hoir hoie choir 76 < SFX pX hoir hoies choir 75 --- > SFX pX hoir hoie choir 73 > SFX pX hoir hoies choir 72 9026,9033c9087,9094 < SFX pY choir chu/6 échoir 74 < SFX pY choir chus/9 échoir 73 < SFX pY choir chue/6 échoir 65 < SFX pY choir chues/9 échoir 66 < SFX pY choir choit/20 échoir 68 < SFX pY choir chet/20 échoir 68 < SFX pY choir choient/20 échoir 164 < SFX pY choir chéent/20 échoir 164 --- > SFX pY choir chu/6 échoir 71 > SFX pY choir chus/9 échoir 70 > SFX pY choir chue/6 échoir 67 > SFX pY choir chues/9 échoir 68 > SFX pY choir choit/20 échoir 69 > SFX pY choir chet/20 échoir 69 > SFX pY choir choient/20 échoir 183 > SFX pY choir chéent/20 échoir 183 9046,9047c9107,9108 < SFX pY choir choie/20 échoir 105 < SFX pY choir choient/20 échoir 133 --- > SFX pY choir choie/20 échoir 109 > SFX pY choir choient/20 échoir 149 9054,9056c9115,9117 < SFX pZ euvoir u pleuvoir 100 < SFX pZ euvoir eut pleuvoir 68 < SFX pZ euvoir euvent pleuvoir 35 --- > SFX pZ euvoir u pleuvoir 102 > SFX pZ euvoir eut pleuvoir 69 > SFX pZ euvoir euvent pleuvoir 34 9065c9126 < SFX pZ euvoir euve pleuvoir 105 --- > SFX pZ euvoir euve pleuvoir 109 9067c9128 < SFX pZ euvoir ussent pleuvoir 212 --- > SFX pZ euvoir ussent pleuvoir 227 9074,9075c9135,9136 < SFX qA alloir allu falloir 100 < SFX qA alloir aut falloir 68 --- > SFX qA alloir allu falloir 102 > SFX qA alloir aut falloir 69 9080c9141 < SFX qA alloir aille falloir 105 --- > SFX qA alloir aille falloir 109 9086,9090c9147,9151 < SFX rA lore los/6 clore 116 < SFX rA lore lose/6 clore 65 < SFX rA lore loses/9 clore 66 < SFX rA lore los/19 clore 77 < SFX rA lore lot/8 .clore 68 --- > SFX rA lore los/6 clore 121 > SFX rA lore lose/6 clore 67 > SFX rA lore loses/9 clore 68 > SFX rA lore los/19 clore 75 > SFX rA lore lot/8 .clore 69 9093c9154 < SFX rA lore losent/8 clore 35 --- > SFX rA lore losent/8 clore 34 9095c9156 < SFX rA lore loras/23 clore 31 --- > SFX rA lore loras/24 clore 31 9105,9108c9166,9169 < SFX rA lore lose/33 clore 76 < SFX rA lore loses/41 clore 75 < SFX rA lore losions/136 clore 152 < SFX rA lore losiez/35 clore 151 --- > SFX rA lore lose/33 clore 73 > SFX rA lore loses/41 clore 72 > SFX rA lore losions/136 clore 171 > SFX rA lore losiez/35 clore 170 9114c9175 < SFX rB lore lôt clore 68 --- > SFX rB lore lôt clore 69 9119,9123c9180,9184 < SFX rC clore clos/6 clore 116 < SFX rC clore close/6 clore 65 < SFX rC clore closes/9 clore 66 < SFX rC clore clos/30 clore 77 < SFX rC clore clot/20 clore 68 --- > SFX rC clore clos/6 clore 121 > SFX rC clore close/6 clore 67 > SFX rC clore closes/9 clore 68 > SFX rC clore clos/30 clore 75 > SFX rC clore clot/20 clore 69 9126c9187 < SFX rC clore closent/20 clore 35 --- > SFX rC clore closent/20 clore 34 9138,9141c9199,9202 < SFX rC clore close/59 clore 76 < SFX rC clore closes/15 clore 75 < SFX rC clore closions/15 clore 152 < SFX rC clore closiez/15 clore 151 --- > SFX rC clore close/60 clore 73 > SFX rC clore closes/15 clore 72 > SFX rC clore closions/15 clore 171 > SFX rC clore closiez/15 clore 170 9148,9150c9209,9211 < SFX rD clore clos clore 116 < SFX rD clore close clore 65 < SFX rD clore closes clore 66 --- > SFX rD clore clos clore 121 > SFX rD clore close clore 67 > SFX rD clore closes clore 68 9155,9161c9216,9222 < SFX tA re u/6 [dp]re 74 < SFX tA re us/9 [dp]re 73 < SFX tA re ue/6 [dp]re 65 < SFX tA re ues/9 [dp]re 66 < SFX tA re s/19 [dp]re 77 < SFX tA dre d/8 dre 68 < SFX tA pre pt/8 pre 68 --- > SFX tA re u/6 [dp]re 71 > SFX tA re us/9 [dp]re 70 > SFX tA re ue/6 [dp]re 67 > SFX tA re ues/9 [dp]re 68 > SFX tA re s/19 [dp]re 75 > SFX tA dre d/8 dre 69 > SFX tA pre pt/8 pre 69 9164c9225 < SFX tA re ent/8 [dp]re 35 --- > SFX tA re ent/8 [dp]re 34 9170c9231 < SFX tA re is/19 [dp]re 79 --- > SFX tA re is/19 [dp]re 77 9176c9237 < SFX tA re ras/23 [dp]re 31 --- > SFX tA re ras/24 [dp]re 31 9186,9187c9247,9248 < SFX tA re e/33 [dp]re 76 < SFX tA re es/41 [dp]re 75 --- > SFX tA re e/33 [dp]re 73 > SFX tA re es/41 [dp]re 72 9189c9250 < SFX tA re isses/23 [dp]re 58 --- > SFX tA re isses/24 [dp]re 58 9201,9206c9262,9267 < SFX tD perdre perdu perdre 74 < SFX tD perdre perdus perdre 73 < SFX tD perdre perdue perdre 65 < SFX tD perdre perdues perdre 66 < SFX tD perdre perds/39 perdre 77 < SFX tD perdre perd/14 perdre 68 --- > SFX tD perdre perdu perdre 71 > SFX tD perdre perdus perdre 70 > SFX tD perdre perdue perdre 67 > SFX tD perdre perdues perdre 68 > SFX tD perdre perds/40 perdre 75 > SFX tD perdre perd/14 perdre 69 9209,9210c9270,9271 < SFX tD perdre perdent/14 perdre 35 < SFX tD perdre perdais/39 perdre 51 --- > SFX tD perdre perdent/14 perdre 34 > SFX tD perdre perdais/40 perdre 51 9215c9276 < SFX tD perdre perdis/39 perdre 79 --- > SFX tD perdre perdis/40 perdre 77 9221c9282 < SFX tD perdre perdras/24 perdre 31 --- > SFX tD perdre perdras/25 perdre 31 9226c9287 < SFX tD perdre perdrais/39 perdre 33 --- > SFX tD perdre perdrais/40 perdre 33 9231,9232c9292,9293 < SFX tD perdre perde/51 perdre 76 < SFX tD perdre perdes/24 perdre 75 --- > SFX tD perdre perde/51 perdre 73 > SFX tD perdre perdes/25 perdre 72 9234c9295 < SFX tD perdre perdisses/24 perdre 58 --- > SFX tD perdre perdisses/25 perdre 58 9239c9300 < SFX tD perdre perds/24 perdre 30 --- > SFX tD perdre perds/25 perdre 30 9246,9247c9307,9308 < SFX tE dre ds dre 77 < SFX tE dre d dre 68 --- > SFX tE dre ds dre 75 > SFX tE dre d dre 69 9250c9311 < SFX tE dre dent dre 35 --- > SFX tE dre dent dre 34 9256c9317 < SFX tE dre dis dre 79 --- > SFX tE dre dis dre 77 9272,9273c9333,9334 < SFX tE dre de dre 76 < SFX tE dre des dre 75 --- > SFX tE dre de dre 73 > SFX tE dre des dre 72 9287,9291c9348,9352 < SFX tF rendre ris/6 prendre 116 < SFX tF rendre rise/6 prendre 65 < SFX tF rendre rises/9 prendre 66 < SFX tF rendre rends/19 prendre 77 < SFX tF rendre rend/8 prendre 68 --- > SFX tF rendre ris/6 prendre 121 > SFX tF rendre rise/6 prendre 67 > SFX tF rendre rises/9 prendre 68 > SFX tF rendre rends/19 prendre 75 > SFX tF rendre rend/8 prendre 69 9294c9355 < SFX tF rendre rennent/8 prendre 35 --- > SFX tF rendre rennent/8 prendre 34 9300c9361 < SFX tF rendre ris/19 prendre 79 --- > SFX tF rendre ris/19 prendre 77 9306c9367 < SFX tF rendre rendras/23 prendre 31 --- > SFX tF rendre rendras/24 prendre 31 9316,9317c9377,9378 < SFX tF rendre renne/33 prendre 76 < SFX tF rendre rennes/41 prendre 75 --- > SFX tF rendre renne/33 prendre 73 > SFX tF rendre rennes/41 prendre 72 9319c9380 < SFX tF rendre risses/23 prendre 58 --- > SFX tF rendre risses/24 prendre 58 9331,9335c9392,9396 < SFX tG prendre pris/6 prendre 116 < SFX tG prendre prise/6 prendre 65 < SFX tG prendre prises/9 prendre 66 < SFX tG prendre prends/39 prendre 77 < SFX tG prendre prend/14 prendre 68 --- > SFX tG prendre pris/6 prendre 121 > SFX tG prendre prise/6 prendre 67 > SFX tG prendre prises/9 prendre 68 > SFX tG prendre prends/40 prendre 75 > SFX tG prendre prend/14 prendre 69 9338,9339c9399,9400 < SFX tG prendre prennent/14 prendre 35 < SFX tG prendre prenais/39 prendre 51 --- > SFX tG prendre prennent/14 prendre 34 > SFX tG prendre prenais/40 prendre 51 9344c9405 < SFX tG prendre pris/39 prendre 79 --- > SFX tG prendre pris/40 prendre 77 9350c9411 < SFX tG prendre prendras/24 prendre 31 --- > SFX tG prendre prendras/25 prendre 31 9355c9416 < SFX tG prendre prendrais/39 prendre 33 --- > SFX tG prendre prendrais/40 prendre 33 9360,9361c9421,9422 < SFX tG prendre prenne/51 prendre 76 < SFX tG prendre prennes/24 prendre 75 --- > SFX tG prendre prenne/51 prendre 73 > SFX tG prendre prennes/25 prendre 72 9363c9424 < SFX tG prendre prisses/24 prendre 58 --- > SFX tG prendre prisses/25 prendre 58 9368c9429 < SFX tG prendre prends/24 prendre 30 --- > SFX tG prendre prends/25 prendre 30 9375,9380c9436,9441 < SFX tM outre outu foutre 74 < SFX tM outre outus foutre 73 < SFX tM outre outue foutre 65 < SFX tM outre outues foutre 66 < SFX tM outre ous foutre 77 < SFX tM outre out foutre 68 --- > SFX tM outre outu foutre 71 > SFX tM outre outus foutre 70 > SFX tM outre outue foutre 67 > SFX tM outre outues foutre 68 > SFX tM outre ous foutre 75 > SFX tM outre out foutre 69 9383c9444 < SFX tM outre outent foutre 35 --- > SFX tM outre outent foutre 34 9400,9401c9461,9462 < SFX tM outre oute foutre 76 < SFX tM outre outes foutre 75 --- > SFX tM outre oute foutre 73 > SFX tM outre outes foutre 72 9408,9411c9469,9472 < SFX tU istre issu tistre 74 < SFX tU istre issue tistre 73 < SFX tU istre issus tistre 65 < SFX tU istre issues tistre 66 --- > SFX tU istre issu tistre 71 > SFX tU istre issus tistre 70 > SFX tU istre issue tistre 67 > SFX tU istre issues tistre 68 9416,9423c9477,9484 < SFX uA tre tu/6 tre 74 < SFX uA tre tus/9 tre 73 < SFX uA tre tue/6 tre 65 < SFX uA tre tues/9 tre 66 < SFX uA ttre ts/19 ttre 77 < SFX uA ttre t/8 ttre 68 < SFX uA tre ts/19 embatre 77 < SFX uA tre t/8 embatre 68 --- > SFX uA tre tu/6 tre 71 > SFX uA tre tus/9 tre 70 > SFX uA tre tue/6 tre 67 > SFX uA tre tues/9 tre 68 > SFX uA ttre ts/19 ttre 75 > SFX uA ttre t/8 ttre 69 > SFX uA tre ts/19 embatre 75 > SFX uA tre t/8 embatre 69 9426c9487 < SFX uA tre tent/8 tre 35 --- > SFX uA tre tent/8 tre 34 9432c9493 < SFX uA tre tis/19 tre 79 --- > SFX uA tre tis/19 tre 77 9438c9499 < SFX uA tre tras/23 tre 31 --- > SFX uA tre tras/24 tre 31 9448,9449c9509,9510 < SFX uA tre te/33 tre 76 < SFX uA tre tes/41 tre 75 --- > SFX uA tre te/33 tre 73 > SFX uA tre tes/41 tre 72 9451c9512 < SFX uA tre tisses/23 tre 58 --- > SFX uA tre tisses/24 tre 58 9464,9469c9525,9530 < SFX uC battre battu battre 74 < SFX uC battre battus battre 73 < SFX uC battre battue battre 65 < SFX uC battre battues battre 66 < SFX uC battre bats/39 battre 77 < SFX uC battre bat/14 battre 68 --- > SFX uC battre battu battre 71 > SFX uC battre battus battre 70 > SFX uC battre battue battre 67 > SFX uC battre battues battre 68 > SFX uC battre bats/40 battre 75 > SFX uC battre bat/14 battre 69 9472,9473c9533,9534 < SFX uC battre battent/14 battre 35 < SFX uC battre battais/39 battre 51 --- > SFX uC battre battent/14 battre 34 > SFX uC battre battais/40 battre 51 9478c9539 < SFX uC battre battis/39 battre 79 --- > SFX uC battre battis/40 battre 77 9484c9545 < SFX uC battre battras/24 battre 31 --- > SFX uC battre battras/25 battre 31 9489c9550 < SFX uC battre battrais/39 battre 33 --- > SFX uC battre battrais/40 battre 33 9494,9495c9555,9556 < SFX uC battre batte/51 battre 76 < SFX uC battre battes/24 battre 75 --- > SFX uC battre batte/51 battre 73 > SFX uC battre battes/25 battre 72 9497c9558 < SFX uC battre battisses/24 battre 58 --- > SFX uC battre battisses/25 battre 58 9502c9563 < SFX uC battre bats/24 battre 30 --- > SFX uC battre bats/25 battre 30 9509,9513c9570,9574 < SFX uD battre battu battre 74 < SFX uD battre battus battre 73 < SFX uD battre battue battre 65 < SFX uD battre battues battre 66 < SFX uD battre bat/14 battre 68 --- > SFX uD battre battu battre 71 > SFX uD battre battus battre 70 > SFX uD battre battue battre 67 > SFX uD battre battues battre 68 > SFX uD battre bat/14 battre 69 9516c9577 < SFX uD battre battent/14 battre 35 --- > SFX uD battre battent/14 battre 34 9533c9594 < SFX uD battre batte/14 battre 105 --- > SFX uD battre batte/14 battre 109 9538,9539c9599,9600 < SFX uD battre battons-nous battre 226 < SFX uD battre battez-vous battre 225 --- > SFX uD battre battons-nous battre 242 > SFX uD battre battez-vous battre 241 9544,9548c9605,9609 < SFX vA ettre is/6 mettre 116 < SFX vA ettre ise/6 mettre 65 < SFX vA ettre ises/9 mettre 66 < SFX vA ettre ets/19 mettre 77 < SFX vA ettre et/8 mettre 68 --- > SFX vA ettre is/6 mettre 121 > SFX vA ettre ise/6 mettre 67 > SFX vA ettre ises/9 mettre 68 > SFX vA ettre ets/19 mettre 75 > SFX vA ettre et/8 mettre 69 9551c9612 < SFX vA ettre ettent/8 mettre 35 --- > SFX vA ettre ettent/8 mettre 34 9557c9618 < SFX vA ettre is/19 mettre 79 --- > SFX vA ettre is/19 mettre 77 9563c9624 < SFX vA ettre ettras/23 mettre 31 --- > SFX vA ettre ettras/24 mettre 31 9573,9574c9634,9635 < SFX vA ettre ette/33 mettre 76 < SFX vA ettre ettes/41 mettre 75 --- > SFX vA ettre ette/33 mettre 73 > SFX vA ettre ettes/41 mettre 72 9576c9637 < SFX vA ettre isses/23 mettre 58 --- > SFX vA ettre isses/24 mettre 58 9588,9592c9649,9653 < SFX vC mettre mis mettre 116 < SFX vC mettre mise mettre 65 < SFX vC mettre mises mettre 66 < SFX vC mettre mets/39 mettre 77 < SFX vC mettre met/14 mettre 68 --- > SFX vC mettre mis mettre 121 > SFX vC mettre mise mettre 67 > SFX vC mettre mises mettre 68 > SFX vC mettre mets/40 mettre 75 > SFX vC mettre met/14 mettre 69 9595,9596c9656,9657 < SFX vC mettre mettent/14 mettre 35 < SFX vC mettre mettais/39 mettre 51 --- > SFX vC mettre mettent/14 mettre 34 > SFX vC mettre mettais/40 mettre 51 9601c9662 < SFX vC mettre mis/39 mettre 79 --- > SFX vC mettre mis/40 mettre 77 9607c9668 < SFX vC mettre mettras/24 mettre 31 --- > SFX vC mettre mettras/25 mettre 31 9612c9673 < SFX vC mettre mettrais/39 mettre 33 --- > SFX vC mettre mettrais/40 mettre 33 9617,9618c9678,9679 < SFX vC mettre mette/51 mettre 76 < SFX vC mettre mettes/24 mettre 75 --- > SFX vC mettre mette/51 mettre 73 > SFX vC mettre mettes/25 mettre 72 9620c9681 < SFX vC mettre misses/24 mettre 58 --- > SFX vC mettre misses/25 mettre 58 9632,9637c9693,9698 < SFX wA eindre eint eindre 74 < SFX wA eindre eints eindre 73 < SFX wA eindre einte eindre 65 < SFX wA eindre eintes eindre 66 < SFX wA eindre eins eindre 77 < SFX wA eindre eint eindre 68 --- > SFX wA eindre eint eindre 71 > SFX wA eindre eints eindre 70 > SFX wA eindre einte eindre 67 > SFX wA eindre eintes eindre 68 > SFX wA eindre eins eindre 75 > SFX wA eindre eint eindre 69 9640c9701 < SFX wA eindre eignent eindre 35 --- > SFX wA eindre eignent eindre 34 9646c9707 < SFX wA eindre eignis eindre 79 --- > SFX wA eindre eignis eindre 77 9662,9663c9723,9724 < SFX wA eindre eigne eindre 76 < SFX wA eindre eignes eindre 75 --- > SFX wA eindre eigne eindre 73 > SFX wA eindre eignes eindre 72 9677,9682c9738,9743 < SFX wB indre int/6 indre 74 < SFX wB indre ints/9 indre 73 < SFX wB indre inte/6 indre 65 < SFX wB indre intes/9 indre 66 < SFX wB indre ins/19 indre 77 < SFX wB indre int/8 indre 68 --- > SFX wB indre int/6 indre 71 > SFX wB indre ints/9 indre 70 > SFX wB indre inte/6 indre 67 > SFX wB indre intes/9 indre 68 > SFX wB indre ins/19 indre 75 > SFX wB indre int/8 indre 69 9685c9746 < SFX wB indre ignent/8 indre 35 --- > SFX wB indre ignent/8 indre 34 9691c9752 < SFX wB indre ignis/19 indre 79 --- > SFX wB indre ignis/19 indre 77 9697c9758 < SFX wB indre indras/23 indre 31 --- > SFX wB indre indras/24 indre 31 9707,9708c9768,9769 < SFX wB indre igne/33 indre 76 < SFX wB indre ignes/41 indre 75 --- > SFX wB indre igne/33 indre 73 > SFX wB indre ignes/41 indre 72 9710c9771 < SFX wB indre ignisses/23 indre 58 --- > SFX wB indre ignisses/24 indre 58 9722,9727c9783,9788 < SFX wD aire ait faire 74 < SFX wD aire aits faire 73 < SFX wD aire aite faire 65 < SFX wD aire aites faire 66 < SFX wD aire ais faire 77 < SFX wD aire ait faire 68 --- > SFX wD aire ait faire 71 > SFX wD aire aits faire 70 > SFX wD aire aite faire 67 > SFX wD aire aites faire 68 > SFX wD aire ais faire 75 > SFX wD aire ait faire 69 9730c9791 < SFX wD aire ont faire 140 --- > SFX wD aire ont faire 159 9733,9734c9794,9795 < SFX wD aire aisions faire 166 < SFX wD aire aisiez faire 165 --- > SFX wD aire aisions faire 185 > SFX wD aire aisiez faire 184 9736c9797 < SFX wD aire is faire 79 --- > SFX wD aire is faire 77 9752,9756c9813,9817 < SFX wD aire asse faire 76 < SFX wD aire asses faire 75 < SFX wD aire assions faire 152 < SFX wD aire assiez faire 151 < SFX wD aire assent faire 133 --- > SFX wD aire asse faire 73 > SFX wD aire asses faire 72 > SFX wD aire assions faire 171 > SFX wD aire assiez faire 170 > SFX wD aire assent faire 149 9770,9775c9831,9836 < SFX wF faire fait faire 74 < SFX wF faire faits faire 73 < SFX wF faire faite faire 65 < SFX wF faire faites faire 66 < SFX wF faire fais faire 77 < SFX wF faire fait faire 68 --- > SFX wF faire fait faire 71 > SFX wF faire faits faire 70 > SFX wF faire faite faire 67 > SFX wF faire faites faire 68 > SFX wF faire fais faire 75 > SFX wF faire fait faire 69 9778c9839 < SFX wF faire font faire 140 --- > SFX wF faire font faire 159 9786,9789c9847,9850 < SFX wG aire ait faire 74 < SFX wG aire aits faire 73 < SFX wG aire aite faire 65 < SFX wG aire aites faire 66 --- > SFX wG aire ait faire 71 > SFX wG aire aits faire 70 > SFX wG aire aite faire 67 > SFX wG aire aites faire 68 9794,9799c9855,9860 < SFX wL raire rait/6 traire 74 < SFX wL raire raits/9 traire 73 < SFX wL raire raite/6 traire 65 < SFX wL raire raites/9 traire 66 < SFX wL raire rais/19 traire 77 < SFX wL raire rait/8 traire 68 --- > SFX wL raire rait/6 traire 71 > SFX wL raire raits/9 traire 70 > SFX wL raire raite/6 traire 67 > SFX wL raire raites/9 traire 68 > SFX wL raire rais/19 traire 75 > SFX wL raire rait/8 traire 69 9802c9863 < SFX wL raire raient/8 traire 35 --- > SFX wL raire raient/8 traire 34 9809c9870 < SFX wL raire rairas/23 traire 31 --- > SFX wL raire rairas/24 traire 31 9819,9820c9880,9881 < SFX wL raire raie/33 traire 76 < SFX wL raire raies/23 traire 75 --- > SFX wL raire raie/33 traire 73 > SFX wL raire raies/24 traire 72 9828,9830c9889,9891 < SFX wM aire ait raire 100 < SFX wM aire ais raire 77 < SFX wM aire ait raire 68 --- > SFX wM aire ait raire 102 > SFX wM aire ais raire 75 > SFX wM aire ait raire 69 9833c9894 < SFX wM aire aient raire 35 --- > SFX wM aire aient raire 34 9850,9851c9911,9912 < SFX wM aire aie raire 76 < SFX wM aire aies raire 75 --- > SFX wM aire aie raire 73 > SFX wM aire aies raire 72 9859,9862c9920,9923 < SFX wN aire ais aire 77 < SFX wN aire ait taire 68 < SFX wN aire aît plaire 68 < SFX wN aire ait plaire 68 --- > SFX wN aire ais aire 75 > SFX wN aire ait taire 69 > SFX wN aire aît plaire 69 > SFX wN aire ait plaire 69 9865c9926 < SFX wN aire aisent aire 35 --- > SFX wN aire aisent aire 34 9871c9932 < SFX wN aire us aire 79 --- > SFX wN aire us aire 77 9887,9888c9948,9949 < SFX wN aire aise aire 76 < SFX wN aire aises aire 75 --- > SFX wN aire aise aire 73 > SFX wN aire aises aire 72 9902,9907c9963,9968 < SFX wO aindre aint aindre 74 < SFX wO aindre aints aindre 73 < SFX wO aindre ainte aindre 65 < SFX wO aindre aintes aindre 66 < SFX wO aindre ains aindre 77 < SFX wO aindre aint aindre 68 --- > SFX wO aindre aint aindre 71 > SFX wO aindre aints aindre 70 > SFX wO aindre ainte aindre 67 > SFX wO aindre aintes aindre 68 > SFX wO aindre ains aindre 75 > SFX wO aindre aint aindre 69 9910c9971 < SFX wO aindre aignent aindre 35 --- > SFX wO aindre aignent aindre 34 9916c9977 < SFX wO aindre aignis aindre 79 --- > SFX wO aindre aignis aindre 77 9932,9933c9993,9994 < SFX wO aindre aigne aindre 76 < SFX wO aindre aignes aindre 75 --- > SFX wO aindre aigne aindre 73 > SFX wO aindre aignes aindre 72 9947,9952c10008,10013 < SFX wP aincre aincu vaincre 74 < SFX wP aincre aincus vaincre 73 < SFX wP aincre aincue vaincre 65 < SFX wP aincre aincues vaincre 66 < SFX wP aincre aincs vaincre 77 < SFX wP aincre ainc vaincre 68 --- > SFX wP aincre aincu vaincre 71 > SFX wP aincre aincus vaincre 70 > SFX wP aincre aincue vaincre 67 > SFX wP aincre aincues vaincre 68 > SFX wP aincre aincs vaincre 75 > SFX wP aincre ainc vaincre 69 9955c10016 < SFX wP aincre ainquent vaincre 35 --- > SFX wP aincre ainquent vaincre 34 9961c10022 < SFX wP aincre ainquis vaincre 79 --- > SFX wP aincre ainquis vaincre 77 9977,9978c10038,10039 < SFX wP aincre ainque vaincre 76 < SFX wP aincre ainques vaincre 75 --- > SFX wP aincre ainque vaincre 73 > SFX wP aincre ainques vaincre 72 9993,9994c10054,10055 < SFX wQ aître ais/80 aître 77 < SFX wQ aître aît/21 aître 68 --- > SFX wQ aître ais/80 aître 75 > SFX wQ aître aît/21 aître 69 9997,9999c10058,10060 < SFX wQ aître aissent/21 aître 35 < SFX wQ aitre ais/80 aitre 77 < SFX wQ aitre ait/21 aitre 68 --- > SFX wQ aître aissent/21 aître 34 > SFX wQ aitre ais/80 aitre 75 > SFX wQ aitre ait/21 aitre 69 10002c10063 < SFX wQ aitre aissent/21 aitre 35 --- > SFX wQ aitre aissent/21 aitre 34 10013c10074 < SFX wQ aître us/80 aître 79 --- > SFX wQ aître us/80 aître 77 10018c10079 < SFX wQ aitre us/80 aitre 79 --- > SFX wQ aitre us/80 aitre 77 10034,10037c10095,10098 < SFX wQ aître aisse/55 aître 76 < SFX wQ aître aisses/58 aître 75 < SFX wQ aitre aisse/55 aitre 76 < SFX wQ aitre aisses/58 aitre 75 --- > SFX wQ aître aisse/55 aître 73 > SFX wQ aître aisses/58 aître 72 > SFX wQ aitre aisse/55 aitre 73 > SFX wQ aitre aisses/58 aitre 72 10050c10111 < SFX wQ aître ais/25 paraître 30 --- > SFX wQ aître ais/26 paraître 30 10054c10115 < SFX wQ aître aissez/25 paraître 62 --- > SFX wQ aître aissez/26 paraître 62 10056c10117 < SFX wQ aitre ais/25 paraitre 30 --- > SFX wQ aitre ais/26 paraitre 30 10060c10121 < SFX wQ aitre aissez/25 paraitre 62 --- > SFX wQ aitre aissez/26 paraitre 62 10067,10076c10128,10137 < SFX wR aître é naître 74 < SFX wR aître és naître 73 < SFX wR aître ée naître 65 < SFX wR aître ées naître 66 < SFX wR aitre é naitre 74 < SFX wR aitre és naitre 73 < SFX wR aitre ée naitre 65 < SFX wR aitre ées naitre 66 < SFX wR aître ais naître 77 < SFX wR aître aît naître 68 --- > SFX wR aître é naître 71 > SFX wR aître és naître 70 > SFX wR aître ée naître 67 > SFX wR aître ées naître 68 > SFX wR aitre é naitre 71 > SFX wR aitre és naitre 70 > SFX wR aitre ée naitre 67 > SFX wR aitre ées naitre 68 > SFX wR aître ais naître 75 > SFX wR aître aît naître 69 10079,10081c10140,10142 < SFX wR aître aissent naître 35 < SFX wR aitre ais naitre 77 < SFX wR aitre ait naitre 68 --- > SFX wR aître aissent naître 34 > SFX wR aitre ais naitre 75 > SFX wR aitre ait naitre 69 10084c10145 < SFX wR aitre aissent naitre 35 --- > SFX wR aitre aissent naitre 34 10095c10156 < SFX wR aître aquis naître 79 --- > SFX wR aître aquis naître 77 10100c10161 < SFX wR aitre aquis naitre 79 --- > SFX wR aitre aquis naitre 77 10116,10119c10177,10180 < SFX wR aître aisse naître 76 < SFX wR aître aisses naître 75 < SFX wR aitre aisse naitre 76 < SFX wR aitre aisses naitre 75 --- > SFX wR aître aisse naître 73 > SFX wR aître aisses naître 72 > SFX wR aitre aisse naitre 73 > SFX wR aitre aisses naitre 72 10143,10152c10204,10213 < SFX wS aître u repaître 74 < SFX wS aître us repaître 73 < SFX wS aître ue repaître 65 < SFX wS aître ues repaître 66 < SFX wS aitre u repaitre 74 < SFX wS aitre us repaitre 73 < SFX wS aitre ue repaitre 65 < SFX wS aitre ues repaitre 66 < SFX wS aître ais paître 77 < SFX wS aître aît paître 68 --- > SFX wS aître u repaître 71 > SFX wS aître us repaître 70 > SFX wS aître ue repaître 67 > SFX wS aître ues repaître 68 > SFX wS aitre u repaitre 71 > SFX wS aitre us repaitre 70 > SFX wS aitre ue repaitre 67 > SFX wS aitre ues repaitre 68 > SFX wS aître ais paître 75 > SFX wS aître aît paître 69 10155,10157c10216,10218 < SFX wS aître aissent paître 35 < SFX wS aitre ais paitre 77 < SFX wS aitre ait paitre 68 --- > SFX wS aître aissent paître 34 > SFX wS aitre ais paitre 75 > SFX wS aitre ait paitre 69 10160c10221 < SFX wS aitre aissent paitre 35 --- > SFX wS aitre aissent paitre 34 10171c10232 < SFX wS aître us repaître 79 --- > SFX wS aître us repaître 77 10176c10237 < SFX wS aitre us repaitre 79 --- > SFX wS aitre us repaitre 77 10192,10195c10253,10256 < SFX wS aître aisse paître 76 < SFX wS aître aisses paître 75 < SFX wS aitre aisse paitre 76 < SFX wS aitre aisses paitre 75 --- > SFX wS aître aisse paître 73 > SFX wS aître aisses paître 72 > SFX wS aitre aisse paitre 73 > SFX wS aitre aisses paitre 72 10219,10232c10280,10293 < SFX wT roître rû recroître 74 < SFX wT roître rûs recroître 73 < SFX wT roître rûe recroître 65 < SFX wT roître rûes recroître 66 < SFX wT roître ru décroître 74 < SFX wT roître rus décroître 73 < SFX wT roître rue décroître 65 < SFX wT roître rues décroître 66 < SFX wT roitre ru .croitre 74 < SFX wT roitre rus .croitre 73 < SFX wT roitre rue .croitre 65 < SFX wT roitre rues .croitre 66 < SFX wT roître rois .croître 77 < SFX wT roître roît .croître 68 --- > SFX wT roître rû recroître 71 > SFX wT roître rûs recroître 70 > SFX wT roître rûe recroître 67 > SFX wT roître rûes recroître 68 > SFX wT roître ru décroître 71 > SFX wT roître rus décroître 70 > SFX wT roître rue décroître 67 > SFX wT roître rues décroître 68 > SFX wT roitre ru .croitre 71 > SFX wT roitre rus .croitre 70 > SFX wT roitre rue .croitre 67 > SFX wT roitre rues .croitre 68 > SFX wT roître rois .croître 75 > SFX wT roître roît .croître 69 10235,10237c10296,10298 < SFX wT roître roissent croître 35 < SFX wT roitre rois .croitre 77 < SFX wT roitre roit .croitre 68 --- > SFX wT roître roissent croître 34 > SFX wT roitre rois .croitre 75 > SFX wT roitre roit .croitre 69 10240c10301 < SFX wT roitre roissent croitre 35 --- > SFX wT roitre roissent croitre 34 10251c10312 < SFX wT roître rus .croître 79 --- > SFX wT roître rus .croître 77 10256c10317 < SFX wT roitre rus .croitre 79 --- > SFX wT roitre rus .croitre 77 10272,10275c10333,10336 < SFX wT roître roisse croître 76 < SFX wT roître roisses croître 75 < SFX wT roitre roisse croitre 76 < SFX wT roitre roisses croitre 75 --- > SFX wT roître roisse croître 73 > SFX wT roître roisses croître 72 > SFX wT roitre roisse croitre 73 > SFX wT roitre roisses croitre 72 10296,10308c10357,10369 < SFX wU roître rû croître 74 < SFX wU roître rûs croître 73 < SFX wU roître rûe croître 65 < SFX wU roître rûes croître 66 < SFX wU roitre rû croitre 74 < SFX wU roitre rûs croitre 73 < SFX wU roitre rûe croitre 65 < SFX wU roitre rûes croitre 66 < SFX wU roître roîs croître 77 < SFX wU roître roît croître 68 < SFX wU roitre roîs croitre 77 < SFX wU roitre roît croitre 68 < SFX wU roître rûs croître 79 --- > SFX wU roître rû croître 71 > SFX wU roître rûs croître 70 > SFX wU roître rûe croître 67 > SFX wU roître rûes croître 68 > SFX wU roitre rû croitre 71 > SFX wU roitre rûs croitre 70 > SFX wU roitre rûe croitre 67 > SFX wU roitre rûes croitre 68 > SFX wU roître roîs croître 75 > SFX wU roître roît croître 69 > SFX wU roitre roîs croitre 75 > SFX wU roitre roît croitre 69 > SFX wU roître rûs croître 77 10311c10372 < SFX wU roitre rûs croitre 79 --- > SFX wU roitre rûs croitre 77 10331,10348c10392,10409 < SFX wV croître cru/6 croître 74 < SFX wV croître crus/9 croître 73 < SFX wV croître crue/6 croître 65 < SFX wV croître crues/9 croître 66 < SFX wV croitre cru/6 croitre 74 < SFX wV croitre crus/9 croitre 73 < SFX wV croitre crue/6 croitre 65 < SFX wV croitre crues/9 croitre 66 < SFX wV croître crois/19 croître 77 < SFX wV croître croît/63 croître 68 < SFX wV croître croissons/38 croître 46 < SFX wV croître croissez/38 croître 60 < SFX wV croître croissent/63 croître 35 < SFX wV croitre crois/19 croitre 77 < SFX wV croitre croit/63 croitre 68 < SFX wV croitre croissons/38 croitre 46 < SFX wV croitre croissez/38 croitre 60 < SFX wV croitre croissent/63 croitre 35 --- > SFX wV croître cru/6 croître 71 > SFX wV croître crus/9 croître 70 > SFX wV croître crue/6 croître 67 > SFX wV croître crues/9 croître 68 > SFX wV croitre cru/6 croitre 71 > SFX wV croitre crus/9 croitre 70 > SFX wV croitre crue/6 croitre 67 > SFX wV croitre crues/9 croitre 68 > SFX wV croître crois/19 croître 75 > SFX wV croître croît/63 croître 69 > SFX wV croître croissons/39 croître 46 > SFX wV croître croissez/39 croître 60 > SFX wV croître croissent/63 croître 34 > SFX wV croitre crois/19 croitre 75 > SFX wV croitre croit/63 croitre 69 > SFX wV croitre croissons/39 croitre 46 > SFX wV croitre croissez/39 croitre 60 > SFX wV croitre croissent/63 croitre 34 10351,10352c10412,10413 < SFX wV croître croissions/38 croître 64 < SFX wV croître croissiez/38 croître 63 --- > SFX wV croître croissions/39 croître 64 > SFX wV croître croissiez/39 croître 63 10356,10357c10417,10418 < SFX wV croitre croissions/38 croitre 64 < SFX wV croitre croissiez/38 croitre 63 --- > SFX wV croitre croissions/39 croitre 64 > SFX wV croitre croissiez/39 croitre 63 10359c10420 < SFX wV croître crus/19 croître 79 --- > SFX wV croître crus/19 croître 77 10361,10362c10422,10423 < SFX wV croître crûmes/38 croître 49 < SFX wV croître crûtes/38 croître 48 --- > SFX wV croître crûmes/39 croître 49 > SFX wV croître crûtes/39 croître 48 10364c10425 < SFX wV croitre crus/19 croitre 79 --- > SFX wV croitre crus/19 croitre 77 10366,10367c10427,10428 < SFX wV croitre crûmes/38 croitre 49 < SFX wV croitre crûtes/38 croitre 48 --- > SFX wV croitre crûmes/39 croitre 49 > SFX wV croitre crûtes/39 croitre 48 10372,10373c10433,10434 < SFX wV tre trons/38 tre 27 < SFX wV tre trez/38 tre 26 --- > SFX wV tre trons/39 tre 27 > SFX wV tre trez/39 tre 26 10377,10378c10438,10439 < SFX wV tre trions/38 tre 29 < SFX wV tre triez/38 tre 28 --- > SFX wV tre trions/39 tre 29 > SFX wV tre triez/39 tre 28 10380,10383c10441,10444 < SFX wV croître croisse/133 croître 76 < SFX wV croître croisses/16 croître 75 < SFX wV croitre croisse/133 croitre 76 < SFX wV croitre croisses/16 croitre 75 --- > SFX wV croître croisse/133 croître 73 > SFX wV croître croisses/16 croître 72 > SFX wV croitre croisse/133 croitre 73 > SFX wV croitre croisses/16 croitre 72 10387,10388c10448,10449 < SFX wV croître crussions/38 croître 57 < SFX wV croître crussiez/38 croître 56 --- > SFX wV croître crussions/39 croître 57 > SFX wV croître crussiez/39 croître 56 10393,10394c10454,10455 < SFX wV croitre crussions/38 croitre 57 < SFX wV croitre crussiez/38 croitre 56 --- > SFX wV croitre crussions/39 croitre 57 > SFX wV croitre crussiez/39 croitre 56 10406,10411c10467,10472 < SFX xA roire ru croire 74 < SFX xA roire rus croire 73 < SFX xA roire rue croire 65 < SFX xA roire rues croire 66 < SFX xA roire rois croire 77 < SFX xA roire roit croire 68 --- > SFX xA roire ru croire 71 > SFX xA roire rus croire 70 > SFX xA roire rue croire 67 > SFX xA roire rues croire 68 > SFX xA roire rois croire 75 > SFX xA roire roit croire 69 10414c10475 < SFX xA roire roient croire 35 --- > SFX xA roire roient croire 34 10420c10481 < SFX xA roire rus croire 79 --- > SFX xA roire rus croire 77 10436,10437c10497,10498 < SFX xA roire roie croire 76 < SFX xA roire roies croire 75 --- > SFX xA roire roie croire 73 > SFX xA roire roies croire 72 10451,10456c10512,10517 < SFX xC oire u boire 74 < SFX xC oire us boire 73 < SFX xC oire ue boire 65 < SFX xC oire ues boire 66 < SFX xC oire ois boire 77 < SFX xC oire oit boire 68 --- > SFX xC oire u boire 71 > SFX xC oire us boire 70 > SFX xC oire ue boire 67 > SFX xC oire ues boire 68 > SFX xC oire ois boire 75 > SFX xC oire oit boire 69 10459c10520 < SFX xC oire oivent boire 35 --- > SFX xC oire oivent boire 34 10465c10526 < SFX xC oire us boire 79 --- > SFX xC oire us boire 77 10481,10482c10542,10543 < SFX xC oire oive boire 76 < SFX xC oire oives boire 75 --- > SFX xC oire oive boire 73 > SFX xC oire oives boire 72 10496,10501c10557,10562 < SFX xD boire bu boire 74 < SFX xD boire bus boire 73 < SFX xD boire bue boire 65 < SFX xD boire bues boire 66 < SFX xD boire bois/39 boire 77 < SFX xD boire boit/14 boire 68 --- > SFX xD boire bu boire 71 > SFX xD boire bus boire 70 > SFX xD boire bue boire 67 > SFX xD boire bues boire 68 > SFX xD boire bois/40 boire 75 > SFX xD boire boit/14 boire 69 10504,10505c10565,10566 < SFX xD boire boivent/14 boire 35 < SFX xD boire buvais/39 boire 51 --- > SFX xD boire boivent/14 boire 34 > SFX xD boire buvais/40 boire 51 10510c10571 < SFX xD boire bus/39 boire 79 --- > SFX xD boire bus/40 boire 77 10516c10577 < SFX xD boire boiras/24 boire 31 --- > SFX xD boire boiras/25 boire 31 10521c10582 < SFX xD boire boirais/39 boire 33 --- > SFX xD boire boirais/40 boire 33 10526,10527c10587,10588 < SFX xD boire boive/51 boire 76 < SFX xD boire boives/24 boire 75 --- > SFX xD boire boive/51 boire 73 > SFX xD boire boives/25 boire 72 10529c10590 < SFX xD boire busses/24 boire 58 --- > SFX xD boire busses/25 boire 58 10534c10595 < SFX xD boire bois/24 boire 30 --- > SFX xD boire bois/25 boire 30 10540,10542c10601,10603 < SFX xJ clure clus clure 116 < SFX xJ clure cluse clure 65 < SFX xJ clure cluses clure 66 --- > SFX xJ clure clus clure 121 > SFX xJ clure cluse clure 67 > SFX xJ clure cluses clure 68 10547,10554c10608,10615 < SFX xK clure clus/6 clure 116 < SFX xK clure cluse/6 clure 65 < SFX xK clure cluses/9 clure 66 < SFX xK clure clus/102 clure 123 < SFX xK clure clut/38 clure 122 < SFX xK clure cluons/38 clure 46 < SFX xK clure cluez/38 clure 60 < SFX xK clure cluent/38 clure 35 --- > SFX xK clure clus/6 clure 121 > SFX xK clure cluse/6 clure 67 > SFX xK clure cluses/9 clure 68 > SFX xK clure clus/102 clure 128 > SFX xK clure clut/39 clure 127 > SFX xK clure cluons/39 clure 46 > SFX xK clure cluez/39 clure 60 > SFX xK clure cluent/39 clure 34 10556,10562c10617,10623 < SFX xK clure cluait/38 clure 43 < SFX xK clure cluions/38 clure 64 < SFX xK clure cluiez/38 clure 63 < SFX xK clure cluaient/38 clure 44 < SFX xK clure clûmes/38 clure 49 < SFX xK clure clûtes/38 clure 48 < SFX xK clure clurent/38 clure 61 --- > SFX xK clure cluait/39 clure 43 > SFX xK clure cluions/39 clure 64 > SFX xK clure cluiez/39 clure 63 > SFX xK clure cluaient/39 clure 44 > SFX xK clure clûmes/39 clure 49 > SFX xK clure clûtes/39 clure 48 > SFX xK clure clurent/39 clure 61 10564,10568c10625,10629 < SFX xK clure cluras/38 clure 31 < SFX xK clure clura/38 clure 22 < SFX xK clure clurons/38 clure 27 < SFX xK clure clurez/38 clure 26 < SFX xK clure cluront/38 clure 25 --- > SFX xK clure cluras/39 clure 31 > SFX xK clure clura/39 clure 22 > SFX xK clure clurons/39 clure 27 > SFX xK clure clurez/39 clure 26 > SFX xK clure cluront/39 clure 25 10570,10575c10631,10636 < SFX xK clure clurait/38 clure 23 < SFX xK clure clurions/38 clure 29 < SFX xK clure cluriez/38 clure 28 < SFX xK clure cluraient/38 clure 24 < SFX xK clure clue/102 clure 76 < SFX xK clure clues/38 clure 75 --- > SFX xK clure clurait/39 clure 23 > SFX xK clure clurions/39 clure 29 > SFX xK clure cluriez/39 clure 28 > SFX xK clure cluraient/39 clure 24 > SFX xK clure clue/102 clure 73 > SFX xK clure clues/39 clure 72 10577,10581c10638,10642 < SFX xK clure clusses/38 clure 58 < SFX xK clure clût/38 clure 45 < SFX xK clure clussions/38 clure 57 < SFX xK clure clussiez/38 clure 56 < SFX xK clure clussent/38 clure 50 --- > SFX xK clure clusses/39 clure 58 > SFX xK clure clût/39 clure 45 > SFX xK clure clussions/39 clure 57 > SFX xK clure clussiez/39 clure 56 > SFX xK clure clussent/39 clure 50 10589,10597c10650,10658 < SFX xL clure clus/6 inclure 116 < SFX xL clure cluse/6 inclure 65 < SFX xL clure cluses/9 inclure 66 < SFX xL clure clu/6 [eo].clure 74 < SFX xL clure clus/9 [eo].clure 73 < SFX xL clure clue/6 [eo].clure 65 < SFX xL clure clues/9 [eo].clure 66 < SFX xL clure clus/19 clure 123 < SFX xL clure clut/8 clure 122 --- > SFX xL clure clus/6 inclure 121 > SFX xL clure cluse/6 inclure 67 > SFX xL clure cluses/9 inclure 68 > SFX xL clure clu/6 [eo].clure 71 > SFX xL clure clus/9 [eo].clure 70 > SFX xL clure clue/6 [eo].clure 67 > SFX xL clure clues/9 [eo].clure 68 > SFX xL clure clus/19 clure 128 > SFX xL clure clut/8 clure 127 10600c10661 < SFX xL clure cluent/8 clure 35 --- > SFX xL clure cluent/8 clure 34 10610c10671 < SFX xL clure cluras/23 clure 31 --- > SFX xL clure cluras/24 clure 31 10620,10621c10681,10682 < SFX xL clure clue/33 clure 76 < SFX xL clure clues/41 clure 75 --- > SFX xL clure clue/33 clure 73 > SFX xL clure clues/41 clure 72 10623c10684 < SFX xL clure clusses/23 clure 58 --- > SFX xL clure clusses/24 clure 58 10635,10636c10696,10697 < SFX xM ourdre ourd sourdre 68 < SFX xM ourdre ourdent sourdre 35 --- > SFX xM ourdre ourd sourdre 69 > SFX xM ourdre ourdent sourdre 34 10645c10706 < SFX xM ourdre ourde sourdre 105 --- > SFX xM ourdre ourde sourdre 109 10652,10662c10713,10723 < SFX xN soudre solu résoudre 74 < SFX xN soudre solus résoudre 73 < SFX xN soudre solue résoudre 65 < SFX xN soudre solues résoudre 66 < SFX xN soudre sous/6 soudre 116 < SFX xN soudre sout/6 soudre 74 < SFX xN soudre souts/9 soudre 73 < SFX xN soudre soute/6 soudre 65 < SFX xN soudre soutes/9 soudre 66 < SFX xN soudre sous/19 soudre 77 < SFX xN soudre sout/8 soudre 68 --- > SFX xN soudre solu résoudre 71 > SFX xN soudre solus résoudre 70 > SFX xN soudre solue résoudre 67 > SFX xN soudre solues résoudre 68 > SFX xN soudre sous/6 soudre 121 > SFX xN soudre sout/6 soudre 71 > SFX xN soudre souts/9 soudre 70 > SFX xN soudre soute/6 soudre 67 > SFX xN soudre soutes/9 soudre 68 > SFX xN soudre sous/19 soudre 75 > SFX xN soudre sout/8 soudre 69 10665c10726 < SFX xN soudre solvent/8 soudre 35 --- > SFX xN soudre solvent/8 soudre 34 10671c10732 < SFX xN soudre solus/19 soudre 79 --- > SFX xN soudre solus/19 soudre 77 10677c10738 < SFX xN soudre soudras/23 soudre 31 --- > SFX xN soudre soudras/24 soudre 31 10687,10688c10748,10749 < SFX xN soudre solve/33 soudre 76 < SFX xN soudre solves/41 soudre 75 --- > SFX xN soudre solve/33 soudre 73 > SFX xN soudre solves/41 soudre 72 10690c10751 < SFX xN soudre solusses/23 soudre 58 --- > SFX xN soudre solusses/24 soudre 58 10702,10707c10763,10768 < SFX xO oudre ousu coudre 74 < SFX xO oudre ousus coudre 73 < SFX xO oudre ousue coudre 65 < SFX xO oudre ousues coudre 66 < SFX xO oudre ouds coudre 77 < SFX xO oudre oud coudre 68 --- > SFX xO oudre ousu coudre 71 > SFX xO oudre ousus coudre 70 > SFX xO oudre ousue coudre 67 > SFX xO oudre ousues coudre 68 > SFX xO oudre ouds coudre 75 > SFX xO oudre oud coudre 69 10710c10771 < SFX xO oudre ousent coudre 35 --- > SFX xO oudre ousent coudre 34 10716c10777 < SFX xO oudre ousis coudre 79 --- > SFX xO oudre ousis coudre 77 10732,10733c10793,10794 < SFX xO oudre ouse coudre 76 < SFX xO oudre ouses coudre 75 --- > SFX xO oudre ouse coudre 73 > SFX xO oudre ouses coudre 72 10746,10784c10807,10845 < SFX xP oudre oulant/38 moudre 41 < SFX xP oudre oulu/6 moudre 74 < SFX xP oudre oulus/9 moudre 73 < SFX xP oudre oulue/6 moudre 65 < SFX xP oudre oulues/9 moudre 66 < SFX xP oudre ouds/38 moudre 77 < SFX xP oudre oud/38 moudre 68 < SFX xP oudre oulons/38 moudre 46 < SFX xP oudre oulez/38 moudre 60 < SFX xP oudre oulent/38 moudre 35 < SFX xP oudre oulais/38 moudre 51 < SFX xP oudre oulait/38 moudre 43 < SFX xP oudre oulions/38 moudre 64 < SFX xP oudre ouliez/38 moudre 63 < SFX xP oudre oulaient/38 moudre 44 < SFX xP oudre oulus/38 moudre 79 < SFX xP oudre oulut/38 moudre 55 < SFX xP oudre oulûmes/38 moudre 49 < SFX xP oudre oulûtes/38 moudre 48 < SFX xP oudre oulurent/38 moudre 61 < SFX xP oudre oudrai/38 moudre 32 < SFX xP oudre oudras/38 moudre 31 < SFX xP oudre oudra/38 moudre 22 < SFX xP oudre oudrons/38 moudre 27 < SFX xP oudre oudrez/38 moudre 26 < SFX xP oudre oudront/38 moudre 25 < SFX xP oudre oudrais/38 moudre 33 < SFX xP oudre oudrait/38 moudre 23 < SFX xP oudre oudrions/38 moudre 29 < SFX xP oudre oudriez/38 moudre 28 < SFX xP oudre oudraient/38 moudre 24 < SFX xP oudre oule/38 moudre 76 < SFX xP oudre oules/48 moudre 75 < SFX xP oudre oulusse/38 moudre 59 < SFX xP oudre oulusses/38 moudre 58 < SFX xP oudre oulût/38 moudre 45 < SFX xP oudre oulussions/38 moudre 57 < SFX xP oudre oulussiez/38 moudre 56 < SFX xP oudre oulussent/38 moudre 50 --- > SFX xP oudre oulant/39 moudre 41 > SFX xP oudre oulu/6 moudre 71 > SFX xP oudre oulus/9 moudre 70 > SFX xP oudre oulue/6 moudre 67 > SFX xP oudre oulues/9 moudre 68 > SFX xP oudre ouds/39 moudre 75 > SFX xP oudre oud/39 moudre 69 > SFX xP oudre oulons/39 moudre 46 > SFX xP oudre oulez/39 moudre 60 > SFX xP oudre oulent/39 moudre 34 > SFX xP oudre oulais/39 moudre 51 > SFX xP oudre oulait/39 moudre 43 > SFX xP oudre oulions/39 moudre 64 > SFX xP oudre ouliez/39 moudre 63 > SFX xP oudre oulaient/39 moudre 44 > SFX xP oudre oulus/39 moudre 77 > SFX xP oudre oulut/39 moudre 55 > SFX xP oudre oulûmes/39 moudre 49 > SFX xP oudre oulûtes/39 moudre 48 > SFX xP oudre oulurent/39 moudre 61 > SFX xP oudre oudrai/39 moudre 32 > SFX xP oudre oudras/39 moudre 31 > SFX xP oudre oudra/39 moudre 22 > SFX xP oudre oudrons/39 moudre 27 > SFX xP oudre oudrez/39 moudre 26 > SFX xP oudre oudront/39 moudre 25 > SFX xP oudre oudrais/39 moudre 33 > SFX xP oudre oudrait/39 moudre 23 > SFX xP oudre oudrions/39 moudre 29 > SFX xP oudre oudriez/39 moudre 28 > SFX xP oudre oudraient/39 moudre 24 > SFX xP oudre oule/39 moudre 73 > SFX xP oudre oules/48 moudre 72 > SFX xP oudre oulusse/39 moudre 59 > SFX xP oudre oulusses/39 moudre 58 > SFX xP oudre oulût/39 moudre 45 > SFX xP oudre oulussions/39 moudre 57 > SFX xP oudre oulussiez/39 moudre 56 > SFX xP oudre oulussent/39 moudre 50 10792,10797c10853,10858 < SFX xQ uivre uivi suivre 74 < SFX xQ uivre uivis suivre 73 < SFX xQ uivre uivie suivre 65 < SFX xQ uivre uivies suivre 66 < SFX xQ uivre uis suivre 77 < SFX xQ uivre uit suivre 68 --- > SFX xQ uivre uivi suivre 71 > SFX xQ uivre uivis suivre 70 > SFX xQ uivre uivie suivre 67 > SFX xQ uivre uivies suivre 68 > SFX xQ uivre uis suivre 75 > SFX xQ uivre uit suivre 69 10800c10861 < SFX xQ uivre uivent suivre 35 --- > SFX xQ uivre uivent suivre 34 10806c10867 < SFX xQ uivre uivis suivre 79 --- > SFX xQ uivre uivis suivre 77 10822,10823c10883,10884 < SFX xQ uivre uive suivre 76 < SFX xQ uivre uives suivre 75 --- > SFX xQ uivre uive suivre 73 > SFX xQ uivre uives suivre 72 10837,10839c10898,10900 < SFX xR suivre suivi suivre 100 < SFX xR suivre suit/14 suivre 68 < SFX xR suivre suivent/14 suivre 35 --- > SFX xR suivre suivi suivre 102 > SFX xR suivre suit/14 suivre 69 > SFX xR suivre suivent/14 suivre 34 10848c10909 < SFX xR suivre suive/14 suivre 105 --- > SFX xR suivre suive/14 suivre 109 10850c10911 < SFX xR suivre suivissent/14 suivre 212 --- > SFX xR suivre suivissent/14 suivre 227 10855,10856c10916,10917 < SFX xS ivre is vivre 77 < SFX xS ivre it vivre 68 --- > SFX xS ivre is vivre 75 > SFX xS ivre it vivre 69 10859c10920 < SFX xS ivre ivent vivre 35 --- > SFX xS ivre ivent vivre 34 10865c10926 < SFX xS ivre écus vivre 79 --- > SFX xS ivre écus vivre 77 10881,10882c10942,10943 < SFX xS ivre ive vivre 76 < SFX xS ivre ives vivre 75 --- > SFX xS ivre ive vivre 73 > SFX xS ivre ives vivre 72 10896,10901c10957,10962 < SFX y1 crire crit/6 crire 74 < SFX y1 crire crits/9 crire 73 < SFX y1 crire crite/6 crire 65 < SFX y1 crire crites/9 crire 66 < SFX y1 crire cris/19 crire 77 < SFX y1 crire crit/8 crire 68 --- > SFX y1 crire crit/6 crire 71 > SFX y1 crire crits/9 crire 70 > SFX y1 crire crite/6 crire 67 > SFX y1 crire crites/9 crire 68 > SFX y1 crire cris/19 crire 75 > SFX y1 crire crit/8 crire 69 10904c10965 < SFX y1 crire crivent/8 crire 35 --- > SFX y1 crire crivent/8 crire 34 10910c10971 < SFX y1 crire crivis/19 crire 79 --- > SFX y1 crire crivis/19 crire 77 10916c10977 < SFX y1 crire criras/23 crire 31 --- > SFX y1 crire criras/24 crire 31 10926,10927c10987,10988 < SFX y1 crire crive/33 crire 76 < SFX y1 crire crives/41 crire 75 --- > SFX y1 crire crive/33 crire 73 > SFX y1 crire crives/41 crire 72 10929c10990 < SFX y1 crire crivisses/23 crire 58 --- > SFX y1 crire crivisses/24 crire 58 10941,10946c11002,11007 < SFX yA ire u lire 74 < SFX yA ire us lire 73 < SFX yA ire ue lire 65 < SFX yA ire ues lire 66 < SFX yA ire is lire 77 < SFX yA ire it lire 68 --- > SFX yA ire u lire 71 > SFX yA ire us lire 70 > SFX yA ire ue lire 67 > SFX yA ire ues lire 68 > SFX yA ire is lire 75 > SFX yA ire it lire 69 10949c11010 < SFX yA ire isent lire 35 --- > SFX yA ire isent lire 34 10955c11016 < SFX yA ire us lire 79 --- > SFX yA ire us lire 77 10971,10972c11032,11033 < SFX yA ire ise lire 76 < SFX yA ire ises lire 75 --- > SFX yA ire ise lire 73 > SFX yA ire ises lire 72 10986,10991c11047,11052 < SFX yB lire lu/6 lire 74 < SFX yB lire lus/9 lire 73 < SFX yB lire lue/6 lire 65 < SFX yB lire lues/9 lire 66 < SFX yB lire lis/19 lire 77 < SFX yB lire lit/8 lire 68 --- > SFX yB lire lu/6 lire 71 > SFX yB lire lus/9 lire 70 > SFX yB lire lue/6 lire 67 > SFX yB lire lues/9 lire 68 > SFX yB lire lis/19 lire 75 > SFX yB lire lit/8 lire 69 10994c11055 < SFX yB lire lisent/8 lire 35 --- > SFX yB lire lisent/8 lire 34 11000c11061 < SFX yB lire lus/19 lire 79 --- > SFX yB lire lus/19 lire 77 11006c11067 < SFX yB lire liras/23 lire 31 --- > SFX yB lire liras/24 lire 31 11016,11017c11077,11078 < SFX yB lire lise/33 lire 76 < SFX yB lire lises/41 lire 75 --- > SFX yB lire lise/33 lire 73 > SFX yB lire lises/41 lire 72 11019c11080 < SFX yB lire lusses/23 lire 58 --- > SFX yB lire lusses/24 lire 58 11031,11036c11092,11097 < SFX yC ire it dire 74 < SFX yC ire its dire 73 < SFX yC ire ite dire 65 < SFX yC ire ites dire 66 < SFX yC ire is dire 123 < SFX yC ire it dire 122 --- > SFX yC ire it dire 71 > SFX yC ire its dire 70 > SFX yC ire ite dire 67 > SFX yC ire ites dire 68 > SFX yC ire is dire 128 > SFX yC ire it dire 127 11039c11100 < SFX yC ire isent dire 35 --- > SFX yC ire isent dire 34 11059,11060c11120,11121 < SFX yC ire ise dire 76 < SFX yC ire ises dire 75 --- > SFX yC ire ise dire 73 > SFX yC ire ises dire 72 11074,11079c11135,11140 < SFX yD dire dit/6 dire 74 < SFX yD dire dits/9 dire 73 < SFX yD dire dite/6 dire 65 < SFX yD dire dites/9 dire 66 < SFX yD dire dis/19 dire 123 < SFX yD dire dit/8 dire 122 --- > SFX yD dire dit/6 dire 71 > SFX yD dire dits/9 dire 70 > SFX yD dire dite/6 dire 67 > SFX yD dire dites/9 dire 68 > SFX yD dire dis/19 dire 128 > SFX yD dire dit/8 dire 127 11082c11143 < SFX yD dire disent/8 dire 35 --- > SFX yD dire disent/8 dire 34 11092c11153 < SFX yD dire diras/23 dire 31 --- > SFX yD dire diras/24 dire 31 11102,11103c11163,11164 < SFX yD dire dise/33 dire 76 < SFX yD dire dises/41 dire 75 --- > SFX yD dire dise/33 dire 73 > SFX yD dire dises/41 dire 72 11105c11166 < SFX yD dire disses/23 dire 58 --- > SFX yD dire disses/24 dire 58 11117,11119c11178,11180 < SFX yE édire édit édire 100 < SFX yE édire édis édire 123 < SFX yE édire édit édire 122 --- > SFX yE édire édit édire 102 > SFX yE édire édis édire 128 > SFX yE édire édit édire 127 11122c11183 < SFX yE édire édisent édire 35 --- > SFX yE édire édisent édire 34 11142,11143c11203,11204 < SFX yE édire édise édire 76 < SFX yE édire édises édire 75 --- > SFX yE édire édise édire 73 > SFX yE édire édises édire 72 11157,11162c11218,11223 < SFX yF audire audit udire 74 < SFX yF audire audits udire 73 < SFX yF audire audite udire 65 < SFX yF audire audites udire 66 < SFX yF audire audis udire 123 < SFX yF audire audit udire 122 --- > SFX yF audire audit udire 71 > SFX yF audire audits udire 70 > SFX yF audire audite udire 67 > SFX yF audire audites udire 68 > SFX yF audire audis udire 128 > SFX yF audire audit udire 127 11165c11226 < SFX yF audire audissent udire 134 --- > SFX yF audire audissent udire 151 11168,11169c11229,11230 < SFX yF audire audissions udire 142 < SFX yF audire audissiez udire 141 --- > SFX yF audire audissions udire 161 > SFX yF audire audissiez udire 160 11185,11187c11246,11248 < SFX yF audire audisse udire 144 < SFX yF audire audisses udire 143 < SFX yF audire audisse udire 105 --- > SFX yF audire audisse udire 164 > SFX yF audire audisses udire 163 > SFX yF audire audisse udire 109 11196,11198c11257,11259 < SFX yG dire dit dire 100 < SFX yG dire dis/39 dire 123 < SFX yG dire dit/14 dire 122 --- > SFX yG dire dit dire 102 > SFX yG dire dis/40 dire 128 > SFX yG dire dit/14 dire 127 11201,11202c11262,11263 < SFX yG dire disent/14 dire 35 < SFX yG dire disais/39 dire 51 --- > SFX yG dire disent/14 dire 34 > SFX yG dire disais/40 dire 51 11211c11272 < SFX yG dire diras/24 dire 31 --- > SFX yG dire diras/25 dire 31 11216c11277 < SFX yG dire dirais/39 dire 33 --- > SFX yG dire dirais/40 dire 33 11221,11222c11282,11283 < SFX yG dire dise/51 dire 76 < SFX yG dire dises/24 dire 75 --- > SFX yG dire dise/51 dire 73 > SFX yG dire dises/25 dire 72 11224c11285 < SFX yG dire disses/24 dire 58 --- > SFX yG dire disses/25 dire 58 11229c11290 < SFX yG dire dis/24 dire 30 --- > SFX yG dire dis/25 dire 30 11236,11238c11297,11299 < SFX yJ ruire rui uire 100 < SFX yJ ruire ruit uire 68 < SFX yJ ruire ruissent uire 35 --- > SFX yJ ruire rui uire 102 > SFX yJ ruire ruit uire 69 > SFX yJ ruire ruissent uire 34 11241c11302 < SFX yJ ruire ruisse uire 105 --- > SFX yJ ruire ruisse uire 109 11245,11248c11306,11309 < SFX yK bduire bduit uire 74 < SFX yK bduire bduits uire 73 < SFX yK bduire bduite uire 65 < SFX yK bduire bduites uire 66 --- > SFX yK bduire bduit uire 71 > SFX yK bduire bduits uire 70 > SFX yK bduire bduite uire 67 > SFX yK bduire bduites uire 68 11253,11258c11314,11319 < SFX yL uire uit/6 uire 74 < SFX yL uire uits/9 uire 73 < SFX yL uire uite/6 uire 65 < SFX yL uire uites/9 uire 66 < SFX yL uire uis/19 uire 77 < SFX yL uire uit/8 uire 68 --- > SFX yL uire uit/6 uire 71 > SFX yL uire uits/9 uire 70 > SFX yL uire uite/6 uire 67 > SFX yL uire uites/9 uire 68 > SFX yL uire uis/19 uire 75 > SFX yL uire uit/8 uire 69 11261c11322 < SFX yL uire uisent/8 uire 35 --- > SFX yL uire uisent/8 uire 34 11267c11328 < SFX yL uire uisis/19 uire 79 --- > SFX yL uire uisis/19 uire 77 11283,11284c11344,11345 < SFX yL uire uise/33 uire 76 < SFX yL uire uises/35 uire 75 --- > SFX yL uire uise/33 uire 73 > SFX yL uire uises/35 uire 72 11298,11303c11359,11364 < SFX yM uire uit/6 uire 74 < SFX yM uire uits/9 uire 73 < SFX yM uire uite/6 uire 65 < SFX yM uire uites/9 uire 66 < SFX yM uire uis/19 uire 77 < SFX yM uire uit/8 uire 68 --- > SFX yM uire uit/6 uire 71 > SFX yM uire uits/9 uire 70 > SFX yM uire uite/6 uire 67 > SFX yM uire uites/9 uire 68 > SFX yM uire uis/19 uire 75 > SFX yM uire uit/8 uire 69 11306c11367 < SFX yM uire uisent/8 uire 35 --- > SFX yM uire uisent/8 uire 34 11312c11373 < SFX yM uire uisis/19 uire 79 --- > SFX yM uire uisis/19 uire 77 11318c11379 < SFX yM uire uiras/23 uire 31 --- > SFX yM uire uiras/24 uire 31 11328,11329c11389,11390 < SFX yM uire uise/33 uire 76 < SFX yM uire uises/41 uire 75 --- > SFX yM uire uise/33 uire 73 > SFX yM uire uises/41 uire 72 11331c11392 < SFX yM uire uisisses/23 uire 58 --- > SFX yM uire uisisses/24 uire 58 11343,11347c11404,11408 < SFX yN truire truit uire 74 < SFX yN truire truits uire 73 < SFX yN truire truite uire 65 < SFX yN truire truites uire 66 < SFX yN truire truit/14 uire 68 --- > SFX yN truire truit uire 71 > SFX yN truire truits uire 70 > SFX yN truire truite uire 67 > SFX yN truire truites uire 68 > SFX yN truire truit/14 uire 69 11350c11411 < SFX yN truire truisent/14 uire 35 --- > SFX yN truire truisent/14 uire 34 11367c11428 < SFX yN truire truise/14 uire 105 --- > SFX yN truire truise/14 uire 109 11371,11373c11432,11434 < SFX yN truire truisissent/14 uire 212 < SFX yN truire truisons-nous uire 226 < SFX yN truire truisez-vous uire 225 --- > SFX yN truire truisissent/14 uire 227 > SFX yN truire truisons-nous uire 242 > SFX yN truire truisez-vous uire 241 11378,11383c11439,11444 < SFX yO détruire détruit détruire 74 < SFX yO détruire détruits détruire 73 < SFX yO détruire détruite détruire 65 < SFX yO détruire détruites détruire 66 < SFX yO détruire détruis/39 détruire 77 < SFX yO détruire détruit/14 détruire 68 --- > SFX yO détruire détruit détruire 71 > SFX yO détruire détruits détruire 70 > SFX yO détruire détruite détruire 67 > SFX yO détruire détruites détruire 68 > SFX yO détruire détruis/40 détruire 75 > SFX yO détruire détruit/14 détruire 69 11386,11387c11447,11448 < SFX yO détruire détruisent/14 détruire 35 < SFX yO détruire détruisais/39 détruire 51 --- > SFX yO détruire détruisent/14 détruire 34 > SFX yO détruire détruisais/40 détruire 51 11392c11453 < SFX yO détruire détruisis/39 détruire 79 --- > SFX yO détruire détruisis/40 détruire 77 11398c11459 < SFX yO détruire détruiras/24 détruire 31 --- > SFX yO détruire détruiras/25 détruire 31 11403c11464 < SFX yO détruire détruirais/39 détruire 33 --- > SFX yO détruire détruirais/40 détruire 33 11408,11409c11469,11470 < SFX yO détruire détruise/51 détruire 76 < SFX yO détruire détruises/24 détruire 75 --- > SFX yO détruire détruise/51 détruire 73 > SFX yO détruire détruises/25 détruire 72 11411c11472 < SFX yO détruire détruisisses/24 détruire 58 --- > SFX yO détruire détruisisses/25 détruire 58 11416c11477 < SFX yO détruire détruis/24 détruire 30 --- > SFX yO détruire détruis/25 détruire 30 11423,11425c11484,11486 < SFX yU uire ui uire 100 < SFX yU uire uis uire 77 < SFX yU uire uit uire 68 --- > SFX yU uire ui uire 102 > SFX yU uire uis uire 75 > SFX yU uire uit uire 69 11428c11489 < SFX yU uire uisent uire 35 --- > SFX yU uire uisent uire 34 11434c11495 < SFX yU uire uisis uire 79 --- > SFX yU uire uisis uire 77 11450,11451c11511,11512 < SFX yU uire uise uire 76 < SFX yU uire uises uire 75 --- > SFX yU uire uise uire 73 > SFX yU uire uises uire 72 11465,11474c11526,11535 < SFX yV ire it nfire 74 < SFX yV ire its nfire 73 < SFX yV ire ite nfire 65 < SFX yV ire ites nfire 66 < SFX yV ire is cire 116 < SFX yV ire ise cire 65 < SFX yV ire ises cire 66 < SFX yV ire i ffire 100 < SFX yV ire is ire 123 < SFX yV ire it ire 122 --- > SFX yV ire it nfire 71 > SFX yV ire its nfire 70 > SFX yV ire ite nfire 67 > SFX yV ire ites nfire 68 > SFX yV ire is cire 121 > SFX yV ire ise cire 67 > SFX yV ire ises cire 68 > SFX yV ire i ffire 102 > SFX yV ire is ire 128 > SFX yV ire it ire 127 11477c11538 < SFX yV ire isent ire 35 --- > SFX yV ire isent ire 34 11497,11498c11558,11559 < SFX yV ire ise ire 76 < SFX yV ire ises ire 75 --- > SFX yV ire ise ire 73 > SFX yV ire ises ire 72 11512,11514c11573,11575 < SFX yW ire i rire 100 < SFX yW ire is rire 123 < SFX yW ire it rire 122 --- > SFX yW ire i rire 102 > SFX yW ire is rire 128 > SFX yW ire it rire 127 11517c11578 < SFX yW ire ient rire 35 --- > SFX yW ire ient rire 34 11537,11538c11598,11599 < SFX yW ire ie rire 76 < SFX yW ire ies rire 75 --- > SFX yW ire ie rire 73 > SFX yW ire ies rire 72 11552,11553c11613,11614 < SFX yX nuire nui nuire 100 < SFX yX nuire nuit/14 nuire 68 --- > SFX yX nuire nui nuire 102 > SFX yX nuire nuit/14 nuire 69 11556c11617 < SFX yX nuire nuisent/14 nuire 35 --- > SFX yX nuire nuisent/14 nuire 34 11573c11634 < SFX yX nuire nuise/14 nuire 105 --- > SFX yX nuire nuise/14 nuire 109 11578,11579c11639,11640 < SFX yX nuire nuisons-nous nuire 226 < SFX yX nuire nuisez-vous nuire 225 --- > SFX yX nuire nuisons-nous nuire 242 > SFX yX nuire nuisez-vous nuire 241 11583,11585c11644,11646 < SFX yY ccire ccis/6 occire 116 < SFX yY ccire ccise/6 occire 65 < SFX yY ccire ccises/9 occire 66 --- > SFX yY ccire ccis/6 occire 121 > SFX yY ccire ccise/6 occire 67 > SFX yY ccire ccises/9 occire 68 11590,11595c11651,11656 < SFX yZ rire rit rire 74 < SFX yZ rire rits rire 73 < SFX yZ rire rite rire 65 < SFX yZ rire rites rire 66 < SFX yZ rire ris rire 77 < SFX yZ rire rit rire 68 --- > SFX yZ rire rit rire 71 > SFX yZ rire rits rire 70 > SFX yZ rire rite rire 67 > SFX yZ rire rites rire 68 > SFX yZ rire ris rire 75 > SFX yZ rire rit rire 69 11604,11639c11665,11700 < SFX q+ enir enu/6 enir 74 < SFX q+ enir enus/9 enir 73 < SFX q+ enir enue/6 enir 65 < SFX q+ enir enues/9 enir 66 < SFX q+ tir ti/6 tir 74 < SFX q+ tir tis/9 tir 73 < SFX q+ tir tie/6 tir 65 < SFX q+ tir ties/9 tir 66 < SFX q+ courir couru/6 courir 74 < SFX q+ courir courus/9 courir 73 < SFX q+ courir courue/6 courir 65 < SFX q+ courir courues/9 courir 66 < SFX q+ ivre écu vivre 74 < SFX q+ ivre écus vivre 73 < SFX q+ ivre écue vivre 65 < SFX q+ ivre écues vivre 66 < SFX q+ aire u aire 74 < SFX q+ aire us aire 73 < SFX q+ aire ue aire 65 < SFX q+ aire ues aire 66 < SFX q+ dre du dre 74 < SFX q+ dre dus dre 73 < SFX q+ dre due dre 65 < SFX q+ dre dues dre 66 < SFX q+ valoir valu .valoir 74 < SFX q+ valoir valus .valoir 73 < SFX q+ valoir value .valoir 65 < SFX q+ valoir values .valoir 66 < SFX q+ aître u/6 aître 74 < SFX q+ aître us/9 aître 73 < SFX q+ aître ue/6 aître 65 < SFX q+ aître ues/9 aître 66 < SFX q+ aitre u/6 aitre 74 < SFX q+ aitre us/9 aitre 73 < SFX q+ aitre ue/6 aitre 65 < SFX q+ aitre ues/9 aitre 66 --- > SFX q+ enir enu/6 enir 71 > SFX q+ enir enus/9 enir 70 > SFX q+ enir enue/6 enir 67 > SFX q+ enir enues/9 enir 68 > SFX q+ tir ti/6 tir 71 > SFX q+ tir tis/9 tir 70 > SFX q+ tir tie/6 tir 67 > SFX q+ tir ties/9 tir 68 > SFX q+ courir couru/6 courir 71 > SFX q+ courir courus/9 courir 70 > SFX q+ courir courue/6 courir 67 > SFX q+ courir courues/9 courir 68 > SFX q+ ivre écu vivre 71 > SFX q+ ivre écus vivre 70 > SFX q+ ivre écue vivre 67 > SFX q+ ivre écues vivre 68 > SFX q+ aire u aire 71 > SFX q+ aire us aire 70 > SFX q+ aire ue aire 67 > SFX q+ aire ues aire 68 > SFX q+ dre du dre 71 > SFX q+ dre dus dre 70 > SFX q+ dre due dre 67 > SFX q+ dre dues dre 68 > SFX q+ valoir valu .valoir 71 > SFX q+ valoir valus .valoir 70 > SFX q+ valoir value .valoir 67 > SFX q+ valoir values .valoir 68 > SFX q+ aître u/6 aître 71 > SFX q+ aître us/9 aître 70 > SFX q+ aître ue/6 aître 67 > SFX q+ aître ues/9 aître 68 > SFX q+ aitre u/6 aitre 71 > SFX q+ aitre us/9 aitre 70 > SFX q+ aitre ue/6 aitre 67 > SFX q+ aitre ues/9 aitre 68 11642,11650c11703,11711 < SFX q. enir enu/64 enir 100 < SFX q. tir ti/64 tir 100 < SFX q. courir couru/64 courir 100 < SFX q. ivre écu vivre 100 < SFX q. aire u aire 100 < SFX q. dre du dre 100 < SFX q. valoir valu/64 .valoir 100 < SFX q. aître u/64 aître 100 < SFX q. aitre u/64 aitre 100 --- > SFX q. enir enu/64 enir 102 > SFX q. tir ti/64 tir 102 > SFX q. courir couru/64 courir 102 > SFX q. ivre écu vivre 102 > SFX q. aire u aire 102 > SFX q. dre du dre 102 > SFX q. valoir valu/64 .valoir 102 > SFX q. aître u/64 aître 102 > SFX q. aitre u/64 aitre 102 diff -r source/Thunderbird.app/Contents/Resources/dictionaries/fr.dic target/Thunderbird.app/Contents/Resources/dictionaries/fr.dic 1,7c1,11 < 76462 < & 267 < 1er/28 135 < 1ers/28 128 < 1re/28 175 < 1res/28 188 < 2D 36 --- > 77848 > & 288 > 1er/23 150 > 1ers/23 131 > 1re/23 174 > 1res/23 198 > 1ʳᵉ/23 174 > 1ʳᵉˢ/23 198 > 1ᵉʳ/23 150 > 1ᵉʳˢ/23 131 > 2D 35 9,11c13,17 < 2e/28 81 < 2es 146 < 3D 36 --- > 2e/23 66 > 2es 132 > 2ᵉ/23 66 > 2ᵉˢ 132 > 3D 35 13,26c19,46 < 3e/28 81 < 3es 146 < 4e/28 81 < 4es 146 < 5e/28 81 < 5es 146 < 6e/28 81 < 6es 146 < 7e/28 81 < 7es 146 < 8e/28 81 < 8es 146 < 9e/28 81 < 9es 146 --- > 3e/23 66 > 3es 132 > 3ᵉ/23 66 > 3ᵉˢ 132 > 4e/23 66 > 4es 132 > 4ᵉ/23 66 > 4ᵉˢ 132 > 5e/23 66 > 5es 132 > 5ᵉ/23 66 > 5ᵉˢ 132 > 6e/23 66 > 6es 132 > 6ᵉ/23 66 > 6ᵉˢ 132 > 7e/23 66 > 7es 132 > 7ᵉ/23 66 > 7ᵉˢ 132 > 8e/23 66 > 8es 132 > 8ᵉ/23 66 > 8ᵉˢ 132 > 9e/23 66 > 9es 132 > 9ᵉ/23 66 > 9ᵉˢ 132 31c51 < ADP/6 78 --- > ADP/6 74 41c61 < AUD/28 7 --- > AUD/23 7 55a76 > Abdoul/6 14 61c82,83 < Abkhazie/27 20 --- > Abkhazie/28 20 > Aboukir/6 12 66,67c88,89 < Abymes 307 < Abyssinie/27 20 --- > Abymes 340 > Abyssinie/28 20 69c91 < Acadie/27 20 --- > Acadie/28 20 72c94 < Achaïe/27 20 --- > Achaïe/28 20 76a99 > Adalbert/6 14 81a105 > Addison/6 16 85c109 < Adige/27 17 --- > Adige/28 17 91c115 < Adour/27 17 --- > Adour/28 17 100,101c124,126 < Afghanistan/27 17 < Afrique/27 20 --- > Aelius/6 16 > Afghanistan/28 17 > Afrique/28 20 120c145 < Aigoual/27 17 --- > Aigoual/28 17 133c158 < Akira/6 90 --- > Akira/6 88 140c165 < Alaska/27 17 --- > Alaska/28 17 144c169 < Albanie/27 20 --- > Albanie/28 20 156c181 < Alceste/6 90 --- > Alceste/6 88 191c216 < Algérie/27 20 --- > Algérie/28 20 200c225 < Alix/6 90 --- > Alix/6 88 219,220c244,245 < Alpilles 306 < Alsace/27 20 --- > Alpilles 339 > Alsace/28 20 228a254 > Amadou/6 14 238c264 < Amazonie/27 20 --- > Amazonie/28 20 240c266 < Amblève/27 12 --- > Amblève/28 12 254c280,281 < Amédée/6 90 --- > Amédée/6 88 > Amélia/6 15 264c291 < Anatolie/27 20 --- > Anatolie/28 20 271,272c298,299 < Andalousie/27 20 < Andaman/27 37 --- > Andalousie/28 20 > Andaman/28 37 277c304 < Andorre/27 20 --- > Andorre/28 20 296,297c323,324 < Angleterre/27 20 < Angola/27 17 --- > Angleterre/28 20 > Angola/28 17 299,300c326,327 < Angoumois/27 17 < Anguilla/27 12 --- > Angoumois/28 17 > Anguilla/28 12 308c335 < Anjou/27 17 --- > Anjou/28 17 331c358 < Antarctique/27 17 --- > Antarctique/28 17 361c388 < Appenzell/27 17 --- > Appenzell/28 17 365,366c392,393 < Aquitaine/27 20 < Arabie/27 20 --- > Aquitaine/28 20 > Arabie/28 20 368,369c395,396 < Aragon/27 17 < Aral/27 12 --- > Aragon/28 17 > Aral/28 12 372c399 < Arbois/27 7 --- > Arbois/28 7 374c401 < Arcadie/27 20 --- > Arcadie/28 20 377c404,405 < Arctique/27 17 --- > Arctique/28 17 > Arcueil/6 12 379c407 < Ardèche/27 20 --- > Ardèche/28 20 381,382c409,410 < Argentine/27 20 < Argonne/27 20 --- > Argentine/28 20 > Argonne/28 20 384c412 < Argovie/27 20 --- > Argovie/28 20 393,395c421,423 < Arizona/27 17 < Ariège/27 20 < Arkansas/27 17 --- > Arizona/28 17 > Ariège/28 20 > Arkansas/28 17 403c431 < Armageddon/27 17 --- > Armageddon/28 17 407c435 < Armel/6 90 --- > Armel/6 88 411,413c439,441 < Armor/27 17 < Armorique/27 20 < Arménie/27 20 --- > Armor/28 17 > Armorique/28 20 > Arménie/28 20 414a443 > Arnie/6 14 420c449 < Artois/27 17 --- > Artois/28 17 428c457 < Asie/27 20 --- > Asie/28 20 437c466 < Assyrie/27 20 --- > Assyrie/28 20 442a472 > At 7 460c490 < Aube/27 20 --- > Aube/28 20 463c493 < Aubrac/27 17 --- > Aubrac/28 17 467c497 < Aude/27 20 --- > Aude/28 20 479c509 < Aunis/27 17 --- > Aunis/28 17 480a511 > Aurelio/6 14 493,499c524,530 < Australie/27 20 < Australie-Méridionale/27 20 < Australie-Occidentale/27 20 < Austrasie/27 20 < Autriche/27 20 < Autriche-Hongrie/27 20 < Auvergne/27 20 --- > Australie/28 20 > Australie-Méridionale/28 20 > Australie-Occidentale/28 20 > Austrasie/28 20 > Autriche/28 20 > Autriche-Hongrie/28 20 > Auvergne/28 20 504,505c535,536 < Aventin/27 17 < Aveyron/27 17 --- > Aventin/28 17 > Aveyron/28 17 516c547 < Azerbaïdjan/27 17 --- > Azerbaïdjan/28 17 518c549,550 < Azov/27 20 --- > Aziza/6 15 > Azov/28 20 527c559 < BEF/28 7 --- > BEF/23 7 596a629 > Bas-Sassandra 17 598c631 < Basic 114 --- > Basic 115 657a691 > Benghazi 12 662a697,698 > Bentham 16 > Benveniste 16 710a747 > Bidassoa 20 784c821 < Bornes 103 --- > Bornes 104 805c842 < Bourbon/1 213 --- > Bourbon/1 228 892a930 > Buxtehude 16 910a949 > Bérézina 20 920c959 < CAD/28 7 --- > CAD/23 7 931c970 < CHF/28 7 --- > CHF/23 7 938c977 < CNY/28 7 --- > CNY/23 7 939a979,981 > COD 7 > COI 7 > CO₂ 7 941c983 < CRS 78 --- > CRS 74 977a1020,1021 > Cambrésis 17 > Camelot 12 981c1025 < Camille 90 --- > Camille 88 1031a1076 > Carthagène 12 1035c1080 < Casey 90 --- > Casey 88 1090a1136 > Changchun 12 1103c1149 < Charlie 90 --- > Charlie 88 1203c1249 < Claude 90 --- > Claude 88 1307c1353 < Costa 36 --- > Costa 35 1334c1380 < Cro-Magnon 423 --- > Cro-Magnon 12 1384a1431 > DAB 7 1387c1434 < DG 78 --- > DG 74 1389c1436 < DJ 78 --- > DJ 74 1392c1439 < DRH 78 --- > DRH 74 1423a1471 > Daniell 16 1434c1482,1483 < Dany 90 --- > Dany 88 > Daoud 14 1501c1550,1551 < Dick 304 --- > Diarmuid 14 > Dick 336 1521c1571 < Diogène 90 --- > Diogène 88 1540a1591 > Dniestr 17 1542c1593 < Docteure/3 241 --- > Docteure/3 263 1552c1603 < Dominique 90 --- > Dominique 88 1564c1615 < Doreen 214 --- > Doreen 203 1583c1634 < Dr/1 196 --- > Dr/1 211 1589c1640 < Dre/1 180 --- > Dre/1 202 1592c1643 < Drew 90 --- > Drew 88 1644c1695 < EUR/28 7 --- > EUR/23 7 1690,1691c1741 < Elme/6 114 < Elohim/6 14 --- > Elme/6 115 1734c1784 < Espagne/27 20 --- > Espagne/28 20 1736c1786 < Esquilin/27 17 --- > Esquilin/28 17 1738,1739c1788,1789 < Essex/27 7 < Essonne/27 20 --- > Essex/28 7 > Essonne/28 20 1743,1744c1793,1794 < Estonie/27 20 < Estrie/27 20 --- > Estonie/28 20 > Estrie/28 20 1746c1796 < Estérel/27 17 --- > Estérel/28 17 1750c1800 < Etna/27 17 --- > Etna/28 17 1762c1812 < Eurasie/27 20 --- > Eurasie/28 20 1764c1814 < Eure-et-Loir/27 17 --- > Eure-et-Loir/28 17 1767c1817 < Europe/27 20 --- > Europe/28 20 1775a1826 > Evelyn/6 15 1781a1833 > Extrême-Orient/28 17 1782a1835 > Eylau/6 12 1790c1843 < FRF/28 7 --- > FRF/23 7 1816c1869,1870 < Faso 36 --- > Farouk 14 > Faso 35 1840a1895,1896 > Ferrare 12 > Ferraris 16 1855c1911 < Firefox 114 --- > Firefox 115 1900c1956 < Fortran 114 --- > Fortran 115 1933c1989 < Fred 90 --- > Fred 88 1945a2002 > Friedland 12 1957c2014 < Frédérique 90 --- > Frédérique 88 1971c2028 < Féroé 103 --- > Féroé 104 1973c2030 < GBP/28 40 --- > GBP/23 40 1975c2032 < GMT 268 --- > GMT 289 1996a2054 > Galileo 14 2017a2076 > Garnier 16 2113a2173 > Giraudoux 16 2126a2187 > Goa 12 2134a2196 > Goldoni 16 2160c2222 < Grammalecte 114 --- > Grammalecte 115 2176c2238 < Grenelle 114 --- > Grenelle 115 2181a2244 > Grigory 14 2184c2247 < Grisons 103 --- > Grisons 104 2185a2249 > Grothendieck 16 2250c2314 < HD 36 --- > HD 35 2252c2316 < HDMI 36 --- > HDMI 35 2255,2257c2319,2321 < HLM 78 < HS 36 < HT 155 --- > HLM 74 > HS 35 > HT 173 2273c2337 < Haley 90 --- > Haley 88 2294a2359,2360 > Hanoucca/1 2 > Hanoukka/1 2 2317a2384 > Haut-Sassandra 17 2354c2421 < Helvétie/27 20 --- > Helvétie/28 20 2392c2459 < Hippolyte/6 90 --- > Hippolyte/6 88 2396c2463 < Hispanie/27 20 --- > Hispanie/28 20 2417c2484 < Hong 36 --- > Hong 35 2449a2517 > Hussein/6 16 2453c2521 < Hyacinthe/6 90 --- > Hyacinthe/6 88 2484c2552 < I/28 244 --- > I/23 266 2488,2493c2556,2563 < II/28 42 < III/28 42 < IIIe/28 81 < IIde/28 175 < IIe/28 81 < IInd/28 135 --- > II/23 42 > III/23 42 > IIIe/23 66 > IIIᵉ/23 66 > IIde/23 174 > IIe/23 66 > IInd/23 150 > IIᵉ/23 66 2497c2567 < ISO/6 36 --- > ISO/6 35 2500c2570 < IV/28 42 --- > IV/23 42 2502,2504c2572,2576 < IVe/28 81 < IX/28 42 < IXe/28 81 --- > IVe/23 66 > IVᵉ/23 66 > IX/23 42 > IXe/23 66 > IXᵉ/23 66 2514c2586 < Idaho/27 17 --- > Idaho/28 17 2519c2591 < Ier/28 135 --- > Ier/23 150 2522c2594 < Iguaçu/27 20 --- > Iguaçu/28 20 2525c2597 < Iliad/9 214 --- > Iliad/9 203 2528,2529c2600,2601 < Ille-et-Vilaine/27 20 < Illinois/27 17 --- > Ille-et-Vilaine/28 20 > Illinois/28 17 2531c2603 < Illyrie/27 20 --- > Illyrie/28 20 2535c2607 < Indiana/27 17 --- > Indiana/28 17 2537,2540c2609,2613 < Indochine/27 20 < Indonésie/27 20 < Indre/27 20 < Indre-et-Loire/27 20 --- > Indira/6 15 > Indochine/28 20 > Indonésie/28 20 > Indre/28 20 > Indre-et-Loire/28 20 2546c2619 < Insulinde/27 20 --- > Insulinde/28 20 2548c2621 < Internet/9 114 --- > Internet/9 115 2551a2625 > Ionesco/6 16 2555,2557c2629,2631 < Irak/27 17 < Iran/27 17 < Ire/28 175 --- > Irak/28 17 > Iran/28 17 > Ire/23 174 2559,2560c2633,2634 < Irlande/27 20 < Iroise/27 20 --- > Irlande/28 20 > Iroise/28 20 2562c2636 < Irénée/6 90 --- > Irénée/6 88 2580c2654 < Islande/27 20 --- > Islande/28 20 2590,2592c2664,2666 < Istrie/27 20 < Isère/27 20 < Italie/27 20 --- > Istrie/28 20 > Isère/28 20 > Italie/28 20 2599a2674 > Ivy/6 15 2604a2680,2682 > Iéna/6 12 > Iʳᵉ/23 174 > Iᵉʳ/23 150 2608c2686 < JPY/28 7 --- > JPY/23 7 2610c2688 < Jackie 90 --- > Jackie 88 2621c2699 < Jaime 90 --- > Jaime 88 2650c2728 < JavaScript 114 --- > JavaScript 115 2698c2776 < Jessy 90 --- > Jessy 88 2704c2782,2783 < Jo 90 --- > Jiro 14 > Jo 88 2758a2838 > Juda 14 2800c2880 < K-O 36 --- > K-O 35 2803,2804c2883,2884 < KMF/28 7 < KO 36 --- > KMF/23 7 > KO 35 2893a2974 > Khalil 14 2897a2979 > Khomeini 16 2912c2994 < Kim 90 --- > Kim 88 2916a2999 > Kingstown 12 2978c3061 < Kuala 36 --- > Kuala 35 3001a3085 > Lacey 15 3029c3113 < LanguageTool 114 --- > LanguageTool 115 3045c3129 < Las 36 --- > Las 35 3070a3155 > Leah 15 3101c3186 < Leslie 90 --- > Leslie 88 3103a3189 > Lester 14 3111a3198 > Leyla 15 3112a3200 > Lhassa 12 3118c3206 < LibreOffice 114 --- > LibreOffice 115 3144a3233 > Linoa 15 3146c3235 < Linux 114 --- > Linux 115 3150a3240 > Lisbeth 15 3156c3246 < Lisp 114 --- > Lisp 115 3161a3252 > Liv 15 3208c3299 < Los 36 --- > Los 35 3213c3304 < Lou 90 --- > Lou 88 3257c3348 < Lucrèce 90 --- > Lucrèce 88 3267a3359 > Luisa 203 3309c3401 < Léonce 90 --- > Léonce 88 3312c3404 < Léonide 90 --- > Léonide 88 3323,3324c3415,3416 < M 195 < MM 239 --- > M 189 > MM 226 3331c3423 < Mac 114 --- > Mac 115 3343c3435 < Madame 197 --- > Madame 190 3347c3439 < Mademoiselle 197 --- > Mademoiselle 190 3369a3462 > Mahmoud 14 3378a3472 > Majorana 16 3402c3496 < Maman 197 --- > Maman 190 3503a3598 > Marisol 15 3516a3612 > Maroni 17 3606c3702 < Me/1 297 --- > Me/1 328 3610a3707 > Medan 12 3617c3714 < Meiji 90 --- > Meiji 88 3619c3716 < Melaine 90 --- > Melaine 88 3646,3647c3743,3744 < Mesdames 240 < Mesdemoiselles 240 --- > Mesdames 262 > Mesdemoiselles 262 3649c3746,3747 < Messieurs 239 --- > Messeigneurs 226 > Messieurs 226 3651c3749 < Messire/1 196 --- > Messire/1 211 3661c3759 < Mgr/1 196 --- > Mgr/1 211 3686a3785 > Mikey 14 3697a3797 > Millman 16 3717a3818 > Mirandole 338 3719a3821 > Mises 16 3727,3728c3829,3830 < Mlle/1 180 < Mme/1 180 --- > Mlle/1 202 > Mme/1 202 3736a3839 > Mohs 16 3762c3865,3866 < Monsieur 195 --- > Monseigneur 189 > Monsieur 189 3807c3911 < Morgan 90 --- > Morgan 88 3820a3925,3926 > Mouhamad 14 > Mouhammad 14 3836,3837c3942,3943 < Mr 195 < Mrs 197 --- > Mr 189 > Mrs 190 3863a3970 > Médine 12 3962c4069 < New 36 --- > New 35 3987c4094 < Nikita 90 --- > Nikita 88 3989a4097 > Nikola 14 4005c4113 < Noa 90 --- > Noa 88 4033c4141 < Notre-Dame 214 --- > Notre-Dame 203 4037c4145 < Nour 90 --- > Nour 88 4061a4170 > Nuuk 12 4086,4087c4195,4196 < ORL/6 78 < OS/6 78 --- > ORL/6 74 > OS/6 74 4096c4205 < Occitanie/27 20 --- > Occitanie/28 20 4100c4209 < Océanie/27 20 --- > Océanie/28 20 4111c4220 < Ohio/27 17 --- > Ohio/28 17 4115c4224 < Oklahoma/27 17 --- > Oklahoma/28 17 4124a4234 > Oléron/6 12 4134c4244 < OpenOffice/6 114 --- > OpenOffice/6 115 4140c4250 < Oregon/27 17 --- > Oregon/28 17 4149c4259 < Orne/27 20 --- > Orne/28 20 4161c4271 < Ossétie/27 20 --- > Ossétie/28 20 4165c4275 < Othe/27 17 --- > Othe/28 17 4172c4282 < Ouganda/27 17 --- > Ouganda/28 17 4179c4289 < Ouroboros/27 17 --- > Ouroboros/28 17 4183c4293 < Ouzbékistan/27 17 --- > Ouzbékistan/28 17 4192c4302 < P-DG 78 --- > P-DG 74 4195c4305,4306 < PDF 36 --- > PCV 7 > PDF 35 4197c4308 < PDG 78 --- > PDG 74 4199c4310 < PHP 114 --- > PHP 115 4200a4312 > PMA 40 4236c4348 < Papa 195 --- > Papa 189 4286c4398 < Pearl 36 --- > Pearl 35 4295c4407 < Penh 36 --- > Penh 35 4302c4414 < Perl 114 --- > Perl 115 4359a4472 > Pilar 15 4370a4484 > Pixérécourt 16 4418c4532 < Porto 36 --- > Porto 35 4428c4542 < Pr/1 196 --- > Pr/1 211 4434c4548 < Pre/1 180 --- > Pre/1 202 4445c4559 < Professeure/3 241 --- > Professeure/3 263 4447c4561 < Prolog 114 --- > Prolog 115 4502a4617 > Quintilien 14 4521c4636 < RUB/28 7 --- > RUB/23 7 4565a4681 > Recklinghausen 12 4587a4704 > Rett 16 4683c4800 < Ronsard 305 --- > Ronsard 337 4751c4868 < SDF 78 --- > SDF 74 4761c4878 < SS 78 --- > SS 74 4765c4882 < Sacha 90 --- > Sacha 88 4766a4884 > Saddam 14 4856a4975 > Salamanque 12 4872a4992 > Samarcande 12 4883a5004 > Samu 7 4886c5007 < San 36 --- > San 35 4892c5013 < Sandy 90 --- > Sandy 88 4918c5039 < Sasha 90 --- > Sasha 88 4920a5042 > Sassandra 17 4971a5094 > Scudéry 16 4973c5096 < SeaMonkey 114 --- > SeaMonkey 115 4986a5110 > Selim 14 5037c5161 < Sidney 90 --- > Sidney 88 5068c5192 < Sixtine 175 --- > Sixtine 174 5109a5234 > Souleymane 14 5118c5243 < Sri 36 --- > Sri 35 5134a5260 > Steinbeck 16 5138c5264 < Steph 90 --- > Steph 88 5157c5283 < Stuart/1 213 --- > Stuart/1 228 5238,5239c5364,5365 < TNT 78 < TTC 155 --- > TNT 74 > TTC 173 5247a5374 > Takeshi 14 5266a5394 > Tara 15 5311c5439 < Terrence 90 --- > Terrence 88 5354c5482 < Thunderbird 114 --- > Thunderbird 115 5428c5556 < Toni 90 --- > Toni 88 5438a5567 > Toufik 14 5453a5583 > Toutatis 14 5481a5612 > Tuamotu 37 5483,5484c5614,5615 < Tucson 78 < Tudor/1 213 --- > Tucson 74 > Tudor/1 228 5500c5631 < Twain 90 --- > Twain 88 5511a5643 > Tórshavn 12 5514c5646 < UMTS/27 7 --- > UMTS/28 7 5517c5649 < UNIX/9 114 --- > UNIX/9 115 5519c5651 < URSS/27 40 --- > URSS/28 40 5522c5654 < USB/6 36 --- > USB/6 35 5524,5525c5656,5657 < USD/28 7 < UV/6 78 --- > USD/23 7 > UV/6 74 5528c5660 < Ukraine/27 20 --- > Ukraine/28 20 5533c5665 < Ulster/27 20 --- > Ulster/28 20 5536,5537c5668,5669 < Ungava/27 12 < Unicode/27 114 --- > Ungava/28 12 > Unicode/28 115 5541c5673 < Uri/27 17 --- > Uri/28 17 5543,5544c5675,5676 < Ursule/6 90 < Uruguay/27 17 --- > Ursule/6 88 > Uruguay/28 17 5547c5679 < Utah/27 17 --- > Utah/28 17 5552c5684 < V/28 42 --- > V/23 42 5556c5688 < VI/28 42 --- > VI/23 42 5558,5563c5690,5698 < VII/28 42 < VIII/28 42 < VIIIe/28 81 < VIIe/28 81 < VIP 78 < VIe/28 81 --- > VII/23 42 > VIII/23 42 > VIIIe/23 66 > VIIIᵉ/23 66 > VIIe/23 66 > VIIᵉ/23 66 > VIP 74 > VIe/23 66 > VIᵉ/23 66 5567a5703 > Vadim 14 5611c5747 < Ve/28 81 --- > Ve/23 66 5722c5858 < Vve/1 180 --- > Vve/1 202 5730a5867 > Vᵉ/23 66 5732c5869 < WASP 96 --- > WASP 93 5736a5874 > Wagram 12 5813c5951 < Windows 114 --- > Windows 115 5830,5861c5968,6014 < X/28 42 < XAF/28 7 < XI/28 42 < XII/28 42 < XIII/28 42 < XIIIe/28 81 < XIIe/28 81 < XIV/28 42 < XIVe/28 81 < XIX/28 42 < XIXe/28 81 < XIe/28 81 < XL/28 42 < XLI/28 42 < XLII/28 42 < XLIII/28 42 < XLIIIe/28 81 < XLIIe/28 81 < XLIV/28 42 < XLIVe/28 81 < XLIX/28 42 < XLIXe/28 81 < XLIe/28 81 < XLV/28 42 < XLVI/28 42 < XLVII/28 42 < XLVIII/28 42 < XLVIIIe/28 81 < XLVIIe/28 81 < XLVIe/28 81 < XLVe/28 81 < XLe/28 81 --- > X/23 42 > XAF/23 7 > XI/23 42 > XII/23 42 > XIII/23 42 > XIIIe/23 66 > XIIIᵉ/23 66 > XIIe/23 66 > XIIᵉ/23 66 > XIV/23 42 > XIVe/23 66 > XIVᵉ/23 66 > XIX/23 42 > XIXe/23 66 > XIXᵉ/23 66 > XIe/23 66 > XIᵉ/23 66 > XL/23 42 > XLI/23 42 > XLII/23 42 > XLIII/23 42 > XLIIIe/23 66 > XLIIIᵉ/23 66 > XLIIe/23 66 > XLIIᵉ/23 66 > XLIV/23 42 > XLIVe/23 66 > XLIVᵉ/23 66 > XLIX/23 42 > XLIXe/23 66 > XLIXᵉ/23 66 > XLIe/23 66 > XLIᵉ/23 66 > XLV/23 42 > XLVI/23 42 > XLVII/23 42 > XLVIII/23 42 > XLVIIIe/23 66 > XLVIIIᵉ/23 66 > XLVIIe/23 66 > XLVIIᵉ/23 66 > XLVIe/23 66 > XLVIᵉ/23 66 > XLVe/23 66 > XLVᵉ/23 66 > XLe/23 66 > XLᵉ/23 66 5863,5913c6016,6090 < XOF/28 7 < XPF/28 7 < XV/28 42 < XVI/28 42 < XVII/28 42 < XVIII/28 42 < XVIIIe/28 81 < XVIIe/28 81 < XVIe/28 81 < XVe/28 81 < XX/28 42 < XXI/28 42 < XXII/28 42 < XXIII/28 42 < XXIIIe/28 81 < XXIIe/28 81 < XXIV/28 42 < XXIVe/28 81 < XXIX/28 42 < XXIXe/28 81 < XXIe/28 81 < XXL 36 < XXV/28 42 < XXVI/28 42 < XXVII/28 42 < XXVIII/28 42 < XXVIIIe/28 81 < XXVIIe/28 81 < XXVIe/28 81 < XXVe/28 81 < XXX/28 42 < XXXI/28 42 < XXXII/28 42 < XXXIII/28 42 < XXXIIIe/28 81 < XXXIIe/28 81 < XXXIV/28 42 < XXXIVe/28 81 < XXXIX/28 42 < XXXIXe/28 81 < XXXIe/28 81 < XXXV/28 42 < XXXVI/28 42 < XXXVII/28 42 < XXXVIII/28 42 < XXXVIIIe/28 81 < XXXVIIe/28 81 < XXXVIe/28 81 < XXXVe/28 81 < XXXe/28 81 < XXe/28 81 --- > XOF/23 7 > XPF/23 7 > XV/23 42 > XVI/23 42 > XVII/23 42 > XVIII/23 42 > XVIIIe/23 66 > XVIIIᵉ/23 66 > XVIIe/23 66 > XVIIᵉ/23 66 > XVIe/23 66 > XVIᵉ/23 66 > XVe/23 66 > XVᵉ/23 66 > XX/23 42 > XXI/23 42 > XXII/23 42 > XXIII/23 42 > XXIIIe/23 66 > XXIIIᵉ/23 66 > XXIIe/23 66 > XXIIᵉ/23 66 > XXIV/23 42 > XXIVe/23 66 > XXIVᵉ/23 66 > XXIX/23 42 > XXIXe/23 66 > XXIXᵉ/23 66 > XXIe/23 66 > XXIᵉ/23 66 > XXL 35 > XXV/23 42 > XXVI/23 42 > XXVII/23 42 > XXVIII/23 42 > XXVIIIe/23 66 > XXVIIIᵉ/23 66 > XXVIIe/23 66 > XXVIIᵉ/23 66 > XXVIe/23 66 > XXVIᵉ/23 66 > XXVe/23 66 > XXVᵉ/23 66 > XXX/23 42 > XXXI/23 42 > XXXII/23 42 > XXXIII/23 42 > XXXIIIe/23 66 > XXXIIIᵉ/23 66 > XXXIIe/23 66 > XXXIIᵉ/23 66 > XXXIV/23 42 > XXXIVe/23 66 > XXXIVᵉ/23 66 > XXXIX/23 42 > XXXIXe/23 66 > XXXIXᵉ/23 66 > XXXIe/23 66 > XXXIᵉ/23 66 > XXXV/23 42 > XXXVI/23 42 > XXXVII/23 42 > XXXVIII/23 42 > XXXVIIIe/23 66 > XXXVIIIᵉ/23 66 > XXXVIIe/23 66 > XXXVIIᵉ/23 66 > XXXVIe/23 66 > XXXVIᵉ/23 66 > XXXVe/23 66 > XXXVᵉ/23 66 > XXXe/23 66 > XXXᵉ/23 66 > XXe/23 66 > XXᵉ/23 66 5917c6094 < Xe/28 81 --- > Xe/23 66 5922a6100 > Xᵉ/23 66 5938a6117 > Yasser 14 5957c6136 < Yonne/27 20 --- > Yonne/28 20 5964a6144 > Youssouf 14 6004a6185 > Zina 15 6029c6210 < ab 69 --- > ab 65 6041c6222 < abalober 80 --- > abalober 82 6043c6224 < abalourdir 169 --- > abalourdir 188 6048c6229 < abandonner/12 13 --- > abandonner/12 107 6049a6231 > abandonnisme/2 1 6054c6236 < abasourdir/65 72 --- > abasourdir/65 76 6058c6240 < abat-carrage/27 17 --- > abat-carrage/28 17 6081c6263 < abattre/87 93 --- > abattre/87 91 6095c6277 < abcéder/66 34 --- > abcéder/66 36 6102a6285 > abdos-fessiers/9 21 6106,6108c6289,6291 < abeaudir 210 < abeausir 210 < abecquer 80 --- > abeaudir 224 > abeausir 224 > abecquer 82 6124c6307 < abicher 80 --- > abicher 82 6126c6309 < abigotir 231 --- > abigotir 252 6146c6329 < ablatir 169 --- > ablatir 188 6155,6156c6338,6339 < abloquir 178 < abluer 124 --- > abloquir 200 > abluer 130 6159c6342 < ablutionner 124 --- > ablutionner 130 6165c6348 < abolir/65 72 --- > abolir/65 134 6186c6369 < abonnir/45 70 --- > abonnir/45 79 6193c6376 < aborder/12 34 --- > aborder/12 36 6197c6380 < aborner 80 --- > aborner 82 6203,6204c6386,6387 < aboter 237 < abotter 237 --- > aboter 259 > abotter 259 6210,6211c6393,6394 < abougrir 282 < abouler/12 34 --- > abougrir 310 > abouler/12 36 6214c6397 < abouquer 80 --- > abouquer 82 6220c6403 < aboutir/103 193 --- > aboutir/103 187 6223,6224c6406,6407 < aboutonner 124 < aboyante/3 4 --- > aboutonner 130 > aboyante/5 4 6230c6413 < abracadabrer 124 --- > abracadabrer 130 6232c6415 < abraquer 80 --- > abraquer 82 6242c6425 < abreyer 124 --- > abreyer 130 6246c6429 < abricot/6 36 --- > abricot/6 35 6251c6434 < abrier 124 --- > abrier 130 6255c6438 < abriver 112 --- > abriver 117 6262c6445 < abroutir 178 --- > abroutir 200 6266c6449 < abrupto 69 --- > abrupto 65 6268c6451 < abrutir/45 70 --- > abrutir/45 142 6274c6457 < abréagir/103 87 --- > abréagir/103 92 6282c6465 < abrévier 80 --- > abrévier 82 6286,6287c6469,6470 < absconder 124 < abscondre 231 --- > absconder 130 > abscondre 252 6289c6472 < absconser 124 --- > absconser 130 6323c6506 < absoudre/110 67 --- > absoudre/110 85 6325c6508 < abstenir/247 119 --- > abstenir/247 123 6336,6337c6519,6520 < abstracto 69 < abstraire/101 67 --- > abstracto 65 > abstraire/101 153 6347a6531 > absurdo 65 6349c6533 < abuser/12 108 --- > abuser/12 126 6357a6542 > abyssopélagique/2 3 6359c6544 < abâtardir/45 70 --- > abâtardir/45 79 6361c6546 < abécher/60 5 --- > abécher/59 5 6367,6368c6552,6554 < abéquer 80 < abêtifier 80 --- > abénaquise/5 6 > abéquer 82 > abêtifier 82 6370c6556 < abêtir/45 70 --- > abêtir/45 79 6387c6573 < acajou/6 36 --- > acajou/6 35 6415c6601 < accalmir 210 --- > accalmir 224 6436c6622 < accepter/12 108 --- > accepter/12 100 6453c6639 < accidentogène/1 3 --- > accidentogène/2 3 6484c6670 < accomplir/45 70 --- > accomplir/45 142 6496c6682 < accorder/12 13 --- > accorder/12 141 6502a6689 > accornée/5 4 6512c6699 < accouardir 169 --- > accouardir 188 6514c6701 < accoucher/12 106 --- > accoucher/12 116 6525c6712 < accourcir/65 95 --- > accourcir/65 106 6527c6714 < accourir/117 88 --- > accourir/117 133 6546c6733 < accrocher/12 34 --- > accrocher/12 36 6548c6735 < accroire/164 121 --- > accroire/164 125 6550,6551c6737,6738 < accroitre/153 167 < accroupir/118 136 --- > accroitre/153 153 > accroupir/118 155 6553c6740 < accroître/153 167 --- > accroître/153 153 6558a6746 > accréter/59 100 6563c6751 < accueillir/138 71 --- > accueillir/138 154 6570c6758 < accumuler/12 34 --- > accumuler/12 36 6581c6769 < accéder/140 126 --- > accéder/140 325 6589c6777 < accélérer/66 34 --- > accélérer/66 36 6593c6781,6782 < accœurer 124 --- > accélérométrie/2 2 > accœurer 130 6597c6786 < acentrique/1 3 --- > acentrique/2 3 6619c6808 < acheter/99 34 --- > acheter/99 36 6622c6811 < achever/99 13 --- > achever/99 100 6630c6819 < achopper/12 179 --- > achopper/12 201 6647a6837 > aciclovir/2 1 6660,6661c6850,6851 < acido-basique/1 3 < acidobasique/1 3 --- > acido-basique/2 3 > acidobasique/2 3 6671c6861 < aciseler/95 5 --- > aciseler/96 5 6674c6864 < aciérer/60 5 --- > aciérer/59 5 6688c6878 < aconier/1 1 --- > aconier/2 1 6709c6899 < acquiescer/120 125 --- > acquiescer/120 210 6722c6912 < acquérir/105 67 --- > acquérir/105 98 6740a6931,6932 > acrodermatite/2 2 > acrodynie/2 2 6753a6946 > acrosine/2 2 6781a6975 > actinomycine/2 2 6806c7000 < activer/12 34 --- > activer/12 36 6846c7040 < acérer/60 5 --- > acérer/59 5 6874c7068 < acétophénone/1 2 --- > acétophénone/2 2 6887c7081 < ad 69 --- > ad 65 6900c7094 < adapter/12 13 --- > adapter/12 141 6904a7099 > addict/2 11 6928a7124 > aderne/2 2 6933c7129 < adhérer/140 126 --- > adhérer/140 210 6944a7141 > adimensionnelle/5 4 6956c7153 < adire/186 119 --- > adire/186 123 6968c7165 < adjoindre/69 67 --- > adjoindre/69 153 6972a7170,7171 > adjudante-chef/6 2 > adjudantes-chefs/9 37 6987c7186 < admettre/75 71 --- > admettre/75 154 6991c7190 < administrationaliser 124 --- > administrationaliser 130 7003c7202 < admirer/12 13 --- > admirer/12 100 7012a7212 > admonitrice/5 6 7020c7220 < adonis/6 78 --- > adonis/6 74 7022c7222 < adonner/47 98 --- > adonner/47 95 7025c7225 < adopter/11 5 --- > adopter/11 97 7028c7228 < adoptée/5 6 --- > adoptée/5 9 7041c7241 < adoucir/45 70 --- > adoucir/45 139 7076c7276 < adultérer/60 5 --- > adultérer/59 5 7080c7280 < advenir/245 148 --- > advenir/245 162 7101a7302 > adénomatose/2 2 7102a7304 > adénomectomie/2 2 7119c7321 < affadir/45 70 --- > affadir/45 79 7122c7324 < affaiblir/45 70 --- > affaiblir/45 139 7127c7329 < affainéantir 169 --- > affainéantir 188 7143c7345 < affamée/5 6 --- > affamée/5 9 7161c7363 < affermir/45 70 --- > affermir/45 79 7190c7392 < affirmer/12 13 --- > affirmer/12 107 7213,7214c7415,7416 < affolir 208 < affolée/5 6 --- > affolir 223 > affolée/5 9 7228c7430 < affranchir/45 70 --- > affranchir/45 186 7248c7450 < affréter/60 5 --- > affréter/59 5 7273a7476 > afibrinogénémie/2 2 7275c7478,7479 < afin/267 377 --- > afin/267 414 > aflatoxine/2 2 7284c7488 < afrikaans/6 36 --- > afrikaans/6 35 7288c7492 < afrikans/6 36 --- > afrikans/6 35 7290c7494 < afro/6 36 --- > afro/6 35 7298c7502 < after-shave/6 36 --- > after-shave/6 35 7310c7514 < agaillardir 169 --- > agaillardir 188 7380c7584 < agir/119 87 --- > agir/119 143 7398d7601 < agneau/49 1 7403c7606 < agnelle/2 2 --- > agnelle/18 9 7414c7617 < agonir/65 72 --- > agonir/65 76 7432c7635 < agrandir/45 70 --- > agrandir/45 142 7502c7705 < agréer/12 113 --- > agréer/12 118 7509c7712 < agrégée/5 6 --- > agrégée/5 9 7513c7716 < aguerrir/45 70 --- > aguerrir/45 79 7533c7736 < ahurir/65 72 --- > ahurir/65 76 7547,7548c7750,7751 < aider/12 108 < aides-comptables/9 103 --- > aider/12 107 > aides-comptables/9 104 7558,7559c7761,7762 < aigre-douce/6 175 < aigre-doux/6 135 --- > aigre-douce/6 174 > aigre-doux/6 150 7564,7565c7767,7768 < aigres-douces/9 188 < aigres-doux/9 128 --- > aigres-douces/9 198 > aigres-doux/9 131 7570c7773 < aigrir/45 94 --- > aigrir/45 99 7621,7622c7824,7825 < aimer/12 13 < aimée/5 6 --- > aimer/12 100 > aimée/5 9 7646a7850 > ajaccienne/5 6 7656c7860 < ajouter/12 108 --- > ajouter/12 107 7671c7875 < al 69 --- > al 65 7673a7878 > alabastre/2 1 7681,7682c7886,7887 < alangourer 124 < alanguir/45 70 --- > alangourer 130 > alanguir/45 79 7684a7890 > alaouite/2 11 7700c7906 < albinos/6 96 --- > albinos/6 93 7724c7930 < alcalinisante/3 4 --- > alcalinisante/5 4 7743c7949 < alcoholiser 80 --- > alcoholiser 82 7759c7965 < alcoolodépendante/3 6 --- > alcoolodépendante/5 6 7789c7995 < alentir/65 72 --- > alentir/65 76 7797c8003 < alestir 121 --- > alestir 125 7849a8056 > algérianisme/2 1 7872c8079 < alimenter/12 13 --- > alimenter/12 141 7877c8084 < aliquante/2 101 --- > aliquante/2 105 7886c8093 < alitée/5 6 --- > alitée/5 9 7902c8109 < alkaest/27 17 --- > alkaest/28 17 7917a8125 > allate/2 3 7924c8132 < aller/260 290 --- > aller/260 320 7932a8141 > allergène/2 3 7956a8166 > allodynie/2 2 7965c8175 < allonger/12 34 --- > allonger/12 36 7969c8179 < allopatrique/1 3 --- > allopatrique/2 3 7970a8181 > allopurinol/2 1 7975c8186 < allotir/65 72 --- > allotir/65 76 7976a8188 > allotrope/2 1 8015c8227 < allécher/60 5 --- > allécher/59 5 8021c8233 < allégir/65 72 --- > allégir/65 76 8025a8238 > allégorisme/2 1 8033,8034c8246,8247 < alléguer/60 5 < allégérir 121 --- > alléguer/59 5 > allégérir 125 8057c8270 < alourdir/45 70 --- > alourdir/45 79 8077a8291 > alphabétiseuse/5 9 8087c8301 < alter/6 129 --- > alter/6 137 8150c8364 < alunir/103 87 --- > alunir/103 92 8163c8377 < alâchir 169 --- > alâchir 188 8171c8385 < alénois/6 135 --- > alénois/6 150 8177c8391 < aléser/60 5 --- > aléser/59 5 8188c8402 < amaigrir/45 70 --- > amaigrir/45 79 8203c8417 < amarante/6 36 --- > amarante/6 35 8213c8427 < amaryllis/6 78 --- > amaryllis/6 74 8215c8429 < amasser/12 34 --- > amasser/12 36 8220c8434 < amatir/65 72 --- > amatir/65 76 8257c8471 < ambre/6 36 --- > ambre/6 35 8280c8494 < amener/99 13 --- > amener/99 141 8288c8502 < amerrir/103 87 --- > amerrir/103 92 8292c8506 < ameublir/65 72 --- > ameublir/65 76 8323a8538 > amikacine/2 2 8326c8541 < amincir/45 94 --- > amincir/45 99 8339c8554 < amish/6 96 --- > amish/6 93 8370c8585 < amnistiée/5 6 --- > amnistiée/5 9 8377c8592 < amodiatrice/3 9 --- > amodiatrice/5 9 8379c8594 < amoindrir/45 70 --- > amoindrir/45 79 8382c8597 < amollir/45 70 --- > amollir/45 79 8394c8609 < amorcer/12 34 --- > amorcer/12 36 8401c8616 < amortir/45 70 --- > amortir/45 79 8455a8671 > amphotéricine/2 2 8466a8683 > ampliatrice/5 9 8481c8698 < amputée/5 6 --- > amputée/5 9 8505c8722 < amuser/12 13 --- > amuser/12 100 8509c8726 < amuïr/250 136 --- > amuïr/250 155 8512a8730 > amygdalienne/5 6 8528a8747 > amène/2 3 8537c8756 < améliorer/12 13 --- > améliorer/12 103 8546c8765 < aménuiser 80 --- > aménuiser 82 8598a8818,8819 > anacyclique/2 3 > anacyclique/2 1 8612a8834 > analcime/2 1 8641c8863 < analyser/12 13 --- > analyser/12 100 8646,8647c8868,8869 < analystes-programmeurs/9 336 < analystes-programmeuses/9 353 --- > analystes-programmeurs/9 370 > analystes-programmeuses/9 387 8685a8908 > anarcho-capitaliste/2 11 8688a8912 > anarchocapitaliste/2 11 8697c8921 < anastomoser/47 98 --- > anastomoser/47 95 8698a8923 > anatase/2 2 8741c8966 < andalouse/2 102 --- > andalouse/2 112 8793c9018 < anesthésiée/5 6 --- > anesthésiée/5 9 8794a9020 > aneuploïde/2 3 8814a9041 > angiomatose/2 2 8817a9045 > angiosarcome/2 1 8835a9064 > anglo-allemande/5 6 8838a9068,9075 > anglo-autrichienne/5 6 > anglo-belge/2 11 > anglo-brésilienne/5 6 > anglo-bulgare/2 11 > anglo-canadienne/5 6 > anglo-chinoise/5 6 > anglo-danoise/5 6 > anglo-espagnole/5 6 8840a9078,9082 > anglo-irakienne/5 6 > anglo-iranienne/5 6 > anglo-irlandaise/5 6 > anglo-israélienne/5 6 > anglo-italienne/5 6 8842a9085,9090 > anglo-norvégienne/5 6 > anglo-néerlandaise/5 6 > anglo-pakistanaise/5 6 > anglo-polonaise/5 6 > anglo-portugaise/5 6 > anglo-russe/2 11 8844a9093,9095 > anglo-suédoise/5 6 > anglo-tchèque/2 11 > anglo-égyptienne/5 6 8854c9105 < angoisser/12 34 --- > angoisser/12 36 8856c9107 < angoissée/5 6 --- > angoissée/5 9 8867a9119 > anguillulose/2 2 8890a9143 > anhydrase/2 2 8917a9171 > animatique/2 2 8928a9183 > aniridie/2 2 8933a9189 > anisocytose/2 2 8939,8940d9194 < anisé/2 3 < anisée/2 2 8947a9202 > ankérite/2 2 8971c9226 < annoncer/12 13 --- > annoncer/12 107 9000c9255 < anoblir/45 70 --- > anoblir/45 79 9028c9283 < anordir/119 87 --- > anordir/119 92 9069a9325 > antennate/2 1 9076c9332 < anthologique/1 3 --- > anthologique/2 3 9080c9336 < anthracite/6 36 --- > anthracite/6 35 9091c9347 < anthropisée/3 4 --- > anthropisée/5 4 9106a9363 > anthropomorphisation/2 2 9135,9138c9392,9395 < anti/6 154 < anti-IVG/6 96 < anti-UV/6 36 < anti-VIH/6 36 --- > anti/6 178 > anti-IVG/6 93 > anti-UV/6 35 > anti-VIH/6 35 9141,9142c9398,9399 < anti-avortement/6 36 < anti-aérienne/3 4 --- > anti-avortement/6 35 > anti-aérienne/5 4 9144c9401 < anti-criminalité/6 36 --- > anti-criminalité/6 35 9146c9403 < anti-g/6 36 --- > anti-g/6 35 9149c9406 < anti-incendie/6 36 --- > anti-incendie/6 35 9157,9158c9414,9415 < anti-radiations/6 36 < anti-roulis/6 36 --- > anti-radiations/6 35 > anti-roulis/6 35 9163,9164c9420,9421 < anti-tabac 36 < anti-âge/6 36 --- > anti-tabac 35 > anti-âge/6 35 9194c9451 < antibiorésistante/3 4 --- > antibiorésistante/5 4 9198c9455 < antiblocage/6 36 --- > antiblocage/6 35 9204c9461 < antibrouillard/6 36 --- > antibrouillard/6 35 9208c9465 < antibruit/6 36 --- > antibruit/6 35 9210c9467 < antibuée/6 36 --- > antibuée/6 35 9213c9470 < anticalcaire/6 36 --- > anticalcaire/6 35 9223c9480 < anticellulite/6 36 --- > anticellulite/6 35 9233c9490 < antichômage/6 36 --- > antichômage/6 35 9235c9492 < anticiper/11 19 --- > anticiper/11 101 9255c9512 < anticopie/6 36 --- > anticopie/6 35 9259,9260c9516,9517 < anticorrosion/6 36 < anticriminalité/6 36 --- > anticorrosion/6 35 > anticriminalité/6 35 9275c9532 < antidopage/6 36 --- > antidopage/6 35 9277c9534 < antidoping/6 36 --- > antidoping/6 35 9279c9536 < antidouleur/6 36 --- > antidouleur/6 35 9283c9540 < antidrogue/6 36 --- > antidrogue/6 35 9285c9542 < antidumping/6 36 --- > antidumping/6 35 9287c9544 < antidémarrage/6 36 --- > antidémarrage/6 35 9298c9555 < antieffraction/6 36 --- > antieffraction/6 35 9322c9579 < antigang/6 36 --- > antigang/6 35 9325c9582 < antiglisse/6 36 --- > antiglisse/6 35 9331a9589 > antigrippale/18 4 9335c9593 < antihalo/6 36 --- > antihalo/6 35 9338c9596 < antihausse/6 36 --- > antihausse/6 35 9358a9617 > antilepton/2 1 9369a9629 > antimalarique/2 3 9387a9648 > antimusulmane/5 6 9411c9672 < antipanique/6 36 --- > antipanique/6 35 9425c9686 < antipatinage/6 36 --- > antipatinage/6 35 9431c9692 < antipersonnel/6 36 --- > antipersonnel/6 35 9436a9698 > antiplaquettaire/2 3 9442c9704 < antipolio/6 36 --- > antipolio/6 35 9445c9707 < antipollution/6 36 --- > antipollution/6 35 9477c9739 < antirejet/6 36 --- > antirejet/6 35 9479a9742 > antiretour/2 1 9482c9745 < antirides/6 36 --- > antirides/6 35 9485c9748 < antirouille/6 36 --- > antirouille/6 35 9488c9751 < antiroulis/6 36 --- > antiroulis/6 35 9516c9779 < antistress/6 36 --- > antistress/6 35 9529,9530c9792,9793 < antitabac/6 36 < antitache/6 36 --- > antitabac/6 35 > antitache/6 35 9544c9807 < antitrust/6 36 --- > antitrust/6 35 9547a9811 > antitumorale/18 4 9562c9826 < antiémeute/6 36 --- > antiémeute/6 35 9573a9838 > antébrachiale/18 4 9581a9847 > antéislamique/2 3 9592a9859 > antéro-ventrale/18 4 9594a9862 > antéroventrale/18 4 9605c9873 < anéantir/45 70 --- > anéantir/45 142 9666c9934 < apercevoir/97 67 --- > apercevoir/97 98 9671a9940 > aphakie/2 2 9697c9966 < apidologie/1 2 --- > apidologie/2 2 9704a9974 > apithérapie/2 2 9710c9980 < aplanir/45 70 --- > aplanir/45 79 9717c9987 < aplatir/45 70 --- > aplatir/45 139 9736a10007 > apocrine/2 3 9751c10022 < apolaire/1 3 --- > apolaire/2 3 9770a10042,10043 > apophatique/2 11 > apophatisme/2 1 9794c10067 < apostrophée/5 6 --- > apostrophée/5 9 9805c10078 < apparaitre/77 207 --- > apparaitre/77 176 9810c10083 < apparaître/77 207 --- > apparaître/77 176 9816c10089 < appareiller/12 34 --- > appareiller/12 36 9827c10100 < apparoir/213 88 --- > apparoir/213 110 9830c10103 < appartenir/244 176 --- > appartenir/244 253 9833c10106 < appauvrir/45 70 --- > appauvrir/45 79 9840c10113 < appeler/91 108 --- > appeler/91 107 9843c10116 < appelée/5 6 --- > appelée/5 9 9849c10122 < appendre/53 71 --- > appendre/53 78 9854c10127 < appesantir/45 70 --- > appesantir/45 79 9857c10130 < applaudir/45 232 --- > applaudir/45 186 9877c10150 < appointir/65 72 --- > appointir/65 76 9890c10163 < apprendre/94 67 --- > apprendre/95 166 9895c10168 < apprivoiser/12 111 --- > apprivoiser/12 140 9905,9906c10178,10179 < approcher/12 13 < approfondir/45 70 --- > approcher/12 107 > approfondir/45 79 9950c10223 < appuyer/12 34 --- > appuyer/12 107 9954c10227 < appéter/60 5 --- > appéter/59 5 9966c10239 < après/269 89 --- > après/269 87 9972c10245 < après-midi/6 78 --- > après-midi/6 74 9974c10247 < après-rasage/6 36 --- > après-rasage/6 35 9982c10255 < après-vente/6 36 --- > après-vente/6 35 10050,10051c10323,10325 < arabo-andalou/2 120 < arabo-andalouse/2 101 --- > arabo-andalou/2 124 > arabo-andalouse/2 105 > arabo-berbère/2 11 10057a10332 > arachidonique/2 3 10077c10352 < aranais/6 96 --- > aranais/6 93 10080a10356 > aranéologie/2 2 10145a10422 > archentéron/2 1 10151c10428 < archi-fausse/7 4 --- > archi-fausse/18 4 10164a10442 > archifacile/2 3 10196a10475 > archosaurien/2 1 10216c10495 < arcs-en-ciel/9 335 --- > arcs-en-ciel/9 369 10233c10512 < ardre 157 --- > ardre 177 10236c10515 < ardéchoise/3 6 --- > ardéchoise/5 6 10279c10558 < arguer/12 113 --- > arguer/12 118 10284c10563 < argumentatrice/3 9 --- > argumentatrice/5 9 10293c10572 < argüer/12 113 --- > argüer/12 118 10326a10606 > arité/2 2 10327a10608 > arkose/2 2 10366d10646 < arnaquée/5 6 10392c10672 < arpéger/60 19 --- > arpéger/59 19 10398c10678 < arquer/12 34 --- > arquer/12 36 10413c10693 < arranger/12 13 --- > arranger/12 103 10424c10704 < arriver/11 236 --- > arriver/11 258 10472c10752 < arriérer/60 5 --- > arriérer/59 5 10481c10761 < arroi/1 1 --- > arroi/2 1 10483c10763 < arrondir/45 70 --- > arrondir/45 79 10494c10774 < arrérager/47 98 --- > arrérager/47 95 10499c10779 < arrêter/12 34 --- > arrêter/12 100 10516a10797 > arsénopyrite/2 2 10528a10810 > arthroplastie/2 2 10537a10820 > articlier/2 1 10542c10825 < articuler/12 34 --- > articuler/12 36 10581a10865 > artériopathique/2 3 10592a10877,10879 > aryanisation/2 2 > aryballe/2 1 > aryballe/2 1 10668,10669c10955,10956 < ashkenaze/6 181 < ashkenazi/9 162 --- > ashkenaze/6 204 > ashkenazi/9 181 10713c11000 < asphyxier/12 34 --- > asphyxier/12 36 10723c11010 < aspirer/12 113 --- > aspirer/12 118 10732c11019 < assagir/45 70 --- > assagir/45 79 10736,10737c11023,11024 < assaillir/238 71 < assainir/65 72 --- > assaillir/238 78 > assainir/65 76 10748c11035 < assavoir 121 --- > assavoir 125 10756c11043 < assener/95 5 --- > assener/96 5 10758c11045 < asseoir/114 67 --- > asseoir/114 98 10760a11048 > asserter/11 97 10765c11053 < asservir/45 70 --- > asservir/45 79 10771c11059 < assez/177 115 --- > assez/177 120 10796c11084 < assistée/5 6 --- > assistée/5 9 10798c11086 < assiéger/60 5 --- > assiéger/59 5 10808c11096 < associée/5 6 --- > associée/5 9 10811c11099 < assoir/114 67 --- > assoir/114 98 10814c11102 < assombrir/45 70 --- > assombrir/45 139 10831c11119 < assortir/45 70 --- > assortir/45 79 10833c11121 < assoupir/45 70 --- > assoupir/45 79 10836c11124 < assouplir/45 70 --- > assouplir/45 79 10840c11128 < assourdir/45 94 --- > assourdir/45 99 10843c11131 < assouvir/45 70 --- > assouvir/45 79 10845c11133 < assujettir/45 70 --- > assujettir/45 255 10848c11136 < assumer/12 34 --- > assumer/12 36 10853,10854c11141,11142 < assurance-accidents/27 20 < assurance-chômage/27 20 --- > assurance-accidents/28 20 > assurance-chômage/28 20 10856c11144 < assurance-invalidité/27 20 --- > assurance-invalidité/28 20 10859c11147 < assurance-vieillesse/27 20 --- > assurance-vieillesse/28 20 10863c11151 < assurer/12 34 --- > assurer/12 36 10865c11153 < assurée/5 6 --- > assurée/5 9 10871c11159 < assyro-babylonienne/3 6 --- > assyro-babylonienne/5 6 10874,10875c11162,11163 < assécher/66 34 < asséner/60 5 --- > assécher/66 36 > asséner/59 5 10888a11177 > asthénopie/2 2 10907c11196 < astreindre/69 67 --- > astreindre/69 85 10915c11204 < astrocytaire/1 3 --- > astrocytaire/2 3 11038c11327 < atonals 128 --- > atonals 131 11070c11359 < attacher/12 34 --- > attacher/12 107 11073c11362 < attachée/5 6 --- > attachée/5 9 11079c11368 < attaquer/12 13 --- > attaquer/12 100 11084c11373 < atteindre/69 168 --- > atteindre/69 251 11087c11376 < atteler/91 34 --- > atteler/91 36 11092,11093c11381,11382 < attendre/53 93 < attendrir/45 70 --- > attendre/53 129 > attendrir/45 139 11097c11386 < attendu 89 --- > attendu 87 11102c11391 < attenter/120 125 --- > attenter/120 144 11104c11393 < attentionnelle/3 4 --- > attentionnelle/5 4 11113c11402 < atterrir/103 95 --- > atterrir/103 134 11135c11424 < attiédir/45 70 --- > attiédir/45 79 11139c11428 < attoucher/12 108 --- > attoucher/12 126 11145c11434 < attraire/6 121 --- > attraire/6 125 11156c11445 < attrape-tout/6 36 --- > attrape-tout/6 35 11182,11184c11471,11473 < au/268 258 < au-dedans/74 131 < au-dehors/74 131 --- > au/268 279 > au-dedans/74 146 > au-dehors/74 146 11186,11189c11475,11478 < au-delà/74 131 < au-dessous/74 131 < au-dessus/74 131 < au-devant/74 131 --- > au-delà/74 146 > au-dessous/74 146 > au-dessus/74 146 > au-devant/74 146 11195c11484 < aubergine/6 36 --- > aubergine/6 35 11203,11204c11492,11493 < auboise/3 6 < auburn/6 36 --- > auboise/5 6 > auburn/6 35 11209,11211c11498,11500 < aucun/74 182 < aucune/5 260 < aucune/74 182 --- > aucun/74 215 > aucune/5 281 > aucune/74 403 11226c11515 < audio/6 36 --- > audio/6 35 11227a11517 > audio/2 1 11228a11519 > audio-orale/18 4 11237a11529 > audioguidée/5 4 11242a11535 > audioorale/18 4 11248a11542 > audiovidéothèque/2 2 11251c11545 < audit/74 258 --- > audit/74 279 11270c11564 < augmenter/12 34 --- > augmenter/12 36 11272c11566 < augure/2 10 --- > augure/2 1 11274c11568 < augustale/7 4 --- > augustale/18 4 11296,11297c11590,11591 < auprès/107 185 < auquel 218 --- > auprès/107 205 > auquel 232 11319c11613 < aurore/6 36 --- > aurore/6 35 11331c11625 < aussi/9 115 --- > aussi/9 120 11341c11635 < australs/9 128 --- > australs/9 131 11356c11650 < autant/9 115 --- > autant/9 120 11362c11656 < auteurs-compositeurs 334 --- > auteurs-compositeurs 368 11379a11674,11675 > auto-analyse/2 2 > auto-apitoiement/2 1 11395a11692,11693 > auto-injecteur/2 1 > auto-inscription/2 2 11421a11720,11721 > autoanalyse/2 2 > autoapitoiement/2 1 11453c11753 < autoclavable/1 3 --- > autoclavable/2 3 11466c11766 < autocopiant/2 120 --- > autocopiant/2 124 11491a11792 > autodépréciation/2 2 11495c11796 < autodétruire/183 119 --- > autodétruire/183 123 11506c11807 < autofocus/6 36 --- > autofocus/6 35 11589c11890,11891 < autopsiée/5 6 --- > autopsique/2 3 > autopsiée/5 9 11600c11902 < autoriser/12 13 --- > autoriser/12 141 11603a11906 > autoritative/5 4 11608c11911 < autoréférence/1 2 --- > autoréférence/2 2 11613c11916 < autos-couchettes/6 36 --- > autos-couchettes/6 35 11657c11960 < autre 183 --- > autre 191 11664c11967 < autrui/6 183 --- > autrui/6 191 11669,11671c11972,11974 < aux/264 259 < auxdites/74 376 < auxdits/74 259 --- > aux/264 280 > auxdites/74 413 > auxdits/74 280 11677,11680c11980,11983 < auxquelles/85 220 < auxquels/85 219 < av 89 < avachir/45 94 --- > auxquelles/85 234 > auxquels/85 233 > av 87 > avachir/45 99 11699c12002 < avancer/12 34 --- > avancer/12 107 11702c12005 < avant/9 89 --- > avant/9 87 11726c12029 < avant-midi/6 78 --- > avant-midi/6 74 11742a12046 > avant-vente/2 11 11748c12052 < avants-centres/9 103 --- > avants-centres/9 104 11758,11759c12062,12063 < avec/9 89 < aveindre 121 --- > avec/9 87 > aveindre/69 125 11765c12069 < avenir 121 --- > avenir 125 11777a12082 > averroïsme/2 1 11781c12086 < avertir/65 72 --- > avertir/65 167 11794c12099 < aveulir/45 70 --- > aveulir/45 79 11806a12112 > avienne/5 4 11808c12114,12115 < avilir/45 70 --- > avignonnaise/5 6 > avilir/45 139 11822c12129 < aviser/12 34 --- > aviser/12 36 11844c12151 < avoir/180 296 --- > avoir/180 327 11856c12163 < avouée/5 6 --- > avouée/5 9 11897c12204 < ayes-ayes/9 333 --- > ayes-ayes/9 367 11906c12213 < azerty/6 36 --- > azerty/6 7 11911a12219 > azobenzène/2 1 11939c12247 < azygos/6 36 --- > azygos/6 35 11988a12297 > aéromaritime/2 3 12070c12379 < baby/40 1 --- > baby/38 1 12090,12091c12399,12400 < baccara 17 < baccarat 17 --- > baccara/1 1 > baccarat/1 1 12113a12423 > bacitracine/1 2 12118c12428 < bacon 17 --- > bacon/1 1 12149c12459 < badigeonner/4 108 --- > badigeonner/4 126 12154c12464 < badiner/10 18 --- > badiner/10 135 12176c12486 < bagarrer/4 98 --- > bagarrer/4 95 12181c12491 < baggy/40 1 --- > baggy/38 1 12196c12506 < baguenauder/4 98 --- > baguenauder/4 95 12214c12524 < baigner/4 34 --- > baigner/4 36 12239c12549 < baisser/4 34 --- > baisser/4 36 12259c12569 < balafrée/3 6 --- > balafrée/3 9 12268c12578 < balancer/4 34 --- > balancer/4 36 12280c12590 < balayer/4 5 --- > balayer/4 101 12364c12674 < baluchonner 124 --- > baluchonner 130 12372c12682 < bambin/1 1 --- > bambine/3 6 12416a12727 > bande-son 20 12419c12730 < bander/4 34 --- > bander/4 36 12423a12735 > bandes-son 37 12446c12758 < bannir/22 72 --- > bannir/22 76 12474c12786 < baptisée/3 6 --- > baptisée/3 9 12513c12825 < barbe/1 2 --- > barbe/1 10 12560c12872 < barder/142 107 --- > barder/142 111 12579a12892 > barisienne/3 6 12588c12901 < barman/40 1 --- > barman/38 1 12596a12910 > barogramme/1 1 12612a12927 > barotraumatique/1 3 12632c12947 < barrer/4 34 --- > barrer/4 36 12638c12953 < barrir/56 87 --- > barrir/56 92 12641a12957 > barrémienne/3 4 12725c13041 < basse-taille 117 --- > basse-taille 119 12736c13052 < basses-contre 352 --- > basses-contre 386 12741,12742c13057,13058 < basses-tailles 103 < basses-tiges 351 --- > basses-tailles 104 > basses-tiges 385 12761a13078 > bastiaise/3 6 12780c13097 < batailler/4 98 --- > batailler/4 95 12797c13114 < bateaux-lavoirs 332 --- > bateaux-lavoirs 366 12808c13125,13126 < bath 36 --- > bath 35 > bathmotrope/1 3 12814a13133 > bathypélagique/1 3 12824a13144 > batrachotoxine/1 2 12835a13156 > battledress 7 12838c13159 < battre/87 147 --- > battre/87 129 12842a13164 > batésienne/3 4 12888c13210 < be/32 199 --- > be/32 213 12894d13215 < beau/17 86 12899c13220 < beaucoup 115 --- > beaucoup 120 12904a13226 > beauvaisienne/3 6 12951c13273 < bel 135 --- > bel 150 12966c13288 < belle/1 102 --- > belle/7 6 13021a13344 > benzonitrile/1 1 13022a13346 > benzoyle/1 1 13023a13348 > benzyle/1 1 13061c13386 < berlurer/4 98 --- > berlurer/4 95 13080c13405 < berzingue 69 --- > berzingue 65 13100a13426 > bestialiser/4 103 13127a13454 > bi-active/3 4 13129a13457 > bi-invariante/3 4 13130a13459 > biactive/3 4 13134a13464 > biannuelle/3 4 13163a13494 > bibliologue/1 10 13205c13536 < bichoter/142 107 --- > bichoter/142 111 13221c13552 < bicorps 36 --- > bicorps 35 13249c13580 < bidonner/4 108 --- > bidonner/4 126 13262,13263c13593,13594 < bien 36 < bien 381 --- > bien 35 > bien 418 13299c13630 < bienvenir 157 --- > bienvenir 177 13302c13633 < bienêtre 17 --- > bienêtre/1 1 13308a13640 > biffeton/1 1 13315a13648 > bifton/1 1 13461c13794 < bio 36 --- > bio 35 13474a13808 > bioagresseur/1 1 13480a13815 > biocatalyse/1 2 13492a13828 > bioconversion/1 2 13500a13837 > biodéchet/1 1 13695a14033 > bisquine/1 2 13716c14054 < bistre 36 --- > bistre 35 13784a14123 > blablateuse/3 9 13799c14138 < blaguer/4 34 --- > blaguer/4 36 13802c14141 < blaireau/17 1 --- > blairelle/7 9 13815c14154 < blanchir/22 94 --- > blanchir/22 99 13829a14169 > blanquisme/1 1 13840c14180 < blasphémer/26 19 --- > blasphémer/27 19 13874c14214 < blettir/56 87 --- > blettir/56 92 13881c14221 < bleuir/22 95 --- > bleuir/22 106 13888c14228 < blinder/4 34 --- > blinder/4 36 13928c14268 < blondir/22 95 --- > blondir/22 106 13936c14276 < blottir/22 136 --- > blottir/22 155 13940c14280 < blouser/4 34 --- > blouser/4 36 13971c14311 < blêmir/22 87 --- > blêmir/22 92 14001c14341 < body/40 1 --- > body/38 1 14025c14365 < boire/195 93 --- > boire/195 175 14037c14377 < boit-sans-soif 78 --- > boit-sans-soif 74 14049c14389 < bolas 78 --- > bolas 74 14076a14417,14418 > bolométrique/1 3 > boloss 74 14118c14460 < bondir/56 87 --- > bondir/56 143 14152a14495 > bonnet-de-prêtre 17 14156a14500 > bonnets-de-prêtre 21 14202c14546 < bordeaux 36 --- > bordeaux 35 14232a14577 > bornite/1 2 14243a14589 > boruration/1 2 14245c14591 < boréals 128 --- > boréals 131 14257,14258c14603,14604 < boss 78 < boss/40 10 --- > boss 74 > boss/38 10 14294c14640 < botter/4 34 --- > botter/4 36 14336c14682 < bouchonner/4 34 --- > bouchonner/4 36 14347c14693 < boucler/4 34 --- > boucler/4 36 14354c14700 < bouder/4 34 --- > bouder/4 36 14370c14716 < bouffer/4 34 --- > bouffer/4 36 14374c14720 < bouffir/22 95 --- > bouffir/22 106 14376a14723 > bouffonesque/1 3 14387c14734 < bouger/4 34 --- > bouger/4 100 14393a14741 > bougonnerie/1 2 14408c14756 < bouillir/166 110 --- > bouillir/166 113 14464c14812 < boumer/71 107 --- > boumer/71 111 14514a14863 > bourras 7 14526c14875 < bourrer/4 34 --- > bourrer/4 36 14542c14891,14892 < bourses-à-pasteur 350 --- > bourses-à-pasteur 384 > boursette/1 2 14574a14925 > bout-rimé 17 14613c14964 < boutons-d'or 331 --- > boutons-d'or 365 14641c14992 < box/40 1 --- > box/38 1 14684a15036 > brachygraphie/1 2 14714c15066 < brailler/4 34 --- > brailler/4 36 14720c15072 < braire/156 88 --- > braire/156 110 14737c15089 < brancher/4 34 --- > brancher/4 36 14748c15100 < brandir/22 72 --- > brandir/22 167 14750c15102 < brandy/40 1 --- > brandy/38 1 14752a15105 > branlage/1 1 14758c15111 < branler/4 34 --- > branler/4 36 14763a15117 > branquignole/3 6 14770c15124 < braquer/4 34 --- > braquer/4 36 14774c15128 < bras-le-corps 69 --- > bras-le-corps 65 14829a15184 > brestoise/3 6 14849c15204 < bric 69 --- > bric 65 14871a15227 > brigadiste/1 10 14913c15269 < brique 36 --- > brique 35 14957c15313 < briser/4 34 --- > briser/4 36 15004a15361 > bromacétique/1 3 15049c15406 < bronzer/4 34 --- > bronzer/4 36 15054a15412 > brookite/1 2 15060c15418 < brosser/4 34 --- > brosser/4 36 15075c15433 < brouillasser/71 107 --- > brouillasser/71 111 15120c15478 < bruiner/71 107 --- > bruiner/71 111 15123,15124c15481,15482 < bruir/22 72 < bruire/185 88 --- > bruir/22 76 > bruire/185 300 15139c15497 < brule-pourpoint 69 --- > brule-pourpoint 65 15141c15499 < bruler/4 34 --- > bruler/4 36 15152c15510 < brumasser/71 107 --- > brumasser/71 111 15154c15512 < brumer/71 107 --- > brumer/71 111 15158a15517 > brumisation/1 2 15160c15519 < brunch/40 1 --- > brunch/38 1 15164c15523 < brunir/22 94 --- > brunir/22 99 15182a15542,15543 > brutalisme/1 1 > brutaliste/1 11 15199c15560 < brèche-dent 96 --- > brèche-dent 93 15208c15569 < bréler/26 5 --- > bréler/27 5 15211c15572 < brésiller/4 34 --- > brésiller/4 36 15225c15586 < brûle-pourpoint 69 --- > brûle-pourpoint 65 15227c15588 < brûler/4 34 --- > brûler/4 36 15267c15628 < budgéter/26 5 --- > budgéter/27 5 15279c15640 < buggy/40 1 --- > buggy/38 1 15284a15646 > buguée/3 4 15290a15653 > buissonnet/1 1 15301c15664 < bull-finch/40 1 --- > bull-finch/38 1 15352c15715 < burkinabè 96 --- > burkinabè 93 15376c15739 < bush/40 1 --- > bush/38 1 15379c15742 < businessman/40 1 --- > businessman/38 1 15381c15744 < businesswoman/40 2 --- > businesswoman/38 2 15389a15753 > butanal/1 1 15395c15759 < buter/4 34 --- > buter/4 36 15470c15834 < bâtir/22 70 --- > bâtir/22 79 15513c15877 < bée/1 101 --- > bée/1 105 15559c15923 < bénir/22 72 --- > bénir/22 76 15569c15933 < bénéficier/10 126 --- > bénéficier/10 145 15577,15578c15941,15942 < bépo 36 < béquer/26 5 --- > bépo 7 > béquer/27 5 15632c15996 < bêtasse/1 102 --- > bêtasse/1 112 15641c16005 < bêtifier/4 34 --- > bêtifier/4 36 15657,15658c16021,16022 < c'est-à-dire 163 < c.-à-d 163 --- > c'est-à-dire 182 > c.-à-d 182 15666a16031 > caballero/1 1 15669a16035 > cabanette/1 2 15708c16074 < cabus 160 --- > cabus 179 15711c16077 < caca 36 --- > caca 35 15768a16135 > cacherout/1 2 15862c16229 < café 36 --- > café 35 15864c16231 < café-au-lait 36 --- > café-au-lait 35 15915c16282 < cailler/4 34 --- > cailler/4 36 15975c16342 < calcifiée/3 4 --- > calcifier/4 103 15984a16352 > calcitonine/1 2 16017,16018c16385,16386 < caler/4 34 < caleter/36 98 --- > caler/4 36 > caleter/36 95 16034a16403 > caliciforme/1 3 16055a16425 > callose/1 2 16064c16434 < calmir/56 87 --- > calmir/56 92 16065a16436 > caloduc/1 1 16074a16446,16447 > calopsitte/1 112 > calorescence/1 2 16097c16470 < calter/4 98 --- > calter/4 95 16157c16530 < cameraman/40 1 --- > cameraman/38 1 16190c16563 < camper/4 98 --- > camper/4 95 16236a16610 > canara/1 1 16276c16650 < candir/22 136 --- > candir/22 155 16314c16688 < cannelle 36 --- > cannelle 35 16330a16705 > cannoise/3 6 16389c16764 < cantonner/4 34 --- > cantonner/4 36 16435c16810 < capella 132 --- > capella 147 16443c16818 < capillotractée/3 4 --- > capillotracter/4 101 16462c16837 < capitaux-risques 330 --- > capitaux-risques 364 16491c16866 < cappella 132 --- > cappella 147 16503a16879 > caprique/1 3 16505a16882 > caproïque/1 3 16557c16934 < car 163 --- > car 182 16559c16936 < car-ferry/40 1 --- > car-ferry/38 1 16589c16966 < caramboler/4 34 --- > caramboler/4 36 16594c16971 < caramel 36 --- > caramel 35 16597c16974 < caraméliser/4 34 --- > caraméliser/4 36 16621a16999 > carbonara/1 2 16641a17020 > carbosulfure/1 1 16671a17051 > carcinose/1 2 16775c17155 < carmin 36 --- > carmin 35 16793a17174 > carnitine/1 2 16807c17188 < carotide/1 102 --- > carotide/1 112 16810c17191 < carotte 36 --- > carotte 35 16834a17216 > carpologie/1 2 16923c17305 < caréner/26 19 --- > caréner/27 19 16946c17328 < casher 36 --- > casher 35 16967c17349 < casse-cou 96 --- > casse-cou 93 16970c17352 < casse-couilles 96 --- > casse-couilles 93 16975c17357 < casse-cul 96 --- > casse-cul 93 16982c17364 < casse-gueule 96 --- > casse-gueule 93 16990c17372 < casse-pieds 96 --- > casse-pieds 93 16997c17379 < casse-tout 96 --- > casse-tout 93 17002c17384 < casser/4 34 --- > casser/4 36 17018c17400 < castagner/4 34 --- > castagner/4 36 17025a17408 > castillonnaise/3 6 17063a17447 > catagène/1 3 17075a17460,17461 > catalographie/1 2 > catalographique/1 3 17120c17506 < cathedra 69 --- > cathedra 65 17126a17513 > catholicisante/3 4 17140c17527 < catimini 69 --- > catimini 65 17145c17532 < catir/22 72 --- > catir/22 76 17189c17576 < caudine/1 101 --- > caudine/1 105 17194c17581 < causa 155 --- > causa 173 17208a17596 > caussenarde/3 6 17227c17615 < cavalcadour/1 120 --- > cavalcadour/1 124 17229c17617 < cavaler/4 34 --- > cavaler/4 36 17237c17625 < caver/4 34 --- > caver/4 36 17263,17264c17651,17652 < ce 263 < ceci 171 --- > ce 284 > ceci 192 17267c17655 < ceindre/69 67 --- > ceindre/69 85 17273c17661 < cela 171 --- > cela 192 17277,17281c17665,17669 < celle/1 372 < celle-ci 256 < celle-là 256 < celles-ci 257 < celles-là 257 --- > celle/1 409 > celle-ci 277 > celle-là 277 > celles-ci 278 > celles-là 278 17306,17308c17694,17696 < celui 171 < celui-ci 171 < celui-là 171 --- > celui 192 > celui-ci 192 > celui-là 192 17326c17714 < censurer/4 5 --- > censurer/4 101 17330c17718 < cent/96 42 --- > cent/93 42 17364c17752 < centre-avant 117 --- > centre-avant 119 17369c17757 < centres-avant 103 --- > centres-avant 104 17381a17770 > centromérique/1 3 17404c17793 < cerf-voliste 181 --- > cerf-voliste 204 17407c17796 < cerfs-volistes 162 --- > cerfs-volistes 181 17409c17798 < cerise 36 --- > cerise 35 17415c17804 < cerner/4 5 --- > cerner/4 97 17419c17808 < certaine/3 384 --- > certaine/3 421 17439c17828 < ces 397 --- > ces 434 17444c17833 < cesser/4 106 --- > cesser/4 101 17452,17454c17841,17843 < cet 395 < cetera 7 < cette 396 --- > cet 432 > cetera 65 > cette 433 17456,17458c17845,17847 < ceux 221 < ceux-ci 221 < ceux-là 221 --- > ceux 236 > ceux-ci 236 > ceux-là 236 17460c17849 < cf 202 --- > cf 216 17464a17854 > chaabi/1 1 17477,17478c17867,17868 < chacun 253 < chacune 255 --- > chacun 274 > chacune 276 17481d17870 < chafiisme/1 1 17483a17873 > chaféisme/1 1 17492a17883 > chaille/1 2 17515a17907 > chalcolite/1 2 17531c17923 < chaloir/214 88 --- > chaloir/214 110 17540a17933 > chaluter/4 135 17580c17973 < chamois 36 --- > chamois 35 17621c18014 < chancir/22 194 --- > chancir/22 209 17637c18030 < changer/4 111 --- > changer/4 140 17653c18046 < chanter/4 19 --- > chanter/4 101 17659c18052 < chantilly 78 --- > chantilly 74 17665a18059 > chantournement/1 1 17672c18066 < chanvreuse/1 101 --- > chanvreuse/1 105 17713c18107 < chaque 388 --- > chaque 425 17742c18136 < charger/4 34 --- > charger/4 36 17744c18138 < chargée/3 6 --- > chargée/3 9 17768c18162 < charmer/4 19 --- > charmer/4 101 17811c18205 < chartes-parties 349 --- > chartes-parties 383 17840c18234 < chasser/4 19 --- > chasser/4 101 17864c18258 < chatouilleux 129 --- > chatouilleux 137 17879a18274 > chaudronner/4 97 17894a18290 > chauffe-ballon/1 1 17902a18299 > chauffe-main/1 1 17905a18303 > chauffe-pain/1 1 17910c18308 < chauffer/4 34 --- > chauffer/4 36 17933c18331 < chausser/4 34 --- > chausser/4 36 17947c18345 < chauvir/56 87 --- > chauvir/56 92 17953a18352 > chaâbi/1 1 17962a18362 > cheap 35 18015c18415 < chercher/4 34 --- > chercher/4 100 18022c18422 < cherry/40 1 --- > cherry/38 1 18042c18442 < chevaucher/4 34 --- > chevaucher/4 36 18053a18454 > chevillage/1 1 18078c18479 < chez 89 --- > chez 87 18102c18503 < chicaner/4 111 --- > chicaner/4 140 18137c18538 < chiens-assis 329 --- > chiens-assis 363 18139c18540 < chier/4 34 --- > chier/4 36 18147c18548 < chiffonner/4 34 --- > chiffonner/4 36 18153c18554 < chiffrer/4 34 --- > chiffrer/4 36 18163c18564 < chili 17 --- > chili/1 1 18222a18624 > chiqué/1 1 18231a18634 > chironome/1 1 18258a18662 > chloracétone/1 2 18265a18670 > chloreuse/7 4 18298c18703 < chocolat 36 --- > chocolat 35 18307,18308c18712,18713 < choir/159 88 < choisir/22 72 --- > choir/159 110 > choisir/22 134 18311a18717,18719 > cholestase/1 2 > cholestéatome/1 1 > cholestérine/1 2 18363a18772 > chorioméningite/1 2 18364a18774 > chorionique/1 3 18422c18832 < chows-chows 328 --- > chows-chows 362 18442a18853 > chromaffine/1 3 18476a18888 > chromotropique/1 3 18479a18892 > chronaxique/1 3 18488a18902 > chronodégradable/1 3 18496c18910 < chronométrer/26 5 --- > chronométrer/27 5 18521a18936 > chrysotile/1 1 18524c18939 < chrétien-démocrate 145 --- > chrétien-démocrate 165 18526c18941 < chrétienne-démocrate 138 --- > chrétienne-démocrate 157 18528,18529c18943,18944 < chrétiennes-démocrates 161 < chrétiens-démocrates 137 --- > chrétiennes-démocrates 180 > chrétiens-démocrates 156 18551c18966 < chuter/10 18 --- > chuter/10 135 18562c18977 < châtaigne 36 --- > châtaigne 35 18564c18979 < châtaigner/4 98 --- > châtaigner/4 95 18598a19014 > chélater/4 101 18607a19024 > chéloïdienne/3 4 18616a19034 > chérimole/1 2 18618c19036 < chérir/22 72 --- > chérir/22 167 18634c19052 < ci 405 --- > ci 442 18641,18643c19059,19061 < ci-gisent 278 < ci-git 230 < ci-gît 230 --- > ci-gisent 303 > ci-git 249 > ci-gît 249 18666c19084 < cicatriser/4 34 --- > cicatriser/4 36 18709a19128 > cimétidine/1 2 18718c19137,19138 < cingler/4 34 --- > cinglement/1 1 > cingler/4 36 18802c19222 < circoncire/108 71 --- > circoncire/108 78 18813c19233 < circonscrire/78 67 --- > circonscrire/78 85 18820c19240 < circonvenir/70 71 --- > circonvenir/70 78 18829c19249 < circulariser/4 170 --- > circulariser/4 103 18860c19280 < cis-trans 36 --- > cis-trans 35 18874a19295 > cisplatine/1 1 18881c19302 < cit 268 --- > cit 289 18898c19319 < citron 36 --- > citron 35 18913c19334,19335 < civette/3 9 --- > civet/1 1 > civette/1 2 18987c19409 < clapir/22 194 --- > clapir/22 209 19004c19426 < claquer/4 34 --- > claquer/4 36 19017c19439 < clash/40 1 --- > clash/38 1 19019c19441 < clasher/10 211 --- > clasher/10 135 19053c19475 < clausus 36 --- > clausus 35 19081c19503 < clean 36 --- > clean 35 19095c19517 < clergyman/40 1 --- > clergyman/38 1 19097a19520 > clermontoise/3 6 19115c19538 < cligner/4 106 --- > cligner/4 116 19183a19607 > cloacale/7 4 19190c19614 < cloche-pied 69 --- > cloche-pied 65 19192c19616 < clochepied 69 --- > clochepied 65 19205a19630 > clonable/1 3 19222c19647 < clore/208 71 --- > clore/208 113 19274c19699 < cnidaire/1 3 --- > cnidaire/1 1 19276a19702 > cnidocyste/1 1 19279a19706 > co-infection/1 2 19283c19710 < coach/40 1 --- > coach/38 1 19299c19726 < coaguler/4 34 --- > coaguler/4 36 19337a19765 > cocaïer/1 1 19345a19774 > coccobacille/1 1 19376a19806 > coconstruire/76 91 19383a19814 > cocotte-minute 20 19384a19816 > cocottes-minute 37 19439a19872 > coextrusion/1 2 19466c19899 < cogner/4 108 --- > cogner/4 126 19479c19912 < cogérer/26 5 --- > cogérer/27 5 19496c19929 < coi/1 120 --- > coi/1 124 19507a19941 > coinche/1 2 19511c19945 < coite/1 101 --- > coite/1 105 19540a19975 > colectomie/1 2 19565c20000 < coll 78 --- > coll 74 19593a20029 > collectionnement/1 1 19595a20032 > collectionnite/1 2 19604a20042 > collembole/1 1 19607c20045 < coller/4 111 --- > coller/4 140 19620a20059 > collinaire/1 3 19644a20084 > colmarienne/3 6 19719a20160 > coltineur/1 1 19736c20177 < com/32 199 --- > com/32 213 19748c20189 < combattre/87 189 --- > combattre/87 166 19751c20192 < combien 224 --- > combien 239 19783a20225 > comite/1 1 19793c20235 < commander/4 111 --- > commander/4 140 19800c20242 < comme 400 --- > comme 437 19802c20244 < commencer/4 111 --- > commencer/4 316 19810c20252 < comment 224 --- > comment 239 19816c20258 < commercer/10 18 --- > commercer/10 135 19827c20269 < commettre/75 67 --- > commettre/75 98 19851c20293 < commodo 69 --- > commodo 65 19885c20327 < communiquer/4 34 --- > communiquer/4 36 19890a20333 > commutabilité/1 2 19924c20367 < comparaitre/100 88 --- > comparaitre/100 133 19932c20375 < comparaître/100 88 --- > comparaître/100 133 19934c20377 < comparoir/215 88 --- > comparoir/215 110 19948c20391 < compatir/56 209 --- > compatir/56 314 19969c20412 < complaire/128 176 --- > complaire/128 253 19982a20426 > compliance/1 2 19992c20436 < comploter/4 106 --- > comploter/4 116 20007c20451 < compléter/26 13 --- > compléter/27 13 20027c20471 < composer/4 34 --- > composer/4 36 20044,20045c20488,20489 < compound 36 < comprendre/94 67 --- > compound 35 > comprendre/95 91 20058c20502 < compromettre/75 93 --- > compromettre/75 91 20074c20518 < comptant 129 --- > comptant 137 20089c20533 < compter/4 34 --- > compter/4 36 20113a20558 > compétitionner/10 135 20117a20563 > comtat/1 1 20136c20582 < concaténer/26 5 --- > concaténer/27 5 20159c20605 < concernant 89 --- > concernant 87 20165c20611 < concerter/4 34 --- > concerter/4 36 20178,20179c20624,20625 < concevoir/97 67 < conchier/4 34 --- > concevoir/97 175 > conchier/4 36 20197a20644 > conciliarisme/1 1 20208c20655 < conclure/126 147 --- > conclure/126 166 20227c20674 < concourir/117 191 --- > concourir/117 298 20234c20681 < concréter/26 5 --- > concréter/27 5 20252c20699 < concéder/26 5 --- > concéder/27 5 20254c20701 < concélébrer/26 5 --- > concélébrer/27 5 20269c20716 < condescendre/131 177 --- > condescendre/131 254 20296c20743 < conduire/76 67 --- > conduire/76 91 20303c20750 < conf 202 --- > conf 216 20309c20756 < confer 202 --- > confer 216 20339c20786 < confiner/4 179 --- > confiner/4 201 20342c20789 < confire/108 67 --- > confire/108 85 20369c20816 < confondre/53 67 --- > confondre/53 85 20405c20852 < confédérer/26 5 --- > confédérer/27 5 20410c20857 < conférer/26 106 --- > conférer/27 116 20423c20870 < conglomérer/26 13 --- > conglomérer/27 13 20444a20892 > congéable/1 3 20466c20914 < conjoindre/69 71 --- > conjoindre/69 78 20495c20943 < connaitre/77 158 --- > connaitre/77 98 20498c20946 < connaître/77 158 --- > connaître/77 98 20518c20966 < connobler 80 --- > connobler 82 20538c20986 < conquérir/105 67 --- > conquérir/105 91 20541c20989 < consacrer/4 13 --- > consacrer/4 103 20555c21003 < conseiller/4 113 --- > conseiller/4 118 20562c21010 < consentir/83 168 --- > consentir/83 166 20579c21027 < considérer/26 13 --- > considérer/27 103 20586c21034 < consister/10 18 --- > consister/10 210 20596c21044 < consoler/4 34 --- > consoler/4 36 20605c21053 < consommer/4 34 --- > consommer/4 36 20624c21072 < conspirer/4 106 --- > conspirer/4 116 20635c21083 < constater/4 5 --- > constater/4 101 20666c21114 < construire/76 93 --- > construire/76 91 20679c21127 < consulter/4 34 --- > consulter/4 36 20731c21179 < contenir/70 67 --- > contenir/70 98 20774c21222 < continuer/4 111 --- > continuer/4 168 20816c21264 < contraindre/127 67 --- > contraindre/127 98 20828a21277 > contraposée/3 4 20837c21286 < contrario 132 --- > contrario 147 20854c21303 < contre 89 --- > contre 87 20868c21317 < contre-braquer/10 159 --- > contre-braquer/10 101 20898c21347 < contre-haut 69 --- > contre-haut 65 20900a21350 > contre-histoire/1 2 20906a21357 > contre-ion/1 1 20940c21391 < contre-poil 69 --- > contre-poil 65 20945c21396 < contre-pousser/68 104 --- > contre-pousser/68 108 20986c21437 < contre-voie 69 --- > contre-voie 65 20988a21440 > contre-vérifier/4 101 21004c21456 < contrebattre/87 71 --- > contrebattre/87 78 21007c21459 < contrebraquer/10 159 --- > contrebraquer/10 101 21028c21480 < contredire/109 67 --- > contredire/109 91 21035c21487,21489 < contrefaire/93 71 --- > contrefactualité/1 2 > contrefactuelle/3 6 > contrefaire/94 78 21048c21502 < contrefoutre/129 119 --- > contrefoutre/129 123 21050c21504 < contrehaut 69 --- > contrehaut 65 21052a21507 > contrehistoire/1 2 21099c21554 < contrepoil 69 --- > contrepoil 65 21106c21561 < contrepousser/68 104 --- > contrepousser/68 108 21158c21613 < contrevenir/70 177 --- > contrevenir/70 222 21162c21617 < contrevoie 69 --- > contrevoie 65 21164a21620 > contrevérifier/4 101 21170c21626 < contribuer/10 126 --- > contribuer/10 145 21202c21658 < contumax 96 --- > contumax 93 21208c21664 < convaincre/155 93 --- > convaincre/155 91 21213c21669 < convalider/4 150 --- > convalider/4 97 21220c21676 < convenir/70 156 --- > convenir/70 246 21246c21702 < convertir/22 70 --- > convertir/22 186 21289c21745 < cool 36 --- > cool 35 21303c21759 < coopérer/67 125 --- > coopérer/67 144 21333a21790 > copier-coller 7 21353c21810 < coposséder/26 5 --- > coposséder/27 5 21361c21818 < coproduire/76 71 --- > coproduire/76 78 21376a21834 > coprésider/4 168 21424a21883,21884 > coraco-brachiale/7 4 > coracobrachiale/7 4 21427c21887 < corail 36 --- > corail 35 21465a21926 > cordiérite/1 2 21581c22042 < correspondre/131 156 --- > correspondre/131 246 21595c22056 < corrompre/53 67 --- > corrompre/53 91 21598a22060 > corrosivité/1 2 21612c22074 < corréler/26 5 --- > corréler/27 5 21628a22091 > corticole/1 3 21693a22157,22158 > cosplay/1 1 > cosplayeuse/3 9 21703a22169 > costarmoricaine/3 6 21724c22190 < cotiennes 188 --- > cotiennes 198 21727c22193 < cotir/22 72 --- > cotir/22 76 21730c22196 < cotiser/4 98 --- > cotiser/4 95 21734c22200 < cotonner/4 34 --- > cotonner/4 36 21764,21765c22230,22231 < couche-tard 96 < couche-tôt 96 --- > couche-tard 93 > couche-tôt 93 21767c22233 < coucher/4 34 --- > coucher/4 36 21788c22254 < coudre/125 71 --- > coudre/125 78 21814c22280 < couler/4 34 --- > couler/4 36 21838c22304 < country 96 --- > country 93 21887c22353 < couper/4 111 --- > couper/4 140 21915c22381 < courant 89 --- > courant 87 21916a22383 > courantomètre/1 1 21925c22392 < courber/4 34 --- > courber/4 36 21933c22400 < courir/116 110 --- > courir/116 113 21940c22407,22408 < courre 121 --- > couroucou/1 1 > courre 125 21960a22429,22430 > court-métrage 17 > court-vêtue/3 4 21979c22449 < courts-circuitages 327 --- > courts-circuitages 361 21980a22451 > courts-métrages 21 22003c22474 < couter/4 106 --- > couter/4 116 22027c22498 < couvi/1 120 --- > couvi/1 124 22042c22513 < couvrir/82 67 --- > couvrir/82 98 22060a22532 > cowper/1 1 22093c22565 < coûter/4 106 --- > coûter/4 116 22107c22579 < crachiner/71 107 --- > crachiner/71 111 22118c22590 < cracra 36 --- > cracra 35 22124c22596 < craignos 36 --- > craignos 35 22126c22598 < craindre/127 110 --- > craindre/127 113 22144c22616 < cranberry/40 2 --- > cranberry/38 2 22187c22659 < crash/40 1 --- > crash/38 1 22237c22709 < creuser/4 34 --- > creuser/4 36 22247c22719 < crever/46 34 --- > crever/46 36 22288a22761 > criméenne/3 6 22317c22790 < cristalliser/4 34 --- > cristalliser/4 36 22332c22805 < cristes-marines 348 --- > cristes-marines 382 22374c22847 < croire/152 147 --- > croire/152 129 22377c22850 < croiser/4 34 --- > croiser/4 36 22393c22866 < croitre/154 88 --- > croitre/154 133 22427c22900 < cross-country/40 1 --- > cross-country/38 1 22438c22911 < crotter/4 34 --- > crotter/4 36 22445c22918 < crounir 208 --- > crounir 223 22450c22923 < croupetons 69 --- > croupetons 65 22454c22927 < croupir/56 87 --- > croupir/56 143 22459a22933 > croustillant/1 1 22476c22950 < croître/154 88 --- > croître/154 133 22545a23020 > cryptand/1 1 22582c23057 < crème 36 --- > crème 35 22593c23068 < crève-la-faim 78 --- > crève-la-faim 74 22625c23100 < crédits-bails 21 --- > crédits-bails 360 22630c23105 < créer/4 13 --- > créer/4 100 22632a23108 > crémaster/1 1 22649c23125 < créner/26 5 --- > créner/27 5 22656a23133 > créolistique/1 2 22666c23143 < crépir/22 72 --- > crépir/22 76 22698c23175 < crônir 208 --- > crônir 223 22723c23200 < cucul 181 --- > cucul 204 22734c23211 < cueillir/138 71 --- > cueillir/138 113 22752c23229 < cuire/86 110 --- > cuire/86 113 22863a23341 > cupcake/1 1 22925a23404 > curvilinéaire/1 3 22940c23419 < cuter 127 --- > cuter 136 22962c23441 < cyan 36 --- > cyan 35 22966a23446 > cyanine/1 2 22973a23454 > cyanophyte/1 2 23000c23481 < cyberpunk 36 --- > cyberpunk 35 23015a23497 > cycline/1 2 23024c23506 < cyclo-cross/40 1 --- > cyclo-cross/38 1 23093a23576 > cyprotérone/1 2 23106a23590 > cystoscopique/1 3 23111a23596,23597 > cytoarchitectonie/1 2 > cytoarchitectonique/1 3 23124a23611 > cytolytique/1 3 23168c23655 < cætera 7 --- > cætera 65 23180a23668 > cécilie/1 2 23183c23671 < céder/26 106 --- > céder/27 168 23198c23686 < céladon 36 --- > céladon 35 23209a23698 > célibattante/3 9 23218c23707 < célébrer/26 5 --- > célébrer/27 5 23290a23780 > cérébraliser/4 101 23322a23813 > cétohexose/1 1 23332a23824 > cétène/1 1 23337c23829 < cézigue 248 --- > cézigue 270 23341c23833 < cônir/22 72 --- > cônir/22 76 23355a23848 > cœlomate/1 1 23361a23855 > cœtera 65 23372,23379c23866,23873 < d'ac 378 < d'affilée 69 < d'antan 155 < d'arrache-pied 69 < d'arrachepied 69 < d'aucuns 254 < d'emblée 69 < d'empoigne 155 --- > d'ac 415 > d'affilée 65 > d'antan 173 > d'arrache-pied 65 > d'arrachepied 65 > d'aucuns 275 > d'emblée 65 > d'empoigne 173 23380a23875 > dacryoadénite/1 2 23416c23911 < dalle 69 --- > dalle 65 23450c23945 < damner/4 34 --- > damner/4 36 23463c23958 < dandy/40 1 --- > dandy/38 1 23470a23966 > dano-islandaise/3 6 23472c23968 < dans 89 --- > dans 87 23489,23491c23985,23987 < darder/4 34 < dare-dare 69 < daredare 69 --- > darder/4 36 > dare-dare 65 > daredare 65 23493a23990 > darjeeling/1 1 23498a23996 > dartos 7 23514c24012 < dater/4 19 --- > dater/4 101 23532c24030 < davantage 115 --- > davantage 120 23536,23538c24034,24036 < de 399 < de-ci 69 < de-là 69 --- > de 436 > de-ci 65 > de-là 65 23557c24055 < dei 36 --- > dei 35 23563c24061 < delta 36 --- > delta 35 23582c24080 < demeurant 69 --- > demeurant 65 23586c24084 < demi 69 --- > demi 65 23607c24105 < demi-gras 81 --- > demi-gras 66 23622c24120 < demi-mot 69 --- > demi-mot 65 23715,23716c24213,24214 < depuis 89 < der 78 --- > depuis 87 > der 74 23739a24238 > dermographe/1 1 23755c24254 < derrière 89 --- > derrière 87 23758c24257 < des 266 --- > des 287 23765c24264 < descendre/53 110 --- > descendre/53 113 23776,23777c24275,24276 < desdites 265 < desdits 264 --- > desdites 286 > desdits 285 23779c24278 < design 36 --- > design 35 23786a24286 > desmosome/1 1 23796,23797c24296,24297 < desquelles 220 < desquels 219 --- > desquelles 234 > desquels 233 23801c24301 < dessaisir/22 70 --- > dessaisir/22 79 23806c24306 < dessaler/4 34 --- > dessaler/4 36 23809c24309 < dessaouler/4 34 --- > dessaouler/4 36 23818c24318 < dessertir/22 72 --- > dessertir/22 76 23822c24322 < desservir/139 67 --- > desservir/139 85 23840c24340 < dessouler/4 34 --- > dessouler/4 36 23842c24342 < dessous 131 --- > dessous 146 23848c24348 < dessoûler/4 34 --- > dessoûler/4 36 23852c24352 < dessus 131 --- > dessus 146 23859c24359 < dessécher/26 13 --- > dessécher/27 13 23905c24405 < devant 131 --- > devant 146 23909,23910c24409,24410 < devenir/70 148 < devers 89 --- > devenir/70 162 > devers 87 23921c24421 < devoir/223 158 --- > devoir/223 98 23933c24433 < dextrorsum 36 --- > dextrorsum 35 23945a24446 > diabase/1 2 23975a24477 > diadelphe/1 3 23979a24482 > diagenèse/1 2 24089a24593 > diazonium/1 1 24096a24601 > dicentra/1 2 24126a24632 > dictyoptère/1 1 24133a24640 > didactiser/4 97 24143c24650 < die 69 --- > die 65 24204c24711 < différentier 124 --- > différentier 130 24206c24713 < différer/26 19 --- > différer/27 19 24252c24759,24760 < digérer/26 34 --- > digérer/27 36 > diholoside/1 1 24258c24766 < dilacérer/26 5 --- > dilacérer/27 5 24269a24778 > dilation/1 2 24272a24782,24783 > dilatométrie/1 2 > dilatométrique/1 3 24300c24811 < diminuer/4 34 --- > diminuer/4 36 24328c24839 < dinghy/40 1 --- > dinghy/38 1 24338a24850 > dinosaurienne/3 4 24345a24858,24859 > dioléfine/1 2 > dione/1 2 24386a24901,24902 > diplopode/1 1 > diploure/1 1 24410c24926 < dire/147 158 --- > dire/147 98 24427c24943 < diriger/4 13 --- > diriger/4 100 24434a24951 > disamare/1 2 24460c24977 < discontinuer 112 --- > discontinuer 117 24466c24983 < disconvenir/70 191 --- > disconvenir/70 220 24469a24987 > discord/1 1 24480c24998 < discourir/117 88 --- > discourir/117 133 24510c25028 < discursiviser 80 --- > discursiviser 82 24517c25035 < discuter/4 34 --- > discuter/4 36 24530c25048 < disjoindre/69 67 --- > disjoindre/69 85 24540c25058 < disparaitre/77 88 --- > disparaitre/77 220 24543c25061 < disparaître/77 88 --- > disparaître/77 220 24569c25087 < disposer/4 108 --- > disposer/4 126 24580c25098 < disputer/4 108 --- > disputer/4 126 24587,24588c25105,25106 < disque-jockey 117 < disques-jockeys 103 --- > disque-jockey 119 > disques-jockeys 104 24635c25153 < dissoudre/110 158 --- > dissoudre/110 98 24646c25164 < disséquer/26 5 --- > disséquer/27 5 24655c25173 < distendre/53 67 --- > distendre/53 85 24670c25188 < distinguer/4 34 --- > distinguer/4 36 24675c25193 < distordre/53 67 --- > distordre/53 85 24681c25199 < distraire/101 93 --- > distraire/101 148 24708a25227 > dittographie/1 2 24719c25238 < divaguer/10 211 --- > divaguer/10 135 24722c25241 < dive/1 101 --- > dive/1 105 24726c25245 < divers 261 --- > divers 282 24729c25248 < diverses 262 --- > diverses 283 24739c25258 < divertir/22 70 --- > divertir/22 142 24753c25272 < diviser/4 170 --- > diviser/4 103 24777c25296 < dixit 89 --- > dixit 87 24785a25305 > diène/1 1 24794c25314 < diéser/26 5 --- > diéser/27 5 24796a25317 > diéthylstilbestrol/1 1 24821a25343 > docimologique/1 3 24849a25372 > documentologie/1 2 24866a25390 > dodécaédrique/1 3 24931c25455 < dominer/4 34 --- > dominer/4 36 24939c25463 < dominée/3 6 --- > dominée/3 9 24959a25484,25485 > donation-partage 20 > donations-partages 37 24963c25489 < donc 163 --- > donc 182 24974c25500 < donner/4 286 --- > donner/4 107 24980c25506 < dont 355 --- > dont 389 24999c25525 < doris 78 --- > doris 74 25005c25531 < dormir/243 88 --- > dormir/243 133 25044a25571 > douance/1 2 25059,25060c25586,25587 < doubler/4 34 < doubles-clics 326 --- > doubler/4 36 > doubles-clics 359 25062c25589 < doubles-croches 347 --- > doubles-croches 381 25073c25600 < douce-amère 175 --- > douce-amère 174 25077c25604 < douces-amères 188 --- > douces-amères 198 25088c25615 < doucir/22 72 --- > doucir/22 76 25094c25621 < douer 80 --- > douer 82 25109c25636 < douter/4 289 --- > douter/4 319 25127a25655 > doxycycline/1 2 25133c25661 < dracher/71 107 --- > dracher/71 111 25136a25665 > dracunculose/1 2 25235c25764 < droguer/4 34 --- > droguer/4 36 25245a25775 > droitiser/4 103 25254a25785 > dromotrope/1 3 25278a25810 > druse/1 2 25280c25812 < dry 36 --- > dry 35 25298a25831 > drôlette/3 4 25300c25833 < du 186 --- > du 206 25307c25840 < duals 128 --- > duals 131 25329,25330c25862,25863 < dudgeonner 80 < dudit 186 --- > dudgeonner 82 > dudit 206 25347a25881 > dulcitol/1 1 25350c25884 < dum-dum 36 --- > dum-dum 35 25373c25907 < duplex 36 --- > duplex 35 25382c25916 < duquel 218 --- > duquel 232 25391c25925 < durant 89 --- > durant 87 25394c25928 < durcir/22 94 --- > durcir/22 99 25409c25943 < dus 137 --- > dus 156 25489a26024 > dyslipidémie/1 2 25493a26029,26030 > dysmorphophobie/1 2 > dysmorphose/1 2 25523a26061 > dysthymie/1 2 25542c26080 < dès 89 --- > dès 87 25548c26086 < déambuler/4 98 --- > déambuler/4 95 25560c26098 < débander/4 34 --- > débander/4 36 25574c26112 < débarrasser/4 34 --- > débarrasser/4 36 25581c26119 < débattre/87 67 --- > débattre/87 153 25620c26158 < débleuir/22 72 --- > débleuir/22 76 25633c26171 < déboiter/4 34 --- > déboiter/4 36 25641c26179 < déborder/4 34 --- > déborder/4 36 25653c26191 < débouder/4 34 --- > débouder/4 36 25655c26193 < débouillir/166 71 --- > débouillir/166 78 25680c26218 < déboîter/4 34 --- > déboîter/4 36 25729c26267 < débâtir/22 72 --- > débâtir/22 76 25776c26314 < décanter/4 34 --- > décanter/4 36 25816c26354 < décatir/22 70 --- > décatir/22 79 25852c26390 < décevoir/97 71 --- > décevoir/97 113 25862c26400 < décharger/4 34 --- > décharger/4 36 25872c26410 < déchausser/4 34 --- > déchausser/4 36 25875c26413 < déchaux 129 --- > déchaux 137 25878c26416 < décher/26 5 --- > décher/27 5 25902c26440 < déchoir/159 88 --- > déchoir/159 133 25917c26455 < décider/4 108 --- > décider/4 126 25975c26513 < décliner/4 34 --- > décliner/4 36 25984c26522 < déclore/157 71 --- > déclore/157 78 25999c26537 < décohabiter/4 150 --- > décohabiter/4 97 26010c26548 < décoller/4 34 --- > décoller/4 36 26023c26561 < décommettre/75 71 --- > décommettre/75 78 26034a26573 > décompléter/27 101 26051c26590 < déconcubiner 127 --- > déconcubiner 136 26057c26596 < déconfire/108 71 --- > déconfire/108 78 26073c26612 < déconsidérer/26 13 --- > déconsidérer/27 13 26081c26620 < déconstruire/76 67 --- > déconstruire/76 85 26109c26648 < décorréler/26 5 --- > décorréler/27 5 26120c26659 < découdre/125 67 --- > découdre/125 85 26122c26661 < découler/10 125 --- > découler/10 144 26144,26145c26683,26684 < découvrir/82 67 < décrambuter 149 --- > découvrir/82 91 > décrambuter 169 26147c26686 < décrapouiller 124 --- > décrapouiller 130 26163c26702 < décrire/78 67 --- > décrire/78 91 26168c26707 < décrocher/4 34 --- > décrocher/4 36 26176c26715 < décroitre/111 88 --- > décroitre/111 133 26183c26722 < décroître/111 88 --- > décroître/111 133 26199c26738 < décrépir/22 70 --- > décrépir/22 79 26207c26746 < décréter/26 5 --- > décréter/27 5 26211c26750 < décuire/76 71 --- > décuire/76 78 26237c26776 < décéder/26 238 --- > décéder/27 260 26244c26783 < décérébrer/26 5 --- > décérébrer/27 5 26247c26786 < dédaigner/4 113 --- > dédaigner/4 118 26262c26801,26802 < dédire/109 67 --- > dédire/109 85 > dédit/1 1 26284c26824 < déduire/76 67 --- > déduire/76 91 26288,26289c26828,26829 < défaillir/137 88 < défaire/93 67 --- > défaillir/137 133 > défaire/94 98 26299,26300c26839,26840 < défarguer 80 < défatiguer/4 34 --- > défarguer 82 > défatiguer/4 36 26316c26856 < défendre/53 67 --- > défendre/53 91 26359d26898 < défigurée/3 6 26365c26904 < défiler/4 34 --- > défiler/4 36 26368c26907 < définir/22 70 --- > définir/22 142 26386a26926 > déflectrice/3 4 26388c26928 < défleurir/22 95 --- > défleurir/22 106 26397c26937 < défléchir/22 95 --- > défléchir/22 106 26428c26968 < défraichir/22 72 --- > défraichir/22 76 26433c26973 < défraîchir/22 72 --- > défraîchir/22 76 26448c26988 < défroquer/4 34 --- > défroquer/4 36 26450c26990 < défrusquer 80 --- > défrusquer 82 26453c26993 < déféquer/26 19 --- > déféquer/27 19 26456c26996 < déférer/26 113 --- > déférer/27 118 26458c26998 < dégager/4 34 --- > dégager/4 36 26463c27003 < dégarnir/22 70 --- > dégarnir/22 79 26466c27006 < dégauchir/22 72 --- > dégauchir/22 76 26479c27019 < dégeler/46 34 --- > dégeler/46 36 26480a27021 > dégermage/1 1 26495c27036 < déglutir/22 95 --- > déglutir/22 106 26505c27046 < dégonfler/4 34 --- > dégonfler/4 36 26509c27050 < dégorger/4 34 --- > dégorger/4 36 26518c27059 < dégourdir/22 70 --- > dégourdir/22 79 26522,26523c27063,27064 < dégourer 80 < dégourrer 80 --- > dégourer 82 > dégourrer 82 26549a27091 > dégression/1 2 26553a27096 > dégrillage/1 1 26560c27103 < dégrossir/22 70 --- > dégrossir/22 79 26570c27113 < dégréner/26 19 --- > dégréner/27 19 26572c27115 < déguerpir/22 95 --- > déguerpir/22 106 26594c27137 < dégénérer/26 98 --- > dégénérer/27 95 26611c27154 < déhâler 80 --- > déhâler 82 26616a27160 > déiforme/1 3 26622c27166 < déjaunir/22 72 --- > déjaunir/22 76 26655c27199 < délasser/4 34 --- > délasser/4 36 26674c27218 < délibérer/67 125 --- > délibérer/67 144 26699a27244 > délinquantielle/3 4 26700a27246 > délinéariser/4 97 26748,26749c27294,27295 < déléguer/26 5 < déléguée/3 6 --- > déléguer/27 5 > déléguée/3 9 26758c27304 < démaigrir/22 95 --- > démaigrir/22 106 26805a27352 > démenotter/4 97 26809c27356 < démentir/83 67 --- > démentir/83 91 26812a27360 > démersale/7 4 26816c27364 < démettre/75 67 --- > démettre/75 85 26828c27376 < démissionner/10 125 --- > démissionner/10 144 26836c27384 < démobiliser/4 34 --- > démobiliser/4 36 26838,26841c27386,27389 < démocrate-chrétien 145 < démocrate-chrétienne 138 < démocrates-chrétiennes 161 < démocrates-chrétiens 137 --- > démocrate-chrétien 165 > démocrate-chrétienne 157 > démocrates-chrétiennes 180 > démocrates-chrétiens 156 26857c27405 < démolir/22 72 --- > démolir/22 76 26864a27413 > démonique/1 3 26880a27430 > démontrabilité/1 2 26889c27439 < démordre/131 177 --- > démordre/131 222 26909c27459 < démunir/22 70 --- > démunir/22 79 26929a27480 > démérite/1 1 26940c27491 < dénantir/22 72 --- > dénantir/22 76 27052c27603 < départir/83 67 --- > départir/83 85 27056c27607 < dépasser/4 34 --- > dépasser/4 36 27068c27619 < dépeindre/69 71 --- > dépeindre/69 98 27075c27626 < dépendre/53 168 --- > dépendre/53 166 27118c27669 < déplaire/128 176 --- > déplaire/128 199 27153c27704,27705 < dépoiler 127 --- > dépoiler 136 > dépointage/1 1 27158c27710 < dépolir/22 70 --- > dépolir/22 79 27175c27727,27728 < déposer/4 34 --- > dépose/1 2 > déposer/4 36 27180c27733 < déposséder/26 5 --- > déposséder/27 5 27191c27744 < dépourvoir/162 67 --- > dépourvoir/162 85 27195c27748 < dépoussiérer/26 5 --- > dépoussiérer/27 5 27202c27755 < déprendre/130 119 --- > déprendre/130 123 27212c27765,27766 < déprimer/4 34 --- > déprimer/4 36 > déprimogène/1 3 27221c27775 < déprotéger/26 5 --- > déprotéger/27 5 27242c27796 < dépérir/56 87 --- > dépérir/56 143 27257c27811 < déraidir/22 70 --- > déraidir/22 79 27296a27851 > dérivationnelle/3 4 27299c27854 < dériver/4 106 --- > dériver/4 116 27314,27317c27869,27872 < déroger/10 126 < dérondir 178 < dérougir/22 87 < dérouiller/4 34 --- > déroger/10 145 > dérondir 200 > dérougir/22 92 > dérouiller/4 36 27342c27897 < dérégler/26 13 --- > dérégler/27 13 27349c27904 < dérésumenter 80 --- > dérésumenter 82 27372c27927 < désaciérer/26 5 --- > désaciérer/27 5 27392a27948 > désagglomérer/27 100 27399c27955 < désagréger/26 13 --- > désagréger/27 13 27404a27961 > désajustement/1 1 27405a27963 > désajuster/4 97 27409c27967 < désaliniser/4 34 --- > désaliniser/4 36 27411c27969 < désaliéner/26 5 --- > désaliéner/27 5 27416c27974 < désaltérer/26 13 --- > désaltérer/27 13 27419a27978 > désambiguïsatrice/3 4 27421a27981 > désambigüisatrice/3 4 27426a27987 > désaminase/1 2 27437c27998 < désapprendre/94 71 --- > désapprendre/95 78 27448c28009 < désarmer/4 34 --- > désarmer/4 36 27454a28016 > désasphaltage/1 1 27460c28022 < désassortir/22 72 --- > désassortir/22 76 27478c28040 < désaérer/26 5 --- > désaérer/27 5 27495c28057 < désemplir/22 94 --- > désemplir/22 99 27515a28078 > désendoctriner/4 103 27518c28081 < désenfler/4 34 --- > désenfler/4 36 27523a28087 > désengorgement/1 1 27525c28089 < désengourdir/22 72 --- > désengourdir/22 76 27529c28093 < désenlaidir/22 95 --- > désenlaidir/22 106 27531c28095 < désennuyer/4 34 --- > désennuyer/4 36 27556c28120 < déserter/4 34 --- > déserter/4 36 27569c28133 < désespérer/26 34 --- > désespérer/27 36 27588a28153 > déshuilage/1 1 27601,27602c28166,28167 < déshydrogéner/26 5 < déshypothéquer/26 5 --- > déshydrogéner/27 5 > déshypothéquer/27 5 27612a28178 > désilage/1 1 27616a28183,28184 > désimbrication/1 2 > désimbriquer/4 103 27618c28186 < désincarcérer/26 5 --- > désincarcérer/27 5 27635a28204 > désinfestation/1 2 27644c28213 < désinscrire/78 67 --- > désinscrire/78 85 27661c28230,28231 < désintégrer/26 13 --- > désintégrative/3 4 > désintégrer/27 13 27665c28235 < désinvestir/22 95 --- > désinvestir/22 106 27684c28254 < désobéir/56 193 --- > désobéir/56 187 27724c28294 < désoxygéner/26 5 --- > désoxygéner/27 5 27739c28309 < déstresser/4 34 --- > déstresser/4 36 27749c28319 < désunir/22 70 --- > désunir/22 79 27763c28333 < désépaissir/22 72 --- > désépaissir/22 76 27769c28339 < désétablir/22 72 --- > désétablir/22 76 27775c28345 < désœuvrer 80 --- > désœuvrer 82 27796a28367 > détectabilité/1 2 27803c28374 < déteindre/69 110 --- > déteindre/69 152 27808,27809c28379,28380 < détendre/53 67 < détenir/70 71 --- > détendre/53 98 > détenir/70 154 27837a28409 > déthéiner/4 97 27841c28413 < détiser 80 --- > détiser 82 27850c28422,28423 < détordre/53 71 --- > détordre/53 78 > détorse/3 4 27891c28464 < détruire/76 67 --- > détruire/76 91 27923c28496 < développée/3 6 --- > développée/3 9 27927c28500 < déverdir/56 87 --- > déverdir/56 92 27934c28507 < dévernir/22 72 --- > dévernir/22 76 27955c28528 < dévirginer 80 --- > dévirginer 82 27965a28539 > dévitaminer/4 97 27986c28560 < dévorer/4 34 --- > dévorer/4 36 27997c28571,28572 < dévêtir/115 67 --- > dévésiculeur/1 1 > dévêtir/115 98 28010a28586 > dürüm/1 1 28032a28609 > eccrine/2 3 28046a28624 > ectoprocte/2 1 28053c28631 < effacer/12 34 --- > effacer/12 36 28091c28669 < effileuse/3 9 --- > effileuse/5 9 28104c28682 < effleurir/119 87 --- > effleurir/119 92 28152d28729 < electuaire/2 1 28155,28158c28732,28735 < elle/122 246 < elle-même/9 246 < elles/122 247 < elles-mêmes/9 247 --- > elle/122 268 > elle-même/9 268 > elles/122 269 > elles-mêmes/9 269 28188c28765 < embarquer/12 34 --- > embarquer/12 36 28194c28771 < embarrer/12 34 --- > embarrer/12 36 28200c28777 < embatre/87 71 --- > embatre/87 78 28202c28779 < embattre/87 71 --- > embattre/87 78 28205c28782 < embaucher/12 34 --- > embaucher/12 36 28213c28790 < embecqueter 112 --- > embecqueter 117 28215c28792 < embellir/45 94 --- > embellir/45 99 28221c28798,28799 < embistrouiller 80 --- > embioptère/2 1 > embistrouiller 82 28232c28810,28811 < emboire/194 119 --- > embobineuse/5 9 > emboire/194 123 28266c28845 < emboutir/65 72 --- > emboutir/65 76 28289c28868 < embrayeur/1 1 --- > embrayeur/2 1 28291c28870 < embrever/95 5 --- > embrever/96 5 28311c28890 < embrunir/65 72 --- > embrunir/65 76 28350c28929 < emmener/95 5 --- > emmener/96 5 28371c28950 < emmétrer/60 5 --- > emmétrer/59 5 28418c28997 < empeser/95 5 --- > empeser/96 5 28439c29018 < empirer/12 34 --- > empirer/12 36 28447c29026 < empiéger/60 5 --- > empiéger/59 5 28454c29033 < emplir/45 94 --- > emplir/45 99 28459c29038 < employer/12 13 --- > employer/12 141 28461c29040 < employée/5 6 --- > employée/5 9 28490a29070,29071 > empoussièrement/2 1 > empoussiérage/2 1 28492c29073 < empreindre/69 67 --- > empreindre/69 85 28504c29085 < empuantir/65 72 --- > empuantir/65 76 28520c29101 < en/266 373 --- > en/266 410 28551c29132 < encaper 80 --- > encaper 82 28560c29141 < encarrer 112 --- > encarrer 117 28582c29163 < enceindre/69 71 --- > enceindre/69 78 28589c29170 < encenser/12 34 --- > encenser/12 36 28595,28597c29176,29178 < enchainer/12 34 < enchainée/5 6 < enchanteler 80 --- > enchainer/12 36 > enchainée/5 9 > enchanteler 82 28607,28608c29188,29189 < enchaîner/12 34 < enchaînée/5 6 --- > enchaîner/12 36 > enchaînée/5 9 28611c29192 < enchetarder 80 --- > enchetarder 82 28618c29199 < enchifrener/95 5 --- > enchifrener/96 5 28621,28622c29202,29203 < enchtiber 80 < enchtourber 80 --- > enchtiber 82 > enchtourber 82 28627c29208 < enchérir/65 87 --- > enchérir/65 143 28635a29217 > enclencheur/2 1 28643,28644c29225,29226 < encloquer 80 < enclore/157 71 --- > encloquer 82 > enclore/157 78 28683c29265 < encourir/116 71 --- > encourir/116 78 28694,28695c29276,29277 < encrister 80 < encroumer 127 --- > encrister 82 > encroumer 136 28718a29301 > encâblure/2 2 28748c29331 < endocrine/2 101 --- > endocrine/2 105 28756c29339 < endoctrinée/5 6 --- > endoctrinée/5 9 28759a29343 > endodontie/2 2 28765c29349 < endolorir/65 72 --- > endolorir/65 76 28766a29351 > endolymphe/2 2 28768a29354 > endomorphine/2 2 28778a29365 > endopodite/2 1 28781c29368 < endormir/167 67 --- > endormir/167 91 28801a29389 > endothermicité/2 2 28804a29393 > endothéliome/2 1 28810c29399 < enduire/76 93 --- > enduire/76 148 28816c29405 < endurcir/45 70 --- > endurcir/45 139 28821c29410 < endéans 89 --- > endéans 87 28830c29419 < endêver 112 --- > endêver 117 28853c29442 < enficeler 80 --- > enficeler 82 28868c29457 < enfler/12 34 --- > enfler/12 36 28872c29461 < enflécher/60 5 --- > enflécher/59 5 28874c29463 < enfoirer 124 --- > enfoirer 130 28877c29466 < enfoncer/12 34 --- > enfoncer/12 36 28881,28883c29470,29472 < enforcir/119 87 < enfouiller 80 < enfouir/45 70 --- > enforcir/119 92 > enfouiller 82 > enfouir/45 79 28886c29475 < enfourailler 124 --- > enfourailler 130 28894,28895c29483,29485 < enfreindre/69 71 < enfuir/240 119 --- > enfreindre/69 154 > enfroquée/5 4 > enfuir/240 123 28905,28906c29495,29496 < engager/12 13 < engagée/5 6 --- > engager/12 107 > engagée/5 9 28928c29518 < engloutir/45 70 --- > engloutir/45 79 28933a29524 > engobe/2 1 28946c29537 < engourdir/45 70 --- > engourdir/45 79 28952c29543 < engraisser/12 34 --- > engraisser/12 36 28973c29564 < enhardir/45 70 --- > enhardir/45 79 28977a29569 > enherbement/2 1 28981c29573 < enivrer/12 34 --- > enivrer/12 36 28988c29580 < enjoindre/69 71 --- > enjoindre/69 251 29007c29599 < enlaidir/45 94 --- > enlaidir/45 99 29027c29619 < ennoblir/65 72 --- > ennoblir/65 76 29035c29627 < ennuyer/12 34 --- > ennuyer/12 36 29041,29042c29633,29634 < enorgueillir/45 70 < enquerre 121 --- > enorgueillir/45 139 > enquerre 125 29048c29640 < enquérir/242 119 --- > enquérir/242 123 29059c29651 < enragée/5 6 --- > enragée/5 9 29074,29075c29666,29667 < enrhuner 80 < enrichir/45 70 --- > enrhuner 82 > enrichir/45 139 29086c29678 < enrouiller/47 98 --- > enrouiller/47 95 29134c29726 < ensevelir/45 70 --- > ensevelir/45 139 29141c29733 < ensimer/11 150 --- > ensimer/11 97 29157c29749 < enstérer/60 5 --- > enstérer/59 5 29159c29751 < ensuivre/190 119 --- > ensuivre/190 123 29182c29774 < entendre/53 147 --- > entendre/53 129 29218a29811 > entoprocte/2 1 29231,29237c29824,29830 < entr'aimer/68 104 < entr'apercevoir/97 67 < entr'hiverner 80 < entr'ouvrir/82 67 < entr'égorger/68 104 < entraccorder/68 104 < entraccuser/68 104 --- > entr'aimer/68 108 > entr'apercevoir/97 85 > entr'hiverner 82 > entr'ouvrir/82 85 > entr'égorger/68 108 > entraccorder/68 108 > entraccuser/68 108 29239c29832 < entradmirer/68 104 --- > entradmirer/68 108 29241c29834 < entraider/68 104 --- > entraider/68 108 29243c29836 < entraimer/68 104 --- > entraimer/68 108 29248c29841 < entrainer/12 13 --- > entrainer/12 103 29252c29845 < entrapercevoir/97 67 --- > entrapercevoir/97 85 29260c29853 < entraîner/12 13 --- > entraîner/12 103 29262c29855 < entre/107 201 --- > entre/107 193 29265,29271c29858,29864 < entre-deux-guerres/27 17 < entre-déchirer/68 104 < entre-détruire/146 192 < entre-dévorer/68 104 < entre-frapper/68 104 < entre-haïr/169 234 < entre-heurter/68 104 --- > entre-deux-guerres/28 17 > entre-déchirer/68 108 > entre-détruire/146 208 > entre-dévorer/68 108 > entre-frapper/68 108 > entre-haïr/169 256 > entre-heurter/68 108 29274,29275c29867,29868 < entre-louer/68 104 < entre-manger/68 104 --- > entre-louer/68 108 > entre-manger/68 108 29277c29870 < entre-nuire/144 192 --- > entre-nuire/144 208 29280c29873,29874 < entre-regarder/68 104 --- > entre-regarder/68 108 > entre-soi/6 7 29283c29877 < entre-tuer/68 104 --- > entre-tuer/68 108 29285c29879 < entre-égorger/68 104 --- > entre-égorger/68 108 29287c29881 < entrebattre/201 119 --- > entrebattre/201 123 29295a29890 > entrecoupement/2 1 29302,29304c29897,29899 < entredéchirer/68 104 < entredétruire/146 192 < entredévorer/68 104 --- > entredéchirer/68 108 > entredétruire/146 208 > entredévorer/68 108 29309c29904 < entrefrapper/68 104 --- > entrefrapper/68 108 29311,29312c29906,29907 < entrehaïr/169 234 < entreheurter/68 104 --- > entrehaïr/169 256 > entreheurter/68 108 29319,29320c29914,29915 < entrelouer/68 104 < entremanger/68 104 --- > entrelouer/68 108 > entremanger/68 108 29323c29918 < entremettre/200 119 --- > entremettre/200 123 29328c29923 < entrenuire/144 192 --- > entrenuire/144 208 29337c29932 < entreprendre/94 110 --- > entreprendre/95 113 29344c29939 < entrer/11 19 --- > entrer/11 101 29346c29941 < entreregarder/68 104 --- > entreregarder/68 108 29351c29946 < entretenir/168 67 --- > entretenir/168 85 29358c29953 < entretuer/68 104 --- > entretuer/68 108 29360c29955 < entrevoir/132 67 --- > entrevoir/132 85 29370c29965 < entrouvrir/82 67 --- > entrouvrir/82 85 29374,29375c29969,29970 < entrées-sorties 346 < entrégorger/68 104 --- > entrées-sorties 380 > entrégorger/68 108 29394a29990 > entérovirus/6 7 29403c29999 < envahir/65 72 --- > envahir/65 76 29420c30016 < envers/9 89 --- > envers/9 87 29427c30023 < envieillir/45 70 --- > envieillir/45 79 29447d30042 < envolée/5 6 29453,29454c30048,30049 < envoutée/5 6 < envoyer/175 170 --- > envoutée/5 9 > envoyer/175 103 29461c30056 < envoûtée/5 6 --- > envoûtée/5 9 29527c30122 < esbaudir/118 136 --- > esbaudir/118 155 29576c30171 < escharifier/6 80 --- > escharifier/6 82 29652,29654c30247,30249 < esprit-de-bois/27 17 < esprit-de-sel/27 17 < esprit-de-vin/27 17 --- > esprit-de-bois/28 17 > esprit-de-sel/28 17 > esprit-de-vin/28 17 29661c30256 < espérer/60 19 --- > espérer/59 101 29692c30287 < essayer/12 13 --- > essayer/12 100 29707c30302 < essonnienne/3 6 --- > essonnienne/5 6 29761c30356 < ester 112 --- > ester 117 29798c30393 < estourbir/65 72 --- > estourbir/65 76 29817c30412 < estropiée/5 6 --- > estropiée/5 9 29827,29828c30422,30423 < et 267 < etc 69 --- > et 288 > etc 65 29844c30439 < ethnocentriste/1 3 --- > ethnocentriste/2 3 29886a30482 > eudémonologie/2 2 29920c30516 < euphémiser/12 235 --- > euphémiser/12 100 29984c30580 < euthanasiée/5 6 --- > euthanasiée/5 9 29986a30583 > eutrophe/2 3 29988,29989c30585,30586 < eux/9 245 < eux-mêmes/9 245 --- > eux/9 267 > eux-mêmes/9 267 29991,29992c30588,30589 < ex 132 < ex/6 78 --- > ex 147 > ex/6 74 30006c30603 < exagérer/66 34 --- > exagérer/66 36 30011c30608 < exaltée/5 6 --- > exaltée/5 9 30014c30611 < examiner/12 34 --- > examiner/12 100 30048c30645 < excepté/74 201 --- > excepté/74 193 30051c30648 < exciper/120 126 --- > exciper/120 145 30068c30665 < excitée/5 6 --- > excitée/5 9 30074c30671 < exclure/126 67 --- > exclure/126 91 30083c30680 < excommuniée/5 6 --- > excommuniée/5 9 30087c30684 < excracher 80 --- > excracher 82 30092c30689 < excréter/60 5 --- > excréter/59 5 30108c30705 < excéder/60 5 --- > excéder/59 5 30112a30710 > exemplarisme/2 1 30123c30721 < exemptée/5 6 --- > exemptée/5 9 30125c30723 < exercer/12 34 --- > exercer/12 107 30150a30749 > exhilarante/5 4 30157c30756 < exhéréder/60 5 --- > exhéréder/59 5 30160c30759 < exiger/11 5 --- > exiger/11 168 30176c30775 < exister/43 18 --- > exister/43 135 30179a30779 > exobase/2 2 30185a30786 > exocuticule/2 2 30188c30789 < exoderme/1 1 --- > exoderme/2 1 30204a30806 > exopodite/2 1 30222a30825 > exothermicité/2 2 30241c30844 < expatriée/5 6 --- > expatriée/5 9 30277c30880 < expliquer/12 13 --- > expliquer/12 107 30285c30888 < exploitée/5 6 --- > exploitée/5 9 30297a30901 > explosivité/2 2 30309c30913 < exporter/12 34 --- > exporter/12 36 30311c30915 < exposer/12 13 --- > exposer/12 141 30314c30918 < express/6 36 --- > express/6 35 30316c30920 < expresse/2 101 --- > expresse/2 105 30333c30937 < expropriée/5 6 --- > expropriée/5 9 30335c30939 < exprès/6 129 --- > exprès/6 137 30340c30944 < expulsée/5 6 --- > expulsée/5 9 30371a30976 > exsurgence/2 2 30388c30993 < extenso 69 --- > extenso 65 30396c31001 < externalisme/1 1 --- > externalisme/2 1 30415c31020 < extra/6 36 --- > extra/6 35 30423c31028 < extra-dry/6 36 --- > extra-dry/6 35 30424a31030 > extra-embryonnaire/2 3 30430c31036 < extra-muros/6 36 --- > extra-muros/6 35 30443c31049 < extrachromosomique/1 3 --- > extrachromosomique/2 3 30455c31061 < extradiégétique/1 3 --- > extradiégétique/2 3 30459c31065,31066 < extradée/5 6 --- > extradée/5 9 > extraembryonnaire/2 3 30464c31071 < extraire/101 67 --- > extraire/101 129 30472c31079 < extramuros/6 36 --- > extramuros/6 35 30500c31107 < extremis 69 --- > extremis 65 30513c31120 < extrémis 69 --- > extrémis 65 30538c31145 < exubérer 112 --- > exubérer 117 30540c31147 < exulcérer/60 5 --- > exulcérer/59 5 30554c31161 < exécrer/60 5 --- > exécrer/59 5 30557c31164 < exécuter/12 13 --- > exécuter/12 100 30587c31194 < fabriquer/4 34 --- > fabriquer/4 36 30597c31204 < face 383 --- > face 420 30623c31230 < facto 69 --- > facto 65 30676c31283 < faiblir/56 87 --- > faiblir/56 143 30685c31292 < faillir/237 88 --- > faillir/237 110 30693,30694c31300,31301 < fainéantiser 112 < fair-play 36 --- > fainéantiser 117 > fair-play 35 30696c31303 < faire/93 190 --- > faire/94 91 30718d31324 < faite/1 1 30730a31337 > falconidé/1 1 30736c31343 < falloir/209 67 --- > falloir/209 305 30739c31346 < faloter 112 --- > faloter 117 30798c31405 < fanny 36 --- > fanny 35 30835c31442 < farcir/22 70 --- > farcir/22 79 30841c31448 < farder/4 34 --- > farder/4 36 30850c31457 < farguer 80 --- > farguer 82 30874a31482 > fasciculation/1 2 30891c31499 < faseiller 112 --- > faseiller 117 30904c31512 < faséier 112 --- > faséier 117 30918c31526 < fatiguer/4 34 --- > fatiguer/4 36 30954c31562 < faufiler/4 34 --- > faufiler/4 36 30981c31589 < faux 78 --- > faux 74 31006a31615 > fayalite/1 2 31046c31655 < feindre/69 110 --- > feindre/69 113 31076c31685 < fendre/53 67 --- > fendre/53 85 31113c31722 < fermer/4 34 --- > fermer/4 107 31141a31751 > ferriprive/1 3 31179c31789 < ferry/40 1 --- > ferry/38 1 31189a31800 > fertilisatrice/3 4 31191a31803 > fertirrigation/1 2 31227a31840 > feuillant/1 1 31232c31845 < feuille-morte 36 --- > feuille-morte 35 31252c31865 < feutrer/4 34 --- > feutrer/4 36 31365c31978 < figer/4 34 --- > figer/4 36 31367c31980 < fignoler/4 5 --- > fignoler/4 103 31380c31993 < figurer/4 34 --- > figurer/4 36 31401c32014 < filasse 36 --- > filasse 35 31407c32020 < filer/4 34 --- > filer/4 36 31460c32073 < filtres-presses 325 --- > filtres-presses 358 31488c32101 < finaux 128 --- > finaux 131 31494c32107 < finir/22 233 --- > finir/22 134 31562c32175 < fixer/4 13 --- > fixer/4 100 31658c32271 < flash/40 1 --- > flash/38 1 31660a32274 > flash-ball/1 1 31662a32277 > flashball/1 1 31666c32281 < flashy 36 --- > flashy 35 31680a32296 > flavone/1 2 31707c32323 < fleurir/22 94 --- > fleurir/22 99 31736c32352 < flingoter 80 --- > flingoter 82 31738c32354 < flinguer/4 34 --- > flinguer/4 36 31768c32384 < flood 36 --- > flood 35 31791c32407 < florès 202 --- > florès 216 31834c32450 < fluo 36 --- > fluo 35 31857,31858c32473,32474 < flurer 80 < flush/40 1 --- > flurer 82 > flush/38 1 31875a32492 > fluxionnaire/1 3 31887c32504 < flécher/26 5 --- > flécher/27 5 31889c32506 < fléchir/22 94 --- > fléchir/22 99 31895c32512 < flétrir/22 70 --- > flétrir/22 79 31915c32532 < fofolle/1 102 --- > fofolle/1 112 31956c32573 < folklo 36 --- > folklo 35 31964,31965c32581 < folle/1 3 < folle/1 2 --- > folle/3 6 32010c32626 < fonder/4 34 --- > fonder/4 36 32015c32631 < fondre/53 93 --- > fondre/53 91 32019c32635 < fondée/3 6 --- > fondée/3 9 32036d32651 < fontanili 7 32037a32653 > fontanili/93 21 32062c32678 < forcer/4 34 --- > forcer/4 36 32066,32067c32682,32683 < forcir/56 87 < forclore/206 71 --- > forcir/56 143 > forclore/206 78 32070a32687 > forensique/1 3 32077c32694 < forfaire/198 189 --- > forfaire/198 295 32089c32706 < forger/4 34 --- > forger/4 36 32120c32737 < former/4 13 --- > former/4 107 32140a32758 > formyle/1 1 32146c32764,32765 < fors 89 --- > fors 87 > forstérite/1 2 32160c32779 < fortiori 69 --- > fortiori 65 32191d32809 < fou/1 86 32221c32839 < fouiller/4 34 --- > fouiller/4 36 32228c32846 < fouir/22 72 --- > fouir/22 76 32252c32870 < fourbir/22 72 --- > fourbir/22 76 32263a32882 > fourchure/1 2 32287c32906 < fournir/22 283 --- > fournir/22 186 32315c32934 < foutre/129 67 --- > foutre/129 98 32332c32951 < foéner/26 19 --- > foéner/27 19 32335c32954 < fr/32 199 --- > fr/32 213 32377c32996 < fraichir/56 87 --- > fraichir/56 92 32402,32403c33021,33022 < franc-maçon 145 < franc-maçonne/1 102 --- > franc-maçon 165 > franc-maçonne/1 112 32410,32411c33029,33030 < franca 36 < franche/1 101 --- > franca 35 > franche/1 105 32413c33032 < franchir/22 72 --- > franchir/22 167 32474a33094 > franco-norvégienne/3 6 32513c33133 < francs-maçons 137 --- > francs-maçons 156 32516,32517c33136,33137 < francs-tireurs 324 < francs-tireuses 345 --- > francs-tireurs 357 > francs-tireuses 379 32525a33146 > franklinite/1 2 32539c33160 < frapper/4 34 --- > frapper/4 36 32540a33162 > frappologie/1 2 32559c33181 < frayer/4 34 --- > frayer/4 36 32568c33190 < fraîchir/56 87 --- > fraîchir/56 92 32575c33197 < free-lance 36 --- > free-lance 35 32592c33214 < freiner/4 34 --- > freiner/4 36 32600c33222 < french 36 --- > french 35 32665c33287 < fringuer/4 34 --- > fringuer/4 36 32679c33301 < frire/181 110 --- > frire/181 152 32685c33307 < friser/4 34 --- > friser/4 36 32691c33313 < frisonner 112 --- > frisonner 117 32714c33336 < fritz 78 --- > fritz 74 32723c33345 < froidir/56 87 --- > froidir/56 92 32762c33384 < frotter/4 34 --- > frotter/4 36 32818c33440,33441 < frémir/56 87 --- > fréjusienne/3 6 > frémir/56 143 32832c33455 < fréquenter/4 34 --- > fréquenter/4 36 32837c33460 < fréter/26 5 --- > fréter/27 5 32849,32850c33472,33473 < ftp/96 154 < fuchsia 36 --- > ftp/93 178 > fuchsia 35 32870,32871c33493,33494 < fuir/22 94 < fuir/241 93 --- > fuir/22 311 > fuir/241 175 32882a33506 > fulmar/1 1 32889a33514 > fulvique/1 3 32925a33551,33552 > fun 35 > fun/1 3 32936,32937c33563 < funk 36 < funk 7 --- > funk 35 32940c33566 < funky 36 --- > funky 35 32952c33578 < furax 36 --- > furax 35 33054a33681 > fécalome/1 1 33080c33707 < fédérer/26 13 --- > fédérer/27 13 33095a33723 > féminicide/1 11 33098a33727 > féminisante/3 4 33115c33744 < férals 128 --- > férals 131 33119c33748 < férir/234 71 --- > férir/234 78 33156a33786 > fœtologie/1 2 33191a33822,33823 > gadzarette/1 2 > gadzart/1 1 33195c33827 < gafouiller 80 --- > gafouiller 82 33204c33836 < gagman/40 1 --- > gagman/38 1 33213c33845 < gagner/4 34 --- > gagner/4 36 33345c33977 < galvauder/4 34 --- > galvauder/4 36 33394a34027 > gamut/1 1 33412c34045 < gangréner/26 13 --- > gangréner/27 13 33428c34061 < ganter/4 34 --- > ganter/4 36 33435c34068 < garance 36 --- > garance 35 33443c34076 < garantir/22 72 --- > garantir/22 167 33449c34082 < garde-barrière 117 --- > garde-barrière 119 33453c34086 < garde-but 117 --- > garde-but 119 33464c34097 < garde-côte 117 --- > garde-côte 119 33473,33474c34106,34107 < garde-frontière 117 < garde-magasin 117 --- > garde-frontière 119 > garde-magasin 119 33476c34109 < garde-malade 117 --- > garde-malade 119 33492c34125 < garde-pêche 117 --- > garde-pêche 119 33503c34136 < garden-party/40 2 --- > garden-party/38 2 33507,33508c34140,34141 < gardes-barrières 103 < gardes-buts 103 --- > gardes-barrières 104 > gardes-buts 104 33511c34144 < gardes-côtes 103 --- > gardes-côtes 104 33513,33516c34146,34149 < gardes-frontières 354 < gardes-magasins 103 < gardes-maisons 103 < gardes-malades 103 --- > gardes-frontières 388 > gardes-magasins 104 > gardes-maisons 104 > gardes-malades 104 33519c34152 < gardes-pêche 103 --- > gardes-pêche 104 33550c34183 < garnir/22 70 --- > garnir/22 79 33580a34214 > gastre/1 1 33594a34229 > gastrolithe/1 1 33601a34237 > gastrostomie/1 2 33602a34239 > gastrotriche/1 1 33613c34250 < gauchir/22 94 --- > gauchir/22 99 33614a34252 > gauchiser/4 103 33621c34259 < gaudir/22 136 --- > gaudir/22 155 33659c34297 < gay 36 --- > gay 35 33663a34302 > gayolle/1 2 33708c34347 < geindre/199 110 --- > geindre/199 152 33711c34350 < geler/46 287 --- > geler/46 317 33722a34362 > gemmologique/1 3 33743c34383,34384 < gens 103 --- > genrée/3 4 > gens 104 33758c34399 < gentilshommes 323 --- > gentilshommes 356 33761c34402 < gentleman/40 1 --- > gentleman/38 1 33774c34415 < gentry/40 2 --- > gentry/38 2 33794c34435 < gercer/4 34 --- > gercer/4 36 33800c34441 < germaniser/4 34 --- > germaniser/4 36 33804a34446 > germano-autrichienne/3 6 33807a34450,34451 > germano-polonaise/3 6 > germano-russe/1 11 33808a34453,34454 > germano-suisse/1 11 > germano-tchèque/1 11 33841c34487 < gestatoire/1 101 --- > gestatoire/1 105 33891a34538 > gifleuse/3 9 33924a34572 > gingivectomie/1 2 33931c34579 < giorno 69 --- > giorno 65 33977c34625 < glacer/4 34 --- > glacer/4 36 33985c34633 < glacials 128 --- > glacials 131 33996c34644 < glaglater 112 --- > glaglater 117 34026c34674 < glapir/22 95 --- > glapir/22 106 34033c34681 < glatir/56 87 --- > glatir/56 92 34050a34699 > glioblastome/1 1 34058c34707,34708 < glisser/4 34 --- > glisser/4 36 > glisser-déposer 7 34091a34742 > glomérulée/3 4 34102c34753 < gloser/4 106 --- > gloser/4 116 34111a34763 > glossologie/1 2 34140a34793 > glucocorticoïde/1 1 34141a34795 > gluconate/1 1 34167a34822 > glycogénose/1 2 34185a34841 > glycéraldéhyde/1 1 34207c34863 < gléner/26 5 --- > gléner/27 5 34210c34866 < gnangnan 36 --- > gnangnan 35 34213a34870 > gnathion/1 1 34215a34873 > gnathostome/1 1 34218c34876 < gnian-gnian 36 --- > gnian-gnian 35 34242c34900 < go 69 --- > go 65 34273a34932 > godichonne/3 6 34295c34954 < goinfrer/4 98 --- > goinfrer/4 95 34321c34980 < gomorrhiser 80 --- > gomorrhiser 82 34340c34999 < gondoler/4 98 --- > gondoler/4 95 34351c35010 < gonfler/4 34 --- > gonfler/4 36 34367a35027 > gonocyte/1 1 34369a35030 > gonoréaction/1 2 34376,34377c35037,35038 < gordien/1 120 < gore 36 --- > gordien/1 124 > gore 35 34383c35044 < gorge-de-pigeon 36 --- > gorge-de-pigeon 35 34385c35046 < gorgeonner 127 --- > gorgeonner 136 34428c35089 < gougnoter 80 --- > gougnoter 82 34430c35091 < gougnotter 80 --- > gougnotter 82 34435a35097 > goujonnage/1 1 34438c35100 < goujonnière/1 101 --- > goujonnière/1 105 34463c35125 < gourancer 127 --- > gourancer 136 34488c35150 < gouter/4 106 --- > gouter/4 116 34498c35160 < gouttiner/71 107 --- > gouttiner/71 111 34508c35170 < gouverner/4 34 --- > gouverner/4 36 34517c35179 < goyim 162 --- > goyim 181 34524c35186 < goïm 162 --- > goïm 181 34528c35190 < goûter/4 106 --- > goûter/4 116 34565c35227 < graffer 127 --- > graffer 136 34614,34615c35276,35277 < grand-chose 183 < grand-croix 78 --- > grand-chose 191 > grand-croix 74 34625c35287 < grand-peine 69 --- > grand-peine 65 34627a35290 > grand-route/1 2 34643c35306 < grandir/22 94 --- > grandir/22 99 34658c35321 < grands-pères 322 --- > grands-pères 355 34712a35376 > graphométrique/1 3 34733a35398 > gratelle/1 2 34744c35409 < gratis 36 --- > gratis 35 34760c35425 < gratter/4 34 --- > gratter/4 36 34770a35436 > grauwacke/1 2 34781c35447 < graver/4 34 --- > graver/4 36 34796c35462 < gravir/22 284 --- > gravir/22 313 34853c35519 < grenat 36 --- > grenat 35 34916c35582 < griller/4 34 --- > griller/4 36 34957c35623 < gripper/4 34 --- > gripper/4 36 34988c35654 < grizzly/40 1 --- > grizzly/38 1 34994c35660 < groggy 36 --- > groggy 35 35026c35692 < groseille 36 --- > groseille 35 35033c35699 < grossir/22 95 --- > grossir/22 134 35040c35706 < grosso 69 --- > grosso 65 35047c35713 < grouiller/4 98 --- > grouiller/4 95 35055c35721 < grouper/4 34 --- > grouper/4 36 35083c35749 < grâce 185 --- > grâce 205 35105c35771 < grégeois 129 --- > grégeois 137 35111c35777 < gréser/26 5 --- > gréser/27 5 35117c35783 < grésiller/10 107 --- > grésiller/10 111 35125c35791 < grêler/142 294 --- > grêler/142 324 35130c35796 < guai/1 120 --- > guai/1 124 35154c35820 < guetter/4 34 --- > guetter/4 36 35187a35854 > guifette/1 2 35207c35874 < guilleméter/26 5 --- > guilleméter/27 5 35248a35916 > gulaire/1 3 35287c35955 < guérir/22 94 --- > guérir/22 99 35299a35968 > gymnarque/1 1 35332a36002 > gyrencéphale/1 3 35386a36057 > gélifluxion/1 2 35404c36075 < gémir/22 95 --- > gémir/22 106 35458c36129 < générer/26 5 --- > générer/27 5 35505a36177,36178 > géohistoire/1 2 > géohistorienne/3 9 35580c36253 < gérer/26 5 --- > gérer/27 5 35595a36269 > gérontoxon/1 1 35598c36272 < gésir/236 88 --- > gésir/236 302 35609a36284 > ha 53 35611c36286 < hab 78 --- > hab 74 35641c36316 < habituée/5 6 --- > habituée/5 9 35683a36359 > hadrosaure/2 1 35703c36379 < halal 36 --- > halal 35 35710c36386 < halener/95 5 --- > halener/96 5 35726a36403 > halite/2 2 35731c36408 < hallal 36 --- > hallal 35 35785a36463 > hanafisme/1 1 35786a36465 > hanbalisme/1 1 35796c36475 < handicaper/11 150 --- > handicaper/11 97 35811a36491 > haplographie/2 2 35840c36520 < hard 36 --- > hard 35 35921a36602 > hashtag/1 1 35956,35957c36637,36638 < haute-contre 117 < haute-fidélité 81 --- > haute-contre 119 > haute-fidélité 66 35968,35969c36649,36650 < hautes-contre 103 < hautes-fidélités 146 --- > hautes-contre 104 > hautes-fidélités 132 35988c36669 < havane 36 --- > havane 35 35995c36676,36677 < havir/22 95 --- > havir/22 106 > havraise/3 6 36005c36687 < haïr/253 94 --- > haïr/253 142 36023c36705 < heimatlos 96 --- > heimatlos 93 36032c36714 < helléniser/12 34 --- > helléniser/12 36 36053c36735 < hennir/56 87 --- > hennir/56 92 36146a36829 > heulandite/1 2 36158c36841 < heurter/4 34 --- > heurter/4 36 36159a36843 > hexacanthe/2 3 36179c36863 < hexapolaire/1 3 --- > hexapolaire/2 3 36187c36871 < hi-fi 36 --- > hi-fi 35 36201a36886 > hiddénite/2 2 36212c36897 < high-tech 96 --- > high-tech 93 36239c36924 < hip-hop 36 --- > hip-hop 35 36265a36951 > hippotrague/2 1 36267c36953 < hippy/40 11 --- > hippy/38 11 36294a36981 > histiocytaire/2 3 36295a36983 > histiocytose/2 2 36329c37017 < historiser/12 34 --- > historiser/12 36 36366c37054 < hobby/40 1 --- > hobby/38 1 36370c37058 < hoc 69 --- > hoc 65 36394a37083 > holocrine/2 3 36429c37118 < hominem 155 --- > hominem 173 36447a37137 > homo-épitaxie/2 2 36505a37196 > homoscédasticité/2 2 36518a37210 > homoépitaxie/2 2 36528c37220 < homéoprotéine/1 2 --- > homéoprotéine/2 2 36550c37242 < honnir/22 72 --- > honnir/22 76 36562c37254 < honoris 155 --- > honoris 173 36584a37277 > horlogique/2 3 36586c37279 < hormis 89 --- > hormis 87 36614c37307 < hors 89 --- > hors 87 36621,36622c37314,37315 < hors-concours 36 < hors-cote 36 --- > hors-concours 35 > hors-cote 35 36629c37322 < hors-la-loi 78 --- > hors-la-loi 74 36640,36641c37333,37334 < hors-série 36 < hors-série 36 --- > hors-série 35 > hors-série 35 36680c37373 < hot 36 --- > hot 35 36681a37375 > hot-line/1 2 36682a37377 > hotline/1 2 36721c37416 < hourdir/22 72 --- > hourdir/22 76 36743c37438 < http/96 154 --- > http/93 178 36815a37511 > humidistance/2 2 36823c37519 < humiliée/5 6 --- > humiliée/5 9 36829a37526 > humoristiquement/9 8 36854c37551 < husky/40 1 --- > husky/38 1 36879c37576 < hybris/2 2 --- > hybris/6 40 36943c37640 < hydrogéner/60 5 --- > hydrogéner/59 5 36947a37645 > hydrogénoïde/2 3 36951a37650 > hydrojet/2 1 36962a37662 > hydrolysat/2 1 36982a37683 > hydrophane/2 3 37065a37767 > hyménoplastie/2 2 37068a37771 > hyoscyamine/2 2 37072c37775 < hype 36 --- > hype 35 37074a37778 > hyper-eutectique/2 3 37078a37783 > hyperaldostéronisme/2 1 37090c37795 < hyperboliser/11 159 --- > hyperboliser/11 101 37103a37809 > hypercomplexe/2 3 37106a37813 > hypercorticisme/2 1 37114a37822 > hypereutectique/2 3 37192c37900 < hypertenseur/2 120 --- > hypertenseur/2 124 37203a37912 > hypertriglycéridémie/2 2 37214c37923 < hyperviscosité/1 2 --- > hyperviscosité/2 2 37238a37948 > hypo-eutectique/2 3 37244a37955 > hypocalcémie/2 2 37270a37982 > hypoeutectique/2 3 37280a37993 > hypogonadisme/2 1 37305a38019 > hypospade/2 1 37331c38045 < hypothénar/6 36 --- > hypothénar/6 35 37414a38129 > hédonique/2 3 37428c38143 < héler/26 13 --- > héler/27 13 37541c38256 < hémoglobinurie/1 2 --- > hémoglobinurie/2 2 37552a38268 > hémophilique/2 3 37563a38280 > hémothorax/6 7 37568a38286 > hémérothèque/2 2 37572a38291 > hépatectomie/2 2 37576a38296 > hépato-biliaire/2 3 37577a38298 > hépatobiliaire/2 3 37583a38305 > hépatome/2 1 37584a38307,38308 > hépatonéphrite/2 2 > hépatotoxique/2 3 37595c38319 < hérissonner/4 34 --- > hérissonner/4 36 37599c38323 < hériter/43 125 --- > hériter/43 144 37639a38364 > hétérochrome/2 3 37662a38388 > hétérolécithe/2 3 37677a38404 > hétéroscédasticité/2 2 37723,37725c38450,38452 < icelle/9 393 < icelles/9 394 < icelui/9 263 --- > icelle/9 430 > icelles/9 431 > icelui/9 284 37727c38454 < iceux/9 392 --- > iceux/9 429 37749c38476 < iconiser 80 --- > iconiser 82 37776c38503 < id 69 --- > id 65 37796a38524 > idiomographie/2 2 37815c38543 < idolâtrer/12 13 --- > idolâtrer/12 103 37831c38559 < idéals/9 137 --- > idéals/9 156 37853a38582 > ignicole/2 11 37879c38608 < il/273 251 --- > il/273 273 37912c38641 < illuminée/5 6 --- > illuminée/5 9 37917d38645 < illusionnée/5 6 37944c38672 < ils/272 359 --- > ils/272 393 37970a38699 > imagoïque/2 3 38035c38764 < immigrée/5 6 --- > immigrée/5 9 38071a38801 > immotique/2 2 38110c38840 < immunosupprimée/3 4 --- > immunosupprimée/5 4 38152c38882 < impartir/252 72 --- > impartir/252 76 38194a38925 > imperméabilisante/5 4 38218a38950 > implantable/2 3 38242c38974 < implémenter/11 150 --- > implémenter/11 97 38253d38984 < import/27 17 38260c38991,38992 < importer/12 106 --- > importer/12 116 > imports-exports/9 21 38293c39025,39026 < imprimante/5 6 --- > imprimante/5 4 > imprimante/2 2 38320,38321c39053,39054 < improviser/12 34 < improviste/27 17 --- > improviser/12 36 > improviste/28 17 38347a39081 > impubliée/5 4 38373c39107 < imputer/12 108 --- > imputer/12 126 38405c39139 < impétrer/60 5 --- > impétrer/59 5 38410c39144 < in 69 --- > in 65 38412c39146 < in-dix-huit/6 36 --- > in-dix-huit/6 35 38414c39148 < in-douze/6 36 --- > in-douze/6 35 38416c39150 < in-folio/6 36 --- > in-folio/6 35 38418c39152 < in-octavo/6 36 --- > in-octavo/6 35 38420c39154 < in-plano/6 36 --- > in-plano/6 35 38422c39156 < in-quarto/6 36 --- > in-quarto/6 35 38424c39158 < in-seize/6 36 --- > in-seize/6 35 38432a39167 > inacceptée/5 4 38434a39170 > inacclimatable/2 3 38438a39175,39176 > inaccostable/2 3 > inaccoutumance/2 2 38439a39178 > inaccusable/2 3 38459a39199 > inajournable/2 3 38499a39240 > inassiduité/2 2 38501a39243 > inassociable/2 3 38504a39247 > inassujettie/5 4 38535c39278 < incarcérer/60 5 --- > incarcérer/59 5 38537c39280 < incardiné/2 120 --- > incardiné/2 124 38563a39307 > inchoation/2 2 38568c39312 < incidentelle/3 4 --- > incidentelle/5 4 38571c39315 < incinérer/60 5 --- > incinérer/59 5 38598c39342 < incliner/12 34 --- > incliner/12 36 38600c39344 < inclure/126 67 --- > inclure/126 85 38617c39361 < incomber/174 126 --- > incomber/174 145 38628c39372 < incommodo 69 --- > incommodo 65 38718a39463 > incopiable/2 3 38755a39501 > incrémentalement/9 8 38769c39515 < inculpée/5 6 --- > inculpée/5 9 38832c39578 < indifférer/60 5 --- > indifférer/59 5 38844c39590 < indigo/6 36 --- > indigo/6 35 38903a39650 > indo-aryen/2 1 38913a39661 > indolique/2 3 38930a39679 > inductivisme/2 1 38933c39682 < induire/86 71 --- > induire/86 78 39156c39905 < infiltrée/5 6 --- > infiltrée/5 9 39164a39914 > infinitum 65 39187c39937 < infliger/12 113 --- > infliger/12 118 39196c39946 < infléchir/45 70 --- > infléchir/45 79 39199a39950 > infobésité/2 2 39223c39974 < informer/12 34 --- > informer/12 36 39233c39984,39989 < infra/27 8 --- > infra/28 8 > infra-classe/2 2 > infra-embranchement/2 1 > infra-monde/2 1 > infra-ordre/2 1 > infra-règne/2 1 39242a39999,40000 > infralittorale/18 4 > inframonde/2 1 39276c40034 < inférer/60 5 --- > inférer/59 5 39383,39384c40141,40142 < initio 69 < initiée/5 6 --- > initio 65 > initiée/5 9 39400c40158 < injuriée/5 6 --- > injuriée/5 9 39417c40175 < innocentée/5 6 --- > innocentée/5 9 39453c40211 < inondée/5 6 --- > inondée/5 9 39504c40262 < insaponifiable/1 3 --- > insaponifiable/2 3 39517c40275 < inscrire/78 67 --- > inscrire/78 85 39603,39604c40361,40362 < inspirer/12 34 < inspirée/5 6 --- > inspirer/12 36 > inspirée/5 9 39623c40381 < instar/44 185 --- > instar/44 205 39652c40410 < instruire/76 67 --- > instruire/76 85 39681a40440 > insulinique/2 3 39684c40443 < insulinome/1 1 --- > insulinome/2 1 39689c40448 < insulter/12 111 --- > insulter/12 140 39691c40450 < insultée/5 6 --- > insultée/5 9 39698c40457 < insurgée/5 6 --- > insurgée/5 9 39704a40464 > insécuritaire/2 3 39709d40468 < inséminée/5 6 39775c40534 < interactionnelle/3 4 --- > interactionnelle/5 4 39781c40540 < interagir/103 87 --- > interagir/103 143 39786,39787c40545,40546 < interarmes/6 36 < interarmées/6 36 --- > interarmes/6 35 > interarmées/6 35 39816c40575 < interclubs/6 36 --- > interclubs/6 35 39841c40600,40601 < interdire/109 67 --- > interdimensionnelle/5 4 > interdire/109 91 39844a40605 > interdécile/2 3 39848c40609 < interentreprises 36 --- > interentreprises 35 39859c40620 < interfonctionner/71 107 --- > interfonctionner/71 111 39921c40682 < internalisme/1 1 --- > internalisme/2 1 39948c40709 < interpellante/3 4 --- > interpellante/5 4 39952,39953c40713,40714 < interpellée/5 6 < interpelée/5 6 --- > interpellée/5 9 > interpelée/5 9 39983c40744 < interreligieuse/7 4 --- > interreligieuse/18 4 39995c40756 < interrogée/5 6 --- > interrogée/5 9 39997c40758 < interrompre/53 67 --- > interrompre/53 85 40024a40786 > intertexte/2 1 40036c40798 < intervenir/70 148 --- > intervenir/70 162 40042c40804 < intervertir/65 72 --- > intervertir/65 167 40053c40815 < intestat/6 36 --- > intestat/6 35 40094a40857 > intra-embryonnaire/2 3 40096c40859 < intra-muros/6 36 --- > intra-muros/6 35 40115a40879 > intraembryonnaire/2 3 40123c40887 < intramuros/6 36 --- > intramuros/6 35 40142a40907 > intrathoracique/2 3 40161c40926 < introduire/76 67 --- > introduire/76 98 40189c40954 < intuitu/6 69 --- > intuitu/6 65 40206c40971 < intégrer/66 111 --- > intégrer/66 140 40211d40975 < intégrée/5 6 40214,40215c40978,40979 < intéresser/12 13 < intéressée/5 6 --- > intéresser/12 107 > intéressée/5 9 40226c40990,40992 < inuit/2 11 --- > inuite/5 6 > inukshuk/2 1 > inuksuk/2 1 40263c41029 < inventer/12 34 --- > inventer/12 36 40284c41050 < invertir/65 72 --- > invertir/65 76 40289c41055,41056 < investir/45 94 --- > investir/45 142 > investison/2 1 40300a41068 > invisibilisation/2 2 40310c41078 < invitée/5 6 --- > invitée/5 9 40326c41094 < invoquée/5 6 --- > invoquée/5 9 40372a41141 > iodation/2 2 40394d41162 < iota/2 1 40400c41168 < ipso/74 69 --- > ipso/74 65 40401a41170 > ipé/2 1 40405a41175 > irako-syrienne/5 6 40409c41179 < irato 69 --- > irato 65 40416a41187 > iridocyclite/2 2 40444,40445c41215,41216 < irradier/12 34 < irradiée/5 6 --- > irradier/12 36 > irradiée/5 9 40459a41231 > irremboursable/2 3 40470a41243 > irrigante/5 9 40480d41252 < irritée/5 6 40552c41324 < isabelle/6 36 --- > isabelle/6 35 40562a41335 > isenthalpique/2 3 40607a41381 > isoenzyme/2 10 40649a41424 > isomérisme/2 1 40675a41451 > isospin/2 1 40695a41472 > isozyme/2 10 40704c41481 < issir/233 88 --- > issir/233 110 40709c41486 < italianiser/12 34 --- > italianiser/12 36 40713a41491,41499 > italo-africaine/5 6 > italo-albanaise/5 6 > italo-américaine/5 6 > italo-autrichienne/5 6 > italo-belge/2 11 > italo-espagnole/5 6 > italo-française/5 6 > italo-néerlandaise/5 6 > italo-éthiopienne/5 6 40728c41514 < itérer/60 5 --- > itérer/59 5 40790c41576 < jacqueter 149 --- > jacqueter 169 40805c41591 < jaillir/22 87 --- > jaillir/22 92 40821c41607 < jamais 115 --- > jamais 194 40910c41696 < jauger/4 34 --- > jauger/4 36 40916c41702 < jaunir/22 95 --- > jaunir/22 106 40939c41725 < jazzman/40 1 --- > jazzman/38 1 40941c41727 < jazzy 36 --- > jazzy 35 40946c41732 < je 362 --- > je 396 40958c41744 < jectisse/1 101 --- > jectisse/1 105 40973c41759 < jet-society/40 2 --- > jet-society/38 2 40978c41764 < jeter/36 13 --- > jeter/36 107 40991c41777 < jeun 132 --- > jeun 147 40994d41779 < jeuner/10 18 40997d41781 < jeuneuse/3 9 41019a41804 > jobastre/1 11 41039c41824 < joindre/69 93 --- > joindre/69 91 41046c41831 < jointoyer/4 5 --- > jointoyer/4 101 41079c41864 < jonquille 36 --- > jonquille 35 41089c41874,41875 < joual 17 --- > joual/1 1 > jouale/3 4 41092c41878 < jouer/4 34 --- > jouer/4 36 41100c41886 < jouir/56 193 --- > jouir/56 187 41129c41915 < jovials 128 --- > jovials 131 41145c41931 < jucher/4 34 --- > jucher/4 36 41179c41965 < juger/4 111 --- > juger/4 168 41196c41982 < juke-box/40 1 --- > juke-box/38 1 41204d41989 < jumeau/17 86 41208c41993 < jumelle/1 102 --- > jumelle/3 6 41215c42000 < juniore/1 102 --- > juniore/1 112 41218c42003 < junky/40 10 --- > junky/38 10 41235c42020 < jurer/4 34 --- > jurer/4 36 41251c42036 < jusqu/28 89 --- > jusqu/23 87 41254c42039 < jusque 89 --- > jusque 87 41256c42041 < jusques 89 --- > jusques 87 41277c42062 < justifier/4 108 --- > justifier/4 126 41305a42091 > kabic/1 1 41313a42100 > kakapo/1 1 41318c42105 < kaki 36 --- > kaki 35 41345a42133 > kannara/1 1 41360a42149 > kaputt 35 41378c42167,42168 < kascher 36 --- > kascher 35 > kashrout 40 41398a42189 > kelp/1 1 41438c42229 < kibboutznik 78 --- > kibboutznik 74 41456c42247 < kif-kif 36 --- > kif-kif 35 41467c42258 < kilométrer/26 5 --- > kilométrer/27 5 41486a42278 > kinésie/1 2 41506c42298 < kitch 36 --- > kitch 35 41512c42304 < kitsch 36 --- > kitsch 35 41531c42323 < knock-down 36 --- > knock-down 35 41533c42325 < knock-out 36 --- > knock-out 35 41622a42415 > kyriologique/1 3 41655c42448 < l 398 --- > l 435 41658,41660c42451,42454 < l'accoutumée 69 < l'envi 69 < la 223 --- > l'accoutumée 65 > l'envi 65 > la 238 > la 401 41708c42502 < lacaniser 149 --- > lacaniser 169 41746a42541 > lactone/1 2 41759c42554 < lacérer/26 5 --- > lacérer/27 5 41765c42560 < ladite 223 --- > ladite 238 41768c42563 < lady/40 2 --- > lady/38 2 41781a42577 > lahar/1 1 41834c42630 < lambda 36 --- > lambda 35 41844a42641 > lambliase/1 2 41867c42664 < lamenter/4 34 --- > lamenter/4 36 41884c42681 < lamineux 129 --- > lamineux 137 41895c42692 < lampes-tempête 344 --- > lampes-tempête 378 41935a42733 > lancière/1 112 41969c42767 < languir/22 194 --- > languir/22 209 41975c42773 < lanice/1 101 --- > lanice/1 105 42031c42829 < laquelle 366 --- > laquelle 404 42068c42866 < larronnesse/1 337 --- > larronnesse/1 371 42097c42895 < lasser/4 34 --- > lasser/4 36 42109,42110c42907,42908 < latere 36 < latere 69 --- > latere 35 > latere 65 42119c42917 < latina/1 102 --- > latina/1 112 42145,42146c42943,42944 < latéré 36 < latéré 69 --- > latéré 35 > latéré 65 42152c42950 < lauracée/1 102 --- > lauracée/1 112 42157c42955 < lauriers-cerises 321 --- > lauriers-cerises 354 42177c42975 < lavatory/40 1 --- > lavatory/38 1 42225a43024 > laïcarde/3 6 42236c43035,43036 < le 186 --- > le 206 > le 400 42247c43047 < ledit 186 --- > ledit 206 42261a43062 > lek/1 1 42269a43071 > lempira/1 1 42288a43091 > leptine/1 2 42299c43102 < lequel 218 --- > lequel 232 42301c43104,43105 < les 266 --- > les 287 > les 402 42304,42307c43108,43111 < lesdites 265 < lesdits 264 < lesquelles 220 < lesquels 219 --- > lesdites 286 > lesdits 285 > lesquelles 234 > lesquels 233 42319c43123 < let 36 --- > let 35 42348a43153 > leucoxène/1 1 42352,42353c43157,43158 < leur 172 < leur 365 --- > leur 195 > leur 399 42357c43162 < leurs 173 --- > leurs 196 42367c43172 < lever/46 34 --- > lever/46 36 42378a43184 > lewisite/1 2 42392c43198 < lez 89 --- > lez 87 42423a43230 > libertarisme/1 1 42433c43240 < libitum 69 --- > libitum 65 42468c43275 < libérer/26 13 --- > libérer/27 13 42480c43287,43288 < licenciée/3 6 --- > licenciée/3 9 > lichaven/1 1 42485c43293 < lichetrogner 149 --- > lichetrogner 169 42487,42488c43295,43296 < lichoter 149 < lichotter 149 --- > lichoter 169 > lichotter 169 42505c43313 < lie-de-vin 36 --- > lie-de-vin 35 42510c43318 < lier/4 13 --- > lier/4 141 42524,42525c43332,43333 < lieutenante-gouverneure 338 < lieutenantes-gouverneures 343 --- > lieutenante-gouverneure 372 > lieutenantes-gouverneures 377 42527c43335 < lieutenants-gouverneurs 320 --- > lieutenants-gouverneurs 353 42541c43349 < light 36 --- > light 35 42554a43363 > ligniculture/1 2 42575c43384 < lilas 160 --- > lilas 179 42592c43401 < limer/4 34 --- > limer/4 36 42607a43417 > limite/1 3 42628a43439 > limougeaude/3 6 42712a43524 > lipo-aspiration/1 2 42765c43577 < lire/149 93 --- > lire/149 129 42769c43581 < lisbroquer 112 --- > lisbroquer 117 42799c43611 < lisérer/26 5 --- > lisérer/27 5 42852c43664 < litroner 112 --- > litroner 117 42879c43691 < live 36 --- > live 35 42892c43704 < livrer/4 13 --- > livrer/4 141 42903c43715 < liéger/26 5 --- > liéger/27 5 42912c43724 < lobby/40 1 --- > lobby/38 1 42948c43760 < locations-gérances 342 --- > locations-gérances 376 42992c43804 < loger/4 34 --- > loger/4 36 43043a43856 > loirétaine/3 6 43137c43950 < lorry/40 1 --- > lorry/38 1 43139,43141c43952,43954 < lors 409 < lorsqu/28 139 < lorsque 139 --- > lors 446 > lorsqu/23 158 > lorsque 158 43153c43966 < lotir/22 72 --- > lotir/22 76 43176c43989 < louchir/56 87 --- > louchir/56 92 43196c44009 < louper/4 34 --- > louper/4 36 43197a44011 > loupiotte/1 2 43201c44015 < louquer 80 --- > louquer 82 43205c44019 < lourder/4 150 --- > lourder/4 97 43255a44070 > luciférase/1 2 43283,43286c44098,44101 < lui 215 < lui 251 < lui-même 356 < luire/123 88 --- > lui 229 > lui 273 > lui-même 390 > luire/123 133 43300a44116 > luminifère/1 3 43316c44132 < lunch/40 1 --- > lunch/38 1 43334a44151 > lupique/1 11 43366c44183 < lutter/10 18 --- > lutter/10 210 43414a44232 > lymphadénite/1 2 43486,43487c44304,44305 < lèche-bottes 78 < lèche-cul 96 --- > lèche-bottes 74 > lèche-cul 93 43495c44313 < lès 89 --- > lès 87 43500,43501c44318,44319 < lève-tard 78 < lève-tôt 78 --- > lève-tard 74 > lève-tôt 74 43508c44326 < lécher/26 13 --- > lécher/27 13 43549c44367 < léguer/26 13 --- > léguer/27 13 43593c44411 < léser/26 5 --- > léser/27 5 43619c44437 < lézarder/4 34 --- > lézarder/4 36 43623c44441,44442 < m'as-tu-vu 78 --- > m'as-tu-vu 74 > mCE 7 43625c44444 < ma 222 --- > ma 237 43633a44453 > macadamia/1 1 43645c44465 < macchaber 127 --- > macchaber 136 43682a44503 > macro-commande/1 2 43690a44512 > macrocommande/1 2 43709a44532 > macromycète/1 1 43717a44541 > macrophyte/1 1 43747c44571 < macérer/26 19 --- > macérer/27 19 43750c44574 < made 36 --- > made 35 43796c44620 < magenta 36 --- > magenta 35 43835a44660 > magnésioferrite/1 2 43865a44691 > magnétophonique/1 3 43903a44730 > mahoraise/3 6 43905c44732 < mahratte/1 2 --- > mahratte/1 11 43914c44741 < maigrir/22 95 --- > maigrir/22 134 43916c44743 < mail-coach/40 1 --- > mail-coach/38 1 43940c44767 < mainmettre/75 71 --- > mainmettre/75 78 43945c44772 < mainte/3 391 --- > mainte/3 428 43952c44779 < maintenir/70 67 --- > maintenir/70 91 43958c44785 < mais 163 --- > mais 182 43967c44794 < maitre-chien 17 --- > maitre-chien 119 43973c44800 < maitres-chiens 21 --- > maitres-chiens 104 44006c44833 < mal-en-point 36 --- > mal-en-point 35 44070c44897 < malfaire 157 --- > malfaire 177 44082c44909 < malgré 89 --- > malgré 87 44204a45032 > mammoplastie/1 2 44252a45081 > mandibulate/1 1 44253a45083,45084 > mandille/1 2 > mandingue/1 11 44269a45101 > mangaka/1 10 44284c45116 < manger/4 170 --- > manger/4 103 44321c45153 < manifester/4 34 --- > manifester/4 36 44343c45175 < maniérer/26 13 --- > maniérer/27 13 44367c45199 < manquer/4 111 --- > manquer/4 140 44386c45218 < manu 69 --- > manu 65 44410c45242 < manéger/26 5 --- > manéger/27 5 44457a45290 > marathe/1 11 44491a45325 > marchandiser/4 97 44496c45330 < marcher/10 18 --- > marcher/10 135 44515c45349 < marengo 36 --- > marengo 35 44559c45393 < marials 128 --- > marials 131 44595c45429 < mariée/3 6 --- > mariée/3 9 44653c45487 < marquer/4 34 --- > marquer/4 36 44667c45501 < marron 36 --- > marron 35 44694c45528 < marteaux-piqueurs 319 --- > marteaux-piqueurs 352 44699a45534 > martellière/1 2 44713,44714c45548,45549 < martins-chasseurs 318 < martins-pêcheurs 317 --- > martins-chasseurs 351 > martins-pêcheurs 350 44728,44729c45563,45564 < marxiste-léniniste 117 < marxistes-léninistes 103 --- > marxiste-léniniste 119 > marxistes-léninistes 104 44775c45610 < masquer/4 34 --- > masquer/4 36 44812c45647 < mastic 36 --- > mastic 35 44823c45658 < mastoc 36 --- > mastoc 35 44831a45667 > mastoïdectomie/1 2 44839c45675 < mastéguer 149 --- > mastéguer 169 44850c45686 < match/40 1 --- > match/38 1 44876c45712 < math/96 37 --- > math/93 37 44892c45728 < matir/22 72 --- > matir/22 76 44948c45784 < maudire/187 71 --- > maudire/187 78 44972c45808 < maxi 36 --- > maxi 35 44975a45812,45813 > maxillipède/1 1 > maxillo-dentaire/1 3 44976a45815 > maxillodentaire/1 3 44977a45817 > maxillule/1 2 44986a45827 > maximisatrice/3 6 44998a45840 > mazama/1 1 45006a45849 > mazéage/1 1 45025,45026c45868,45869 < maîtres-couples 316 < maîtres-cylindres 315 --- > maîtres-couples 349 > maîtres-cylindres 348 45036a45880,45881 > maïorale/7 4 > maïorat/1 1 45041a45887 > mbalax 7 45043c45889 < me 217 --- > me 231 45047a45894 > mecquoise/3 6 45056c45903 < melba 36 --- > melba 35 45141a45989 > menthone/1 2 45144c45992 < mentir/246 156 --- > mentir/246 199 45187c46035 < mercureux 129 --- > mercureux 137 45224c46072 < mes 173 --- > mes 196 45264c46112 < mesurer/4 34 --- > mesurer/4 107 45272c46120 < mettre/75 158 --- > mettre/75 98 45294c46142 < meurtrir/22 72 --- > meurtrir/22 134 45302c46150 < mezza-voce 69 --- > mezza-voce 65 45304c46152 < mezzo 78 --- > mezzo 74 45306c46154 < mezzo-soprano 78 --- > mezzo-soprano 74 45319c46167 < mi-chemin 69 --- > mi-chemin 65 45321,45323c46169,46171 < mi-course 69 < mi-côte 69 < mi-distance 413 --- > mi-course 65 > mi-côte 65 > mi-distance 449 45325c46173 < mi-fin/1 120 --- > mi-fin/1 124 45327c46175 < mi-jambe 69 --- > mi-jambe 65 45337,45338c46185,46186 < mi-temps 78 < mi-voix 69 --- > mi-temps 74 > mi-voix 65 45364a46213 > micro-embranchement/1 1 45373a46223 > micro-ordre/1 1 45394a46245 > microcalorimètre/1 1 45395a46247 > microcanal/17 1 45423a46276 > microfibrille/1 2 45427a46281,46282 > microfiltration/1 2 > microfiltre/1 1 45429a46285 > microfluidique/1 3 45455a46312 > micromélie/1 2 45484a46342 > microporeuse/7 4 45529a46388 > mictionnelle/3 4 45533c46392 < midshipman/40 1 --- > midshipman/38 1 45545c46404 < mieux 407 --- > mieux 444 45573c46432 < mijoter/4 34 --- > mijoter/4 36 45593c46452 < militari 69 --- > militari 65 45678a46538,46540 > minarchie/1 2 > minarchisme/1 1 > minarchiste/1 11 45687c46549 < mincir/56 87 --- > mincir/56 143 45822c46684 < mirepoix 36 --- > mirepoix 35 45866c46728 < miss/40 2 --- > miss/38 2 45874c46736 < missive/1 102 --- > missive/1 112 45895c46757 < mitarder 80 --- > mitarder 82 45897c46759 < miter/4 98 --- > miter/4 95 45913c46775 < mitonner/4 34 --- > mitonner/4 36 45943a46806,46807 > mloukhiya/1 2 > mmCE 7 45945a46810 > mnème/1 2 45981a46847 > modelable/1 3 46009c46875 < modifier/4 13 --- > modifier/4 103 46014c46880 < modo 69 --- > modo 65 46024c46890 < modulo 36 --- > modulo 35 46027a46894 > modélisable/1 3 46042,46043c46909,46910 < modérer/26 13 < modérée/3 6 --- > modérer/27 13 > modérée/3 9 46057,46058c46924,46926 < moi 217 < moi-même 217 --- > mohawk/1 11 > moi 231 > moi-même 231 46067c46935 < moins 406 --- > moins 443 46071c46939 < moins-que-rien 78 --- > moins-que-rien 74 46084c46952 < moisir/22 87 --- > moisir/22 92 46098c46966 < moitir/22 72 --- > moitir/22 76 46103c46971,46972 < mol/1 120 --- > moksha/1 10 > mol/1 124 46131c47000 < molle/1 101 --- > molle/3 4 46140c47009 < mollir/22 95 --- > mollir/22 106 46168c47037 < mon 172 --- > mon 195 46207a47077 > mongoliste/1 10 46228a47099 > monoarthrite/1 2 46255c47126 < monocorps 36 --- > monocorps 35 46281a47153 > monogastrique/1 3 46343a47216 > monoposte/1 3 46431a47305,47306 > monte-meuble/1 1 > monte-meubles 7 46438c47313 < monter/4 34 --- > monter/4 257 46447a47323 > montpelliéraine/3 6 46451c47327 < montrer/4 292 --- > montrer/4 141 46531c47407 < mordre/53 147 --- > mordre/53 244 46542c47418 < morfondre/204 119 --- > morfondre/204 123 46552c47428 < morigéner/26 5 --- > morigéner/27 5 46567a47444 > morphe/1 1 46610c47487 < mortem 132 --- > mortem 147 46617a47495 > mortinaissance/1 2 46628a47507 > mosasaure/1 1 46678a47558 > motorisable/1 3 46697,46699c47577 < mou/1 3 < mou/1 1 < mouais 115 --- > mouais 120 46707c47585 < moucher/4 34 --- > moucher/4 36 46724c47602 < moudre/124 71 --- > moudre/124 113 46728c47606 < moufeter 112 --- > moufeter 117 46768c47646 < moult 115 --- > moult 120 46776c47654 < mourir/239 276 --- > mourir/239 299 46779c47657 < mouronner/4 98 --- > mouronner/4 95 46825,46826c47703,47704 < mouver/4 98 < mouvoir/220 67 --- > mouver/4 95 > mouvoir/220 85 46868a47747 > mucoïde/1 3 46876c47755 < muer/4 34 --- > muer/4 36 46889c47768 < mugir/22 87 --- > mugir/22 92 46902a47782 > mullite/1 2 46907c47787,47788 < multi 154 --- > multi 178 > multi-catégorielle/3 4 46910a47792 > multi-usage/1 3 46913c47795 < multibras 36 --- > multibras 35 46915a47798,47799 > multicanale/7 4 > multicatégorielle/3 4 46918a47803,47804 > multicentrique/1 3 > multicolinéarité/1 2 46946c47832 < multifréquences 36 --- > multifréquences 35 46954c47840 < multijoueurs 36 --- > multijoueurs 35 46965a47852 > multimillénaire/1 3 46967a47855 > multimoteur/1 3 46973a47862 > multinucléée/3 4 46976a47866 > multipartite/1 3 46982c47872 < multiplex 36 --- > multiplex 35 46997c47887 < multiplier/4 34 --- > multiplier/4 36 46999a47890 > multiposte/1 3 47012a47904,47905 > multiscalaire/1 3 > multisoc/1 3 47026a47920 > multiusage/1 3 47048c47942 < munir/22 70 --- > munir/22 79 47067c47961 < mure/1 101 --- > mure/1 105 47094c47988 < murs 128 --- > murs 131 47135c48029 < muser/4 98 --- > muser/4 95 47152c48046 < musicos 78 --- > musicos 74 47170a48065 > muséification/1 2 47184c48079 < mutandis 69 --- > mutandis 65 47190c48085 < mutatis 69 --- > mutatis 65 47197a48093 > mutinement 8 47234a48131 > mycétome/1 1 47243a48141 > myoclonie/1 2 47244a48143 > myodésopsie/1 2 47268a48168 > myotonie/1 2 47269a48170 > myriagramme/1 1 47324a48226 > myxome/1 1 47368a48271 > mème/1 1 47388a48292 > mécanisable/1 3 47404c48308 < mécher/26 5 --- > mécher/27 5 47409c48313 < méconduire/86 119 --- > méconduire/86 123 47415,47416c48319,48320 < méconnaitre/77 67 < méconnaître/77 67 --- > méconnaitre/77 85 > méconnaître/77 85 47421c48325 < mécroire/152 71 --- > mécroire/152 78 47502c48406 < médire/188 177 --- > médire/188 222 47531c48435 < méfaire 157 --- > méfaire 177 47548a48453 > mégaloblastique/1 3 47554a48460,48461 > mégaloptère/1 1 > mégalérythème/1 1 47566c48473,48474 < mégir/22 72 --- > mégavirus 7 > mégir/22 76 47584,47585c48492,48493 < méjuger/4 108 < mél 40 --- > méjuger/4 126 > mél 7 47602a48511 > mélanocrate/1 3 47605a48515 > mélanophore/1 1 47614a48525 > mélilite/1 2 47618a48530 > mélioïdose/1 2 47670a48583 > ménaquinone/1 2 47687c48600 < ménopausée/1 101 --- > ménopausée/1 105 47698c48611 < méprendre/130 119 --- > méprendre/130 123 47704a48618 > méprobamate/1 1 47714c48628 < mériter/4 108 --- > mériter/4 261 47718a48633 > mérocrine/1 3 47773a48689 > mésopique/1 3 47774a48691 > mésopélagique/1 3 47789c48706 < mésuser/10 126 --- > mésuser/10 145 47802a48720 > métacercaire/1 2 47850a48769 > métamoteur/1 1 47854a48774 > métamérisme/1 1 47877a48798 > métareprésentation/1 2 47910a48832 > méthaqualone/1 2 47923a48846 > méthyler/4 100 47928a48852 > méthémoglobinémie/1 2 47942c48866 < métrer/26 5 --- > métrer/27 5 47954a48879 > métronidazole/1 1 47981c48906 < mévendre/53 71 --- > mévendre/53 78 47984,47985c48909,48910 < mézigue 358 < mêle-tout 78 --- > mézigue 392 > mêle-tout 74 47990c48915 < même 115 --- > même 120 47992a48918 > môlaire/1 3 47995c48921 < mûr 135 --- > mûr 150 48009c48935 < n'importe 369 --- > n'importe 191 48023c48949 < nacarat 36 --- > nacarat 35 48039a48966 > nahua/1 11 48047c48974 < naitre/113 148 --- > naitre/113 176 48057a48985 > nanisante/3 4 48064a48993,48994 > nanofiltration/1 2 > nanofiltre/1 1 48072a49003 > nanoscopie/1 2 48081c49012 < nantir/22 70 --- > nantir/22 79 48125a49057 > nargueuse/3 4 48134a49067 > narratologie/1 2 48153a49087 > nasopharynx 7 48168c49102 < national-socialiste 117 --- > national-socialiste 119 48177c49111 < nationaux-socialistes 103 --- > nationaux-socialistes 104 48185a49120 > natrolite/1 2 48213a49149 > nauseam 65 48221a49158 > navajo/1 11 48223c49160 < navaler 127 --- > navaler 136 48255c49192 < naître/113 148 --- > naître/113 176 48261c49198 < ne 184 --- > ne 194 48267a49205 > nectarifère/1 3 48275,48276c49213,49214 < neigeoter/71 107 < neiger/71 107 --- > neigeoter/71 111 > neiger/71 111 48281c49219 < nenni 184 --- > nenni 194 48312c49250 < neu-neu 181 --- > neu-neu 204 48318a49257 > neuraminidase/1 2 48320a49260 > neurinome/1 1 48353a49294 > neurogène/1 3 48433c49374 < neux-neux 162 --- > neux-neux 181 48435c49376 < new-look 36 --- > new-look 35 48445c49386 < ni 163 --- > ni 182 48446a49388 > niacine/1 2 48460c49402 < nicher/4 34 --- > nicher/4 36 48466c49408 < nickel 36 --- > nickel 35 48507c49449 < nigauder 112 --- > nigauder 117 48518c49460 < nihilo 69 --- > nihilo 65 48575a49518 > nitrosyle/1 1 48645c49588 < noircir/22 94 --- > noircir/22 99 48655c49598 < noisette 36 --- > noisette 35 48705c49648 < non 184 --- > non 194 48771c49714 < non-stop 96 --- > non-stop 93 48810c49753 < nonobstant 131 --- > nonobstant 146 48831c49774 < nordir/56 87 --- > nordir/56 92 48847a49791 > normoblaste/1 1 48855c49799 < nos 173 --- > nos 196 48878c49822 < noter/4 5 --- > noter/4 101 48889c49833 < notre 172 --- > notre 195 48896c49840 < nouer/4 34 --- > nouer/4 36 48911c49855 < nourrir/22 94 --- > nourrir/22 186 48917,48918c49861,49862 < nous 250 < nous-même/96 250 --- > nous 272 > nous-même/93 272 48920d49863 < nouveau/17 86 48923,48924c49866,49867 < nouvel 135 < nouvelle/1 102 --- > nouvel 150 > nouvelle/7 6 49009c49952 < nuire/123 176 --- > nuire/123 199 49020c49963 < nul 182 --- > nul 215 49022c49965 < nulle/3 260 --- > nulle/3 281 49061c50004 < nunc 69 --- > nunc 65 49078c50021 < nursery/40 2 --- > nursery/38 2 49083a50027 > nutraceutique/1 3 49103c50047 < nympho/1 102 --- > nympho/1 112 49137c50081 < nécessiter/4 5 --- > nécessiter/4 97 49157a50102 > nécrosante/3 4 49188c50133 < négocier/4 34 --- > négocier/4 36 49219c50164 < néo 154 --- > néo/1 1 49303a50249 > néolatine/3 4 49310a50257 > néologiser/4 135 49354a50302 > néphile/1 2 49359a50308 > néphroangiosclérose/1 2 49369a50319 > néphrotoxique/1 3 49372a50323 > néphélinite/1 2 49432c50383 < objectivisation/1 2 --- > objectivisation/2 2 49453c50404 < obliger/12 13 --- > obliger/12 141 49461c50412 < oblitérer/60 5 --- > oblitérer/59 5 49470c50421 < obscurcir/45 70 --- > obscurcir/45 79 49487c50438 < observer/12 13 --- > observer/12 100 49501c50452 < obstinée/5 6 --- > obstinée/5 9 49515,49516c50466,50467 < obséder/60 5 < obsédée/5 6 --- > obséder/59 5 > obsédée/5 9 49520c50471 < obtempérer/140 125 --- > obtempérer/140 144 49522c50473 < obtenir/168 67 --- > obtenir/168 306 49532c50483 < obvenir/70 88 --- > obvenir/70 110 49535c50486 < obvier/120 126 --- > obvier/120 145 49541c50492 < obéir/254 209 --- > obéir/254 187 49567c50518 < occire/182 71 --- > occire/182 98 49573c50524 < occlure/192 71 --- > occlure/192 78 49594c50545 < ocre/6 36 --- > ocre/6 35 49656c50607 < océane/2 101 --- > océane/2 105 49681a50633 > odontologique/2 3 49695c50647 < off/6 36 --- > off/6 35 49697c50649 < off-shore/6 36 --- > off-shore/6 35 49705c50657 < offensée/5 6 --- > offensée/5 9 49726,49727c50678,50679 < offrir/82 67 < offset/6 96 --- > offrir/82 129 > offset/6 93 49730c50682 < offshore/6 36 --- > offshore/6 35 49756c50708 < oindre/69 67 --- > oindre/69 85 49761a50714 > oiseau-soleil/6 17 49764a50718 > oiseaux-soleils/9 21 49792a50747 > oligoclase/2 2 49798c50753 < oligomérisation/1 2 --- > oligomérisation/2 2 49818c50773 < olive/6 36 --- > olive/6 35 49828c50783 < ollas-podridas/9 341 --- > ollas-podridas/9 375 49844c50799 < olécranienne/3 4 --- > olécranienne/5 4 49887c50842 < ombrophile/1 3 --- > ombrophile/2 3 49894c50849 < omettre/75 71 --- > omettre/75 78 49911c50866 < omnisports/85 36 --- > omnisports/85 35 49916a50872 > omphalocèle/2 2 49920c50876 < on/270 360 --- > on/270 394 49962a50919 > onglerie/2 2 50024a50982 > opacimétrique/2 3 50036c50994 < open/6 36 --- > open/6 35 50040c50998 < operandi 129 --- > operandi 137 50085a51044 > opisthoglyphe/2 3 50119c51078 < opprimée/5 6 --- > opprimée/5 9 50172c51131 < opérandi 129 --- > opérandi 137 50177a51137 > opérationnalité/2 2 50184c51144 < opérer/66 34 --- > opérer/66 36 50187,50188c51147,51148 < opérée/5 6 < or 163 --- > opérée/5 9 > or 182 50205c51165 < orange/6 36 --- > orange/6 35 50223c51183 < orbi 69 --- > orbi 65 50274c51234 < ordonner/12 34 --- > ordonner/12 36 50291c51251 < org/32 199 --- > org/32 213 50311a51272 > organogène/2 3 50321c51282 < organostannique/1 3 --- > organostannique/2 3 50329c51290 < orge/2 10 --- > orge/2 2 50375a51337 > oriya/2 1 50378c51340 < orléanaise/3 6 --- > orléanaise/5 6 50386c51348 < ornaise/3 6 --- > ornaise/5 6 50402a51365 > ornithopode/2 1 50450c51413 < orthographier/12 34 --- > orthographier/12 36 50484a51448 > orthostate/2 1 50544a51509 > osmotrophe/2 3 50551c51516 < ossianisme/1 1 --- > ossianisme/2 1 50589a51555 > ostéo-articulaire/2 3 50590a51557 > ostéoarticulaire/2 3 50643a51611 > otosclérose/2 2 50645a51614 > otospongiose/2 2 50648c51617 < ou 401 --- > ou 438 50653c51622 < ouais 115 --- > ouais 120 50663c51632 < oublier/12 34 --- > oublier/12 36 50666c51635 < oubliée/5 6 --- > oubliée/5 9 50677c51646 < oui 115 --- > oui 120 50694,50695c51663,51664 < ourder 127 < ourdir/45 70 --- > ourder 136 > ourdir/45 79 50712c51681 < out/6 36 --- > out/6 35 50719a51689 > outing/2 1 50720a51691 > outplacement/2 1 50727c51698 < outragée/5 6 --- > outragée/5 9 50732c51703 < outre/74 201 --- > outre/74 193 50739c51710 < outre-mer/27 17 --- > outre-mer/28 17 50743c51714 < outremer/6 36 --- > outremer/6 35 50771c51742 < ouvrir/82 93 --- > ouvrir/82 129 50782c51753 < ouïr/235 71 --- > ouïr/235 78 50803a51775 > ovigère/2 3 50813c51785 < ovo 69 --- > ovo 65 50835a51808 > oxazépam/2 1 50854a51828 > oxydo-réduction/2 2 50880a51855 > ozonation/2 2 50881a51857,51858 > ozoner/11 97 > ozonide/2 1 50884c51861 < ozoniser/11 5 --- > ozoniser/11 97 50891c51868 < où/271 404 --- > où/271 441 50946c51923 < paf 36 --- > paf 35 50955a51933 > page-écran 20 50958,50959c51936,51938 < pageoter 127 < pager/4 98 --- > pageoter 136 > pager/4 95 > pages-écrans 37 50966c51945 < pagnoter/10 98 --- > pagnoter/10 95 50980c51959 < paillarder/4 98 --- > paillarder/4 95 50986c51965 < paille 36 --- > paille 35 51013c51992 < paitre/112 110 --- > paitre/112 152 51015c51994 < pajoter 127 --- > pajoter 136 51016a51996 > pakol/1 1 51057a52038 > palettiseur/1 1 51063a52045 > palindromique/1 3 51096a52079,52080 > palmatilobée/3 4 > palmatiséquée/3 4 51146a52131 > palynologique/1 3 51185a52171 > paléoptère/1 1 51208c52194 < panacher/4 34 --- > panacher/4 36 51246a52233 > pandiculer/10 135 51247a52235 > pandoravirus 7 51254a52243 > panencéphalite/1 2 51280c52269 < paniquer/4 34 --- > paniquer/4 36 51309c52298 < pans-bagnats 314 --- > pans-bagnats 347 51318a52308 > pantacourt/1 1 51347a52338 > pantropicale/7 4 51352a52344 > panzootie/1 2 51390c52382,52383 < papilionacée/3 6 --- > papilionacée/3 4 > papilionacée/1 2 51440c52433 < par 374 --- > par 411 51442,51446c52435,52439 < par-dehors 115 < par-delà 89 < par-derrière 131 < par-dessous 131 < par-dessus 131 --- > par-dehors 120 > par-delà 87 > par-derrière 146 > par-dessous 146 > par-dessus 146 51448,51449c52441,52442 < par-devant 131 < par-devers 89 --- > par-devant 146 > par-devers 87 51450a52444 > para/1 10 51462a52457 > parachimie/1 2 51496a52492 > paraformaldéhyde/1 1 51511c52507 < paraitre/77 88 --- > paraitre/77 133 51515a52512 > paralique/1 3 51535c52532 < paralysée/3 6 --- > paralysée/3 9 51550c52547 < paramétrer/26 5 --- > paramétrer/27 5 51589a52587,52588 > parapode/1 1 > paraprotéine/1 2 51612a52612 > parasitoïde/1 3 51638c52638 < paraître/77 88 --- > paraître/77 133 51642c52642 < parce 382 --- > parce 419 51646a52647 > parcellement/1 1 51661c52662 < parcourir/116 71 --- > parcourir/116 154 51669c52670 < pardonner/4 34 --- > pardonner/4 36 51673c52674 < pare-balles 36 --- > pare-balles 35 51686c52687 < pare-feu 36 --- > pare-feu 35 51720a52722 > parenthésage/1 1 51725c52727 < parer/4 108 --- > parer/4 126 51732c52734 < parfaire/93 71 --- > parfaire/94 154 51739c52741 < parfondre/53 71 --- > parfondre/53 78 51759c52761 < parisis 36 --- > parisis 35 51773a52776 > parkour/1 1 51787c52790 < parler/4 111 --- > parler/4 107 51796,51797c52799,52800 < parme 36 < parmentier 36 --- > parme 35 > parmentier 35 51799c52802 < parmesan/1 1 --- > parmesane/3 6 51801c52804 < parmi 89 --- > parmi 87 51843a52847 > paroxyste/1 11 51869c52873 < partager/4 13 --- > partager/4 107 51875a52880 > partenariale/7 4 51892c52897 < participer/10 126 --- > participer/10 145 51907c52912 < partir/83 148 --- > partir/83 162 51934c52939 < parvenir/70 207 --- > parvenir/70 176 51947c52952 < pas 184 --- > pas 194 51952c52957 < pas-à-pas 36 --- > pas-à-pas 35 51958c52963 < pascaux 128 --- > pascaux 131 51977c52982 < passe-bande 36 --- > passe-bande 35 51996c53001 < passe-partout 36 --- > passe-partout 35 52029c53034 < passer/4 34 --- > passer/4 36 52058a53064 > passiver/4 100 52062c53068 < passé 89 --- > passé 87 52067c53073 < pastel 36 --- > pastel 35 52099c53105 < pat 36 --- > pat 35 52103a53110 > pataphysicienne/3 6 52110c53117 < patata 69 --- > patata 65 52112c53119 < patati 69 --- > patati 65 52148a53156 > pathogénicité/1 2 52169c53177 < patiner/4 34 --- > patiner/4 36 52182a53191 > patres 65 52212c53221 < patronnesse/1 102 --- > patronnesse/1 112 52284c53293 < payer/4 34 --- > payer/4 107 52296c53305 < paître/112 110 --- > paître/112 152 52301c53310 < peau-rouge 181 --- > peau-rouge 204 52308c53317 < peaux-rouges 162 --- > peaux-rouges 181 52338c53347 < peigne-cul 78 --- > peigne-cul 74 52348c53357 < peindre/69 93 --- > peindre/69 148 52350,52351c53359,53360 < peine-à-jouir 78 < peiner/4 19 --- > peine-à-jouir 74 > peiner/4 225 52362c53371 < peler/46 34 --- > peler/46 36 52414c53423 < penalty/40 1 --- > penalty/38 1 52420c53429 < pencher/4 34 --- > pencher/4 36 52424,52425c53433 < pendant 69 < pendant 89 --- > pendant 87 52436c53444 < pendre/53 93 --- > pendre/53 91 52446c53454 < pennines 188 --- > pennines 198 52448c53456 < penny/40 1 --- > penny/38 1 52455c53463 < penser/4 106 --- > penser/4 168 52493a53502 > pentaérythritol/1 1 52500a53510 > pentlandite/1 2 52506a53517 > penty/1 1 52507a53519,53520 > people/1 1 > peopolisation/1 2 52526c53539 < perce-neige 78 --- > perce-neige 74 52534a53548 > percentile/1 1 52549c53563 < percevoir/97 67 --- > percevoir/97 85 52551c53565 < percher/4 34 --- > percher/4 36 52561c53575 < perchman/40 1 --- > perchman/38 1 52563a53578 > perciforme/1 1 52584c53599 < perdre/53 93 --- > perdre/53 91 52646c53661 < permettre/75 67 --- > permettre/75 153 52659c53674 < permuter/4 34 --- > permuter/4 36 52669a53685 > peroxysome/1 1 52674c53690 < perpette 69 --- > perpette 65 52677c53693 < perpète 69 --- > perpète 65 52679c53695 < perpétrer/26 13 --- > perpétrer/27 13 52694c53710 < pers 36 --- > pers 35 52716c53732 < perso 36 --- > perso 35 52725c53741 < personne 182 --- > personne 215 52732c53748 < personæ 69 --- > personæ 65 52770c53786 < pervenche 36 --- > pervenche 35 52776c53792 < pervertir/22 70 --- > pervertir/22 79 52790c53806 < peser/46 34 --- > peser/46 36 52793a53810,53812 > peseuse-ensacheuse 20 > peseuses-ensacheuses 37 > peshmerga/1 11 52798c53817 < pessigner 80 --- > pessigner 82 52807c53826 < pestiférer/26 5 --- > pestiférer/27 5 52819c53838 < petit-bourgeois 145 --- > petit-bourgeois 165 52834c53853 < petite-bourgeoise 138 --- > petite-bourgeoise 157 52840c53859 < petites-bourgeoises 161 --- > petites-bourgeoises 180 52848c53867 < petits-bourgeois 137 --- > petits-bourgeois 156 52861,52862c53880,53881 < petto 69 < peu 410 --- > petto 65 > peu 120 52878c53897 < peut-être 115 --- > peut-être 120 52904a53924 > phalarope/1 1 52994c54014 < philistin/1 1 --- > philistine/3 6 53018a54039 > phlogopite/1 2 53021a54043 > phlycténulaire/1 3 53036a54059 > pholque/1 1 53076a54100 > phonétisation/1 2 53119c54143 < photo 36 --- > photo 35 53124c54148 < photo-robot 117 --- > photo-robot 119 53153a54178 > photodésintégration/1 2 53195a54221 > photopique/1 3 53198a54225 > photorajeunissement/1 1 53199a54227 > photorespiration/1 2 53206c54234 < photos-robots 103 --- > photos-robots 104 53238a54267 > photoélectron/1 1 53246c54275 < phrasicoter 112 --- > phrasicoter 117 53373a54403 > phénacétine/1 2 53423a54454 > phœniciculture/1 2 53463c54494 < pible 155 --- > pible 173 53486a54518 > picodon/1 1 53505,53507c54537,54540 < picrocholine/1 101 < pics-bois 313 < pics-verts 312 --- > picrocholine/1 105 > picrocholine/1 105 > pics-bois 346 > pics-verts 345 53512a54546 > pictorialisme/1 1 53517c54551 < pie/1 102 --- > pie/1 112 53532c54566 < pied-noir 117 --- > pied-noir 119 53548c54582 < pieds-noirs 103 --- > pieds-noirs 104 53594c54628 < pignouf/1 1 --- > pignoufe/3 9 53670c54704 < pince-sans-rire 96 --- > pince-sans-rire 93 53674c54708 < pincer/4 34 --- > pincer/4 36 53689c54723 < pingler 80 --- > pingler 82 53706c54740 < pinter/4 98 --- > pinter/4 95 53743a54778 > pipolisation/1 2 53770c54805 < piquer/4 34 --- > piquer/4 36 53802,53803c54837,54838 < pis 36 < pis 115 --- > pis 35 > pis 120 53822c54857 < pisse-vinaigre 78 --- > pisse-vinaigre 74 53835c54870 < pistache 36 --- > pistache 35 53861a54897 > pitaude/3 6 53864c54900 < pitch/40 1 --- > pitch/38 1 53923c54959 < piéger/26 5 --- > piéger/27 5 53932c54968 < piéter/26 98 --- > piéter/27 95 53969a55006 > placoderme/1 1 54002,54003c55039,55040 < plain-pied 69 < plaindre/127 67 --- > plain-pied 65 > plaindre/127 85 54010c55047 < plaire/128 156 --- > plaire/128 199 54053a55091 > planitude/1 2 54058c55096 < planquer/4 34 --- > planquer/4 36 54151c55189 < plateaux-repas 311 --- > plateaux-repas 344 54169a55208 > platinoïde/1 1 54218a55258 > pleuroscopie/1 2 54225,54229c55265,55269 < pleuvasser/71 107 < pleuviner/71 107 < pleuvioter/71 107 < pleuvoir/158 274 < pleuvoter/71 107 --- > pleuvasser/71 111 > pleuviner/71 111 > pleuvioter/71 111 > pleuvoir/158 296 > pleuvoter/71 111 54240c55280 < plier/4 34 --- > plier/4 36 54249c55289 < plisser/4 34 --- > plisser/4 36 54276c55316 < plonger/4 34 --- > plonger/4 36 54290a55331 > ploïdie/1 2 54306c55347 < plumer/4 34 --- > plumer/4 36 54317c55358 < plupart 370 --- > plupart 408 54324a55366 > pluriactivité/1 2 54344a55387 > plurithérapie/1 2 54348c55391 < plus 408 --- > plus 445 54352,54353c55395,55396 < plusieurs 389 < plussoyer/4 106 --- > plusieurs 426 > plussoyer/4 116 54367c55410 < pluviner/71 107 --- > pluviner/71 111 54388a55432 > plécoptère/1 1 54401a55446 > pléonaste/1 1 54458a55504 > podalique/1 3 54494c55540 < poindre/69 110 --- > poindre/69 113 54496c55542 < point 184 --- > point 194 54505c55551 < pointer/4 34 --- > pointer/4 36 54545c55591 < poissons-scies 310 --- > poissons-scies 343 54588c55634 < policeman/40 1 --- > policeman/38 1 54601c55647 < polir/22 70 --- > polir/22 79 54638a55685 > pollinifère/1 3 54696c55743 < polycourant 36 --- > polycourant 35 54732a55780,55781 > polyisoprène/1 1 > polykystique/1 3 54737a55787 > polymolécularité/1 2 54741a55792,55793 > polymyosite/1 2 > polymyxine/1 2 54753a55806 > polynie/1 2 54763a55817 > polyoxyméthylène/1 1 54767a55822,55823 > polyphage/1 3 > polyphage/1 1 54782a55839 > polypropène/1 1 54911c55968 < pondre/53 110 --- > pondre/53 113 54916c55973 < pondérer/26 5 --- > pondérer/27 5 54950c56007 < pop 36 --- > pop 35 54972c56029 < populi 36 --- > populi 35 55021a56079 > portale/7 4 55045c56103 < porte-bannière 78 --- > porte-bannière 74 55131,55132c56189,56190 < porte-parole 7 < porte-parole/1 1 --- > porte-parole 74 > porte-parole/1 10 55170c56228 < porter/4 111 --- > porter/4 140 55201c56259 < poser/4 34 --- > poser/4 36 55233c56291 < posséder/26 13 --- > posséder/27 103 55235c56293 < post 132 --- > post 147 55258a56317 > post-séance/1 2 55282c56341 < posteriori 132 --- > posteriori 147 55287a56347,56348 > posthumement 8 > posthumément 8 55318a56380 > postsérielle/3 4 55331c56393 < postériori 132 --- > postériori 147 55339a56402 > potabilisation/1 2 55393c56456 < pots-bouilles 340 --- > pots-bouilles 374 55423c56486 < poudroyer 149 --- > poudroyer 169 55471c56534 < pour 201 --- > pour 193 55484,55485c56547,56548 < pourfendre/53 71 < pourlécher/26 13 --- > pourfendre/53 78 > pourlécher/27 13 55492c56555 < pourquoi 224 --- > pourquoi 239 55495c56558 < pourrir/22 94 --- > pourrir/22 99 55507c56570 < poursuivre/151 67 --- > poursuivre/151 175 55511c56574 < pourvoir/162 167 --- > pourvoir/162 250 55514c56577 < pourvu 379 --- > pourvu 416 55534c56597 < pousser/4 34 --- > pousser/4 36 55558c56621 < pouvoir/226 275 --- > pouvoir/226 297 55570c56633 < poétiser/4 5 --- > poétiser/4 97 55576a56640 > poïkilocytose/1 2 55580c56644 < pp/32 78 --- > pp/32 74 55615c56679 < pratiquer/4 34 --- > pratiquer/4 36 55624c56688 < premier-né 145 --- > premier-né 165 55627,55628c56691,56692 < premiers-nés 137 < premium 36 --- > premiers-nés 156 > premium 35 55631c56695 < première-née 138 --- > première-née 157 55633c56697 < premières-nées 161 --- > premières-nées 180 55636c56700 < prendre/94 190 --- > prendre/95 91 55637a56702 > presbyacousie/1 2 55653c56718 < prescrire/78 93 --- > prescrire/78 148 55656c56721 < presque 115 --- > presque 120 55664c56729 < presse-bouton 36 --- > presse-bouton 35 55682,55683c56747,56748 < pressentir/83 71 < presser/4 34 --- > pressentir/83 154 > presser/4 36 55716c56781 < preux 160 --- > preux 179 55725c56790 < prim'Holstein 96 --- > prim'Holstein 93 55772c56837 < prince-de-galles 36 --- > prince-de-galles 35 55774c56839 < princeps 36 --- > princeps 35 55793c56858 < priori 132 --- > priori 147 55859a56925 > probénécide/1 1 55875a56942 > proche-orientale/7 4 55910c56977 < procéder/67 125 --- > procéder/67 135 55934c57001 < produire/76 93 --- > produire/76 91 55935a57003 > proenzyme/1 10 55948a57017 > professionnalisante/3 4 55954c57023 < professo 69 --- > professo 65 55968c57037 < profiter/10 126 --- > profiter/10 145 55977c57046 < profès 81 --- > profès 66 55980c57049 < proférer/26 5 --- > proférer/27 5 56011a57081 > progéria/1 2 56066,56067c57136,57137 < promettre/75 93 < promiscue/1 101 --- > promettre/75 129 > promiscue/1 105 56078c57148 < promouvoir/163 71 --- > promouvoir/163 78 56094c57164 < prononcer/4 34 --- > prononcer/4 36 56116a57187,57188 > propanol/1 1 > propanone/1 2 56149c57221 < proposer/4 34 --- > proposer/4 100 56154c57226 < propre-à-rien 117 --- > propre-à-rien 119 56156c57228 < propres-à-rien 103 --- > propres-à-rien 104 56173a57246 > propyne/1 1 56191c57264 < proscrire/78 71 --- > proscrire/78 113 56205a57279 > prosopagnosique/1 11 56261c57335 < protester/4 106 --- > protester/4 116 56275c57349 < proto 154 --- > proto 178 56284a57359 > protogalactique/1 3 56310a57386,57387 > prototypiste/1 10 > protoure/1 1 56332c57409 < protéger/26 13 --- > protéger/27 13 56350a57428 > protéroglyphe/1 3 56364c57442 < provenir/70 88 --- > provenir/70 162 56406c57484 < proxy/40 1 --- > proxy/38 1 56432c57510 < prune 36 --- > prune 35 56441c57519 < pruner 80 --- > pruner 82 56453a57532 > præsidium/1 1 56456a57536 > pré-ARNm 7 56470a57551 > préaffranchir/22 167 56493a57575 > précariat/1 1 56528c57610 < préciser/4 34 --- > préciser/4 36 56558c57640 < précuire/86 71 --- > précuire/86 78 56565c57647 < précéder/26 19 --- > précéder/27 19 56590c57672 < prédire/109 67 --- > prédire/109 85 56599c57681,57682 < prédéfinir/22 72 --- > prédécédée/3 6 > prédéfinir/22 76 56614c57697 < préfabriquer/4 159 --- > préfabriquer/4 101 56624a57708 > préfinancer/4 97 56647c57731 < préférer/26 34 --- > préférer/27 36 56657a57742,57743 > préhilbertienne/3 4 > préhispanique/1 3 56669c57755 < préinstaller/4 293 --- > préinstaller/4 323 56673c57759 < préjudiciaux 128 --- > préjudiciaux 131 56676c57762 < préjuger/4 113 --- > préjuger/4 118 56693c57779 < préluder/10 125 --- > préluder/10 144 56697a57784 > prémaxillaire/1 3 56711c57798 < prémunir/22 70 --- > prémunir/22 79 56716c57803 < préméditer/4 113 --- > préméditer/4 118 56731a57819 > prépa/1 2 56738c57826 < préparer/4 13 --- > préparer/4 141 56767c57855 < préquelle/1 2 --- > préquelle/3 9 56780c57868 < prérégler/26 5 --- > prérégler/27 5 56798c57886 < présenter/4 34 --- > présenter/4 107 56817c57905 < présider/4 106 --- > présider/4 168 56828a57917 > présonoriser/4 97 56831c57920 < présumer/4 113 --- > présumer/4 118 56840a57930 > présénile/1 3 56845c57935 < prétendre/53 167 --- > prétendre/53 153 56867c57957 < prévaloir/218 228 --- > prévaloir/218 247 56873c57963 < prévenir/70 71 --- > prévenir/70 113 56889c57979 < prévoir/132 71 --- > prévoir/132 113 56899c57989 < préétablir/22 72 --- > préétablir/22 76 56909a58000 > prêt-à-penser 17 56914c58005 < prêter/4 34 --- > prêter/4 36 56918c58009 < prêtres-ouvriers 308 --- > prêtres-ouvriers 341 56922c58013 < prêts-relais 309 --- > prêts-relais 342 56933a58025 > psammite/1 1 56960a58053 > pseudomorphose/1 2 57012a58106,58107 > psychoacoustique/1 3 > psychoacoustique/1 2 57030a58126 > psychogénéalogiste/1 10 57123a58220 > ptérygion/1 1 57146a58244 > publicisation/1 2 57165d58262 < puceau/17 86 57167c58264 < pucelle/1 102 --- > pucelle/7 6 57193c58290 < puis 411 --- > puis 447 57200,57201c58297,58298 < puisqu/28 139 < puisque 139 --- > puisqu/23 158 > puisque 158 57259c58356 < punir/22 72 --- > punir/22 142 57264c58361 < punk 36 --- > punk 35 57318c58415 < push-pull 36 --- > push-pull 35 57324c58421 < pustuler/4 211 --- > pustuler/4 135 57379a58477 > pyothorax 7 57393a58492 > pyridoxal/1 1 57417c58516 < pyrolyser/4 150 --- > pyrolyser/4 97 57427c58526,58527 < pyrophosphorique/1 120 --- > pyrophosphorique/1 124 > pyrophyllite/1 2 57476a58577 > pâlement 8 57479c58580 < pâlir/22 95 --- > pâlir/22 106 57491c58592 < pâtir/56 87 --- > pâtir/56 92 57555,57557c58656,58657 < pécher/67 18 < pécheresse/1 2 < pécheur/1 1 --- > pécher/67 135 > pécheresse/3 9 57598a58699 > pédiluve/1 1 57606a58708 > pédogénétique/1 3 57701c58803 < pénétrer/26 34 --- > pénétrer/27 36 57726a58829 > pérail/1 1 57745a58849 > périartérite/1 2 57753a58858 > périchondrite/1 2 57775a58881 > pérille/1 2 57818c58924 < périr/56 87 --- > périr/56 92 57838c58944 < péritel 36 --- > péritel 35 57864a58971 > pérylène/1 1 57896c59003,59004 < péter/26 34 --- > péter/27 36 > pétersbourgeoise/3 6 57930c59038 < pétrir/22 72 --- > pétrir/22 134 57967c59075 < pêcher/4 34 --- > pêcher/4 36 57977d59084 < pîler/10 18 57992c59099 < qu/28 139 --- > qu/23 158 57995c59102 < quadra 36 --- > quadra 35 58003c59110 < quadratin/1 120 --- > quadratin/1 124 58021c59128 < quadrijumeaux 137 --- > quadrijumeaux 156 58051a59159 > quadrivecteur/1 1 58060c59168 < quadruplex 36 --- > quadruplex 35 58061a59170 > quadrupède/1 3 58062a59172 > quadrupôle/1 1 58075c59185 < qualifiée/3 6 --- > qualifiée/3 9 58081,58082c59191,59192 < quand 139 < quant 185 --- > quand 158 > quant 205 58085c59195 < quanti 69 --- > quanti 65 58143,58146c59253,59256 < quartier-maitre 117 < quartier-maître 117 < quartiers-maitres 103 < quartiers-maîtres 103 --- > quartier-maitre 119 > quartier-maître 119 > quartiers-maitres 104 > quartiers-maîtres 104 58155a59266 > quartzique/1 3 58188c59299 < quatre-vingt/96 42 --- > quatre-vingt/93 42 58229c59340 < quatre-épices 103 --- > quatre-épices 104 58237c59348 < que 139 --- > que 158 58241,58245c59352,59356 < quelle/3 385 < quelqu/28 183 < quelqu'un 253 < quelqu'une 255 < quelque 115 --- > quelle/3 422 > quelqu/23 191 > quelqu'un 274 > quelqu'une 276 > quelque 120 58247c59358 < quelque/1 390 --- > quelque/1 427 58249,58250c59360,59361 < quelques-unes 371 < quelques-uns 254 --- > quelques-unes 407 > quelques-uns 275 58261c59372 < querelleux 129 --- > querelleux 137 58293,58294c59404,59405 < queux 78 < qui 252 --- > queux 74 > qui 235 58296c59407 < quia 69 --- > quia 65 58300,58301c59411,59412 < quiconque 368 < quid 367 --- > quiconque 406 > quid 405 58330c59441,59442 < quinqua 36 --- > quinone/1 2 > quinqua 35 58375c59487 < quitter/4 34 --- > quitter/4 225 58384c59496 < quoailler 112 --- > quoailler 117 58387,58389c59499,59501 < quoi 252 < quoiqu/28 139 < quoique 139 --- > quoi 235 > quoiqu/23 158 > quoique 158 58401a59514 > qué 235 58404c59517 < québéciser/4 170 --- > québéciser/4 103 58414c59527 < quérir 121 --- > quérir 125 58423c59536 < qwerty 36 --- > qwerty 7 58436c59549 < rabat-joie 96 --- > rabat-joie 93 58447c59560 < rabattre/87 93 --- > rabattre/87 148 58457c59570 < rabiauter 112 --- > rabiauter 117 58464c59577 < rabonnir/22 95 --- > rabonnir/22 106 58472c59585 < rabougrir/22 94 --- > rabougrir/22 99 58486c59599 < racabouillir 157 --- > racabouillir 177 58495a59609 > raccompagnatrice/3 6 58503c59617 < raccourcir/22 94 --- > raccourcir/22 99 58511c59625 < raccrocher/4 34 --- > raccrocher/4 36 58560c59674 < racornir/22 70 --- > racornir/22 79 58609c59723 < radiner/4 98 --- > radiner/4 95 58717a59832 > radiothérapique/1 3 58749c59864 < radoucir/22 94 --- > radoucir/22 99 58754c59869 < raffermir/22 70 --- > raffermir/22 79 58756a59872 > raffinat/1 1 58764c59880 < raffoler/10 126 --- > raffoler/10 145 58774c59890 < rafraichir/22 93 --- > rafraichir/22 148 58780c59896 < rafraîchir/22 93 --- > rafraîchir/22 148 58788c59904 < ragaillardir/22 72 --- > ragaillardir/22 76 58808c59924 < ragrandir/22 70 --- > ragrandir/22 79 58826c59942 < raidir/22 70 --- > raidir/22 79 58832c59948 < rail-route 36 --- > rail-route 35 58834c59950 < railler/4 34 --- > railler/4 36 58849c59965 < raire/156 88 --- > raire/156 110 58858c59974 < raisonner/4 111 --- > raisonner/4 140 58862c59978 < rajeunir/22 94 --- > rajeunir/22 99 58872c59988 < ralentir/22 94 --- > ralentir/22 99 58879c59995 < rallier/4 34 --- > rallier/4 36 58883c59999 < rallonger/4 34 --- > rallonger/4 36 58885c60001 < rallumer/4 34 --- > rallumer/4 36 58944c60060 < ramollir/22 70 --- > ramollir/22 79 58967c60083 < ranch/40 1 --- > ranch/38 1 58972c60088 < rancir/22 194 --- > rancir/22 209 58987a60104 > ranger/1 10 59002c60119 < raouster 80 --- > raouster 82 59015c60132 < rapetisser/4 34 --- > rapetisser/4 36 59031c60148 < rapiécer/26 5 --- > rapiécer/27 5 59034,59036c60151,60153 < raplapla 36 < raplatir/22 72 < rapointir/22 72 --- > raplapla 35 > raplatir/22 76 > rapointir/22 76 59042c60159 < rappeler/36 34 --- > rappeler/36 36 59047c60164 < rappointir/22 72 --- > rappointir/22 76 59052c60169 < rapporter/4 34 --- > rapporter/4 36 59054c60171 < rapprendre 121 --- > rapprendre 125 59056c60173 < rapprocher/4 34 --- > rapprocher/4 36 59078a60196 > ras-el-hanout 7 59094c60212 < rash/40 1 --- > rash/38 1 59097c60215 < rasoir 36 --- > rasoir 35 59106,59107c60224,60225 < rasseoir/114 93 < rassir/22 87 --- > rasseoir/114 148 > rassir/22 92 59109c60227 < rassoir/114 93 --- > rassoir/114 148 59111c60229 < rassortir 178 --- > rassortir 200 59114c60232 < rasséréner/26 13 --- > rasséréner/27 13 59116a60235 > rastafarienne/3 6 59130c60249 < rater/4 34 --- > rater/4 36 59207c60326 < ravilir/22 72 --- > ravilir/22 76 59215c60334 < ravir/22 72 --- > ravir/22 312 59227c60346 < ravoir 121 --- > ravoir 125 59248a60368 > raï 7 59260a60381 > rebasculer/4 97 59262c60383 < rebattre/87 71 --- > rebattre/87 78 59271c60392 < reblanchir/22 72 --- > reblanchir/22 76 59278c60399 < rebondir/22 87 --- > rebondir/22 92 59282c60403 < rebonneter 127 --- > rebonneter 136 59289c60410 < rebouiser 80 --- > rebouiser 82 59291a60413 > reboutement/1 1 59297c60419 < rebrancher/4 34 --- > rebrancher/4 36 59300c60422 < rebrousse-poil 69 --- > rebrousse-poil 65 59302c60424 < rebrousser/4 34 --- > rebrousser/4 36 59309,59310c60431,60432 < rebuter/4 34 < rebâtir/22 72 --- > rebuter/4 36 > rebâtir/22 76 59350c60472 < recevoir/97 93 --- > recevoir/97 91 59352c60474 < rechampir/22 72 --- > rechampir/22 76 59368c60490 < rechercher/4 5 --- > rechercher/4 101 59371c60493 < rechigner/10 125 --- > rechigner/10 144 59385c60507 < reclure/193 71 --- > reclure/193 78 59395c60517 < recoller/4 108 --- > recoller/4 126 59410,59411c60532,60533 < recomparaitre/100 88 < recomparaître/100 88 --- > recomparaitre/100 110 > recomparaître/100 110 59423c60545 < reconduire/86 71 --- > reconduire/86 78 59434,59435c60556,60557 < reconnaitre/77 67 < reconnaître/77 67 --- > reconnaitre/77 98 > reconnaître/77 98 59439c60561 < reconquérir/105 67 --- > reconquérir/105 85 59442c60564 < reconsidérer/26 5 --- > reconsidérer/27 5 59452c60574 < reconstruire/76 67 --- > reconstruire/76 91 59454a60577 > reconvalescence/1 2 59458c60581 < reconvertir/22 70 --- > reconvertir/22 79 59462c60585 < record 36 --- > record 35 59466c60589 < recordman/40 1 --- > recordman/38 1 59468c60591 < recordwoman/40 2 --- > recordwoman/38 2 59473c60596 < recoudre/125 67 --- > recoudre/125 85 59484c60607 < recourir/117 189 --- > recourir/117 166 59493c60616 < recouvrir/82 67 --- > recouvrir/82 98 59499c60622 < recroitre/111 88 --- > recroitre/111 110 59503c60626 < recroître/111 88 --- > recroître/111 110 59510c60633 < recruter/4 34 --- > recruter/4 36 59515c60638 < recrépir/22 72 --- > recrépir/22 76 59550,59551c60673,60674 < recueillir/138 67 < recuire/86 110 --- > recueillir/138 98 > recuire/86 113 59556,59557c60679,60680 < reculer/4 34 < reculons 69 --- > reculer/4 36 > reculons 65 59568,59569c60691,60692 < recéder/26 5 < recéler/26 19 --- > recéder/27 5 > recéler/27 19 59572c60695 < recéper/26 5 --- > recéper/27 5 59579c60702 < redescendre/53 110 --- > redescendre/53 152 59584,59585c60707,60708 < redevenir/70 88 < redevoir/224 71 --- > redevenir/70 162 > redevoir/224 78 59592c60715 < redire/147 168 --- > redire/147 221 59598c60721 < redissoudre/110 158 --- > redissoudre/110 98 59604c60727 < rediviser/4 170 --- > rediviser/4 103 59609c60732 < redonner/4 34 --- > redonner/4 36 59614c60737 < redoubler/4 106 --- > redoubler/4 116 59620c60743 < redox 36 --- > redox 35 59627c60750 < redécoller/4 34 --- > redécoller/4 36 59632,59634c60755,60757 < redécouvrir/82 67 < redéfaire/93 71 < redéfinir/22 72 --- > redécouvrir/82 98 > redéfaire/94 78 > redéfinir/22 76 59638c60761 < redémolir/22 72 --- > redémolir/22 76 59641a60765 > redéposer/4 100 59646c60770 < refaire/93 67 --- > refaire/94 98 59647a60772 > refend/1 1 59649c60774 < refendre/53 71 --- > refendre/53 78 59661c60786 < refleurir/22 95 --- > refleurir/22 106 59663c60788 < reflex 36 --- > reflex 35 59667c60792 < refléter/26 13 --- > refléter/27 13 59672c60797 < refondre/53 110 --- > refondre/53 152 59690c60815 < refoutre/129 71 --- > refoutre/129 78 59692,59694c60817,60819 < refrapper/4 34 < refriser/4 34 < refroidir/22 94 --- > refrapper/4 36 > refriser/4 36 > refroidir/22 142 59698c60823 < refréner/26 13 --- > refréner/27 13 59702c60827 < refuser/4 34 --- > refuser/4 107 59711c60836 < regarder/4 111 --- > regarder/4 107 59713c60838 < regarnir/22 72 --- > regarnir/22 76 59717,59718c60842,60843 < regeler/46 288 < reggae 36 --- > regeler/46 318 > reggae 35 59723c60848 < regimber/4 98 --- > regimber/4 95 59743c60868 < regrossir/56 87 --- > regrossir/56 92 59766c60891 < rejaillir/56 87 --- > rejaillir/56 92 59773c60898 < rejoindre/69 67 --- > rejoindre/69 85 59802c60927 < relax 36 --- > relax 35 59806a60932 > relaxologie/1 2 59809c60935 < relayer/4 34 --- > relayer/4 36 59818c60944 < relever/46 111 --- > relever/46 107 59834c60960 < relire/149 67 --- > relire/149 91 59844c60970 < reluire/123 88 --- > reluire/123 110 59849c60975 < relâcher/4 34 --- > relâcher/4 36 59854c60980 < reléguer/26 5 --- > reléguer/27 5 59870c60996 < remarquer/4 13 --- > remarquer/4 261 59877c61003 < rembarquer/4 34 --- > rembarquer/4 36 59880c61006 < rembiner/4 98 --- > rembiner/4 95 59901,59902c61027,61028 < rembroquer 80 < rembrunir/22 70 --- > rembroquer 82 > rembrunir/22 79 59905c61031 < rembucher/4 34 --- > rembucher/4 36 59913c61039 < remettre/75 67 --- > remettre/75 153 59916a61043 > reminéralisante/3 4 59922c61049 < remix/40 1 --- > remix/38 1 59942c61069 < remonter/4 34 --- > remonter/4 257 59947c61074 < remontrer/4 111 --- > remontrer/4 140 59949c61076 < remordre/53 71 --- > remordre/53 78 59957c61084 < remoudre/124 71 --- > remoudre/124 78 59966c61093 < remparder 124 --- > remparder 130 59972c61099 < rempiéter/26 5 --- > rempiéter/27 5 59979c61106 < remplir/22 70 --- > remplir/22 142 60000c61127 < remuer/4 34 --- > remuer/4 36 60009c61136 < remédier/10 126 --- > remédier/10 145 60013c61140 < remétrer 80 --- > remétrer 82 60016c61143 < renaitre/113 191 --- > renaitre/113 176 60025c61152 < renaître/113 191 --- > renaître/113 176 60034c61161 < renchérir/22 95 --- > renchérir/22 106 60039c61166 < rencontrer/4 13 --- > rencontrer/4 103 60043c61170 < rendormir/167 67 --- > rendormir/167 85 60045c61172 < rendre/53 93 --- > rendre/53 129 60047c61174 < reneiger/71 107 --- > reneiger/71 111 60058c61185 < renfler/4 34 --- > renfler/4 36 60067c61194 < renformir/22 72 --- > renformir/22 76 60077c61204 < rengager/4 34 --- > rengager/4 36 60086c61213 < rengréner/26 5 --- > rengréner/27 5 60093a61221 > rennaise/3 6 60100c61228 < renoncer/4 113 --- > renoncer/4 118 60113c61241 < renouveler/36 34 --- > renouveler/36 36 60132c61260 < rentraire 121 --- > rentraire 125 60138c61266 < rentrouvrir/82 71 --- > rentrouvrir/82 78 60156a61285 > renâclement/1 1 60163,60164c61292,61293 < repaitre/112 67 < reparaitre/77 88 --- > repaitre/112 85 > reparaitre/77 110 60166,60168c61295,61297 < reparaître/77 88 < reparcourir/22 72 < reparler/4 98 --- > reparaître/77 110 > reparcourir/22 76 > reparler/4 95 60171,60172c61300,61301 < repartir/22 70 < repartir/83 148 --- > repartir/22 79 > repartir/83 162 60176c61305 < repasser/4 34 --- > repasser/4 36 60183c61312 < repaître/112 67 --- > repaître/112 85 60185,60186c61314,61315 < repeindre/69 110 < rependre/53 71 --- > repeindre/69 152 > rependre/53 78 60192c61321 < repentir/83 119 --- > repentir/83 123 60194c61323 < reperdre/53 71 --- > reperdre/53 91 60207c61336 < replanter/4 34 --- > replanter/4 36 60209c61338 < repleuvoir/158 277 --- > repleuvoir/158 301 60217c61346 < replonger/4 34 --- > replonger/4 36 60224c61353 < repolir/22 72 --- > repolir/22 76 60243c61372 < reposer/4 34 --- > reposer/4 36 60254c61383 < repousser/4 34 --- > repousser/4 36 60256c61385 < reprendre/94 93 --- > reprendre/95 91 60271c61400 < reproduire/76 67 --- > reproduire/76 85 60279c61408 < reproposer/4 34 --- > reproposer/4 36 60289c61418 < représenter/4 34 --- > représenter/4 36 60299,60300c61428,61429 < repérer/26 13 < repétrir/22 233 --- > repérer/27 13 > repétrir/22 134 60307a61437,61438 > requin-marteau 17 > requin-pèlerin 17 60308a61440 > requin-tigre 17 60309a61442,61443 > requins-marteaux 21 > requins-pèlerins 21 60310a61445 > requins-tigres 21 60315c61450 < requérir/105 71 --- > requérir/105 78 60318c61453 < resalir/22 70 --- > resalir/22 79 60351c61486 < resplendir/56 87 --- > resplendir/56 143 60365c61500 < ressaisir/22 70 --- > ressaisir/22 79 60370a61506 > ressat/1 1 60377c61513 < ressembler/10 179 --- > ressembler/10 201 60384c61520 < ressentir/83 67 --- > ressentir/83 85 60389c61525 < resservir/139 93 --- > resservir/139 148 60391,60392c61527,61528 < ressortir/56 209 < ressortir/83 110 --- > ressortir/56 315 > ressortir/83 152 60400c61536 < ressouvenir/70 119 --- > ressouvenir/70 123 60404c61540 < ressurgir/56 87 --- > ressurgir/56 92 60406c61542 < ressuscitée/3 6 --- > ressuscitée/3 9 60421c61557 < rester/4 291 --- > rester/4 322 60428c61564 < restreindre/69 67 --- > restreindre/69 85 60434c61570 < restyler 80 --- > restyler 82 60438c61574 < resurgir/56 87 --- > resurgir/56 92 60456c61592 < reteindre/69 71 --- > reteindre/69 78 60458,60459c61594,61595 < retendre/53 71 < retenir/70 93 --- > retendre/53 78 > retenir/70 91 60461c61597 < retentir/56 87 --- > retentir/56 143 60471c61607 < retirer/4 13 --- > retirer/4 103 60476c61612 < retomber/4 238 --- > retomber/4 260 60478c61614 < retondre/53 71 --- > retondre/53 78 60484c61620 < retordre/53 71 --- > retordre/53 78 60489c61625 < retoucher/4 113 --- > retoucher/4 118 60495c61631 < retourner/4 34 --- > retourner/4 36 60499,60500c61635,61636 < retraduire/86 71 < retraire/101 71 --- > retraduire/86 78 > retraire/101 78 60509c61645 < retranscrire/78 71 --- > retranscrire/78 78 60512c61648 < retransmettre/75 71 --- > retransmettre/75 78 60514c61650 < retravailler/4 106 --- > retravailler/4 116 60517c61653 < retreindre 121 --- > retreindre 125 60521a61658 > retro 240 60528c61665 < retrouver/4 13 --- > retrouver/4 103 60531,60532c61668,61669 < retâter/4 113 < retéléphoner/10 126 --- > retâter/4 118 > retéléphoner/10 145 60537c61674 < revaloir/216 71 --- > revaloir/216 78 60553,60554c61690,61691 < revendiquer/4 34 < revendre/53 67 --- > revendiquer/4 36 > revendre/53 85 60556c61693 < revenir/70 229 --- > revenir/70 248 60560c61697 < reverdir/22 95 --- > reverdir/22 106 60564c61701 < revernir/22 72 --- > revernir/22 76 60592,60596c61729,61734 < revivre/150 110 < revoici 89 < revoilà 89 < revoir 414 < revoir/132 67 --- > reviviscente/3 4 > revivre/150 152 > revoici 87 > revoilà 87 > revoir 240 > revoir/132 85 60599c61737 < revolving 36 --- > revolving 35 60601c61739 < revomir/22 95 --- > revomir/22 106 60603c61741 < revouloir 121 --- > revouloir 125 60611c61749 < revêtir/115 67 --- > revêtir/115 85 60657a61796 > rhinorrhée/1 2 60665a61805 > rhizogenèse/1 2 60685a61826 > rhodochrosite/1 2 60815c61956 < rien 182 --- > rien 215 60818a61960 > rifampicine/1 2 60834a61977 > rigoise/3 6 60845c61988 < rigolote/1 102 --- > rigolote/1 112 60852c61995 < rikiki 36 --- > rikiki 35 60892c62035 < ripatonner 112 --- > ripatonner 117 60905c62048 < ripous 162 --- > ripous 181 60910c62053 < riquiqui 36 --- > riquiqui 35 60913c62056 < rire/145 228 --- > rire/145 247 60920c62063 < risorius 36 --- > risorius 35 61019c62162 < rocher 112 --- > rocher 117 61056c62199 < rogneuse/3 6 --- > rogneuse/3 9 61070c62213 < roidir/22 70 --- > roidir/22 79 61099c62242 < romaniser/4 34 --- > romaniser/4 36 61115c62258 < rompre/53 93 --- > rompre/53 148 61143c62286 < rondir/22 72 --- > rondir/22 76 61190c62333 < rosat 36 --- > rosat 35 61193c62336 < rose-croix 78 --- > rose-croix 74 61204c62347 < rosir/22 95 --- > rosir/22 106 61247a62391 > rotoscopie/1 2 61263a62408 > roubaisienne/3 6 61304c62449 < rougir/22 95 --- > rougir/22 134 61308c62453 < rouille 36 --- > rouille 35 61310c62455 < rouiller/4 34 --- > rouiller/4 36 61313c62458 < rouir/22 95 --- > rouir/22 106 61323c62468 < rouler/4 34 --- > rouler/4 36 61361c62506 < roussir/22 95 --- > roussir/22 106 61366c62511 < roustir/22 72 --- > roustir/22 76 61380c62525 < rouverin/1 120 --- > rouverin/1 124 61383c62528 < rouvrir/82 93 --- > rouvrir/82 148 61424c62569,62570 < ruchée/3 6 --- > ruché/1 1 > ruchée/1 2 61443c62589 < ruer/4 98 --- > ruer/4 95 61447c62593 < rugbyman/40 1 --- > rugbyman/38 1 61451c62597 < rugir/22 95 --- > rugir/22 134 61501c62647 < rush/40 1 --- > rush/38 1 61507a62654 > russo-allemande/3 6 61508a62656,62659 > russo-belge/1 11 > russo-britannique/1 11 > russo-chinoise/3 6 > russo-italienne/3 6 61509a62661,62662 > russo-mongole/3 6 > russo-suédoise/3 6 61586c62739 < réacquérir/105 71 --- > réacquérir/105 78 61601c62754 < réadmettre/75 71 --- > réadmettre/75 78 61612c62765 < réagir/56 193 --- > réagir/56 187 61633c62786 < réaléser/26 5 --- > réaléser/27 5 61642,61643c62795,62796 < réapparaitre/77 88 < réapparaître/77 88 --- > réapparaitre/77 110 > réapparaître/77 110 61645c62798 < réapprendre/94 71 --- > réapprendre/95 166 61651a62805 > réarmable/1 3 61653c62807 < réarmer/4 34 --- > réarmer/4 36 61660c62814 < réassortir/22 70 --- > réassortir/22 79 61668c62822 < rébellionner 127 --- > rébellionner 136 61689c62843,62844 < réchampir/22 72 --- > récessus 7 > réchampir/22 76 61725c62880 < réclamer/4 34 --- > réclamer/4 36 61755c62910 < récrire/78 71 --- > récrire/78 78 61766c62921 < récupérer/26 5 --- > récupérer/27 5 61793c62948 < rédox 36 --- > rédox 35 61802c62957 < réduire/76 67 --- > réduire/76 98 61826c62981 < réentendre/53 147 --- > réentendre/53 244 61853c63008 < réflex 36 --- > réflex 35 61867c63022 < réfléchir/22 232 --- > réfléchir/22 186 61892c63047 < réfrigérer/26 5 --- > réfrigérer/27 5 61896c63051 < réfréner/26 13 --- > réfréner/27 13 61905c63060 < référencer/4 5 --- > référencer/4 100 61912c63067 < référer/26 179 --- > référer/27 201 61943c63098 < régir/22 72 --- > régir/22 134 61954c63109 < régler/26 13 --- > régler/27 100 61959c63114 < réglo 36 --- > réglo 35 61965a63121 > régolithe/1 1 61988c63144 < régénérer/26 13 --- > régénérer/27 13 62013c63169 < réimputer/4 108 --- > réimputer/4 126 62015c63171 < réincarcérer/26 5 --- > réincarcérer/27 5 62034c63190 < réinscrire/78 67 --- > réinscrire/78 85 62039c63195 < réinsérer/26 13 --- > réinsérer/27 13 62041c63197 < réinterpréter/26 5 --- > réinterpréter/27 5 62045c63201 < réintroduire/76 71 --- > réintroduire/76 78 62048c63204 < réintégrer/26 5 --- > réintégrer/27 5 62051c63207 < réinvestir/22 285 --- > réinvestir/22 167 62059c63215 < réitérer/26 19 --- > réitérer/27 19 62062c63218 < réjouir/22 70 --- > réjouir/22 139 62065c63221 < rélargir/22 72 --- > rélargir/22 76 62075c63231 < rémiz 78 --- > rémiz 74 62083c63239 < rémunérer/26 5 --- > rémunérer/27 5 62097c63253 < réopérer/26 5 --- > réopérer/27 5 62109c63265,63266 < répandre/53 67 --- > réoxygéner/27 103 > répandre/53 85 62116c63273 < répartir/22 70 --- > répartir/22 79 62129c63286 < répliquer/4 34 --- > répliquer/4 36 62133,62134c63290,63292 < répondeuse/3 9 < répondre/53 279 --- > répondeur/1 1 > répondeuse/3 4 > répondre/53 304 62158c63316 < répugner/4 113 --- > répugner/4 118 62166c63324 < répéter/26 34 --- > répéter/27 36 62196a63355 > résidentialisation/1 2 62221c63380 < résister/10 126 --- > résister/10 145 62246c63405 < résoudre/110 67 --- > résoudre/110 98 62250c63409 < résulter/174 18 --- > résulter/174 321 62257c63416 < réséda 36 --- > réséda 35 62259,62260c63418,63419 < réséquer/26 5 < rétablir/22 70 --- > réséquer/27 5 > rétablir/22 139 62276a63436 > réticulose/1 2 62307c63467 < rétreindre 121 --- > rétreindre 125 62324c63484 < rétroagir/56 87 --- > rétroagir/56 92 62332c63492 < rétrocéder/26 19 --- > rétrocéder/27 19 62333a63494 > rétrofit/1 1 62368c63529 < rétrécir/22 94 --- > rétrécir/22 99 62378c63539 < réunir/22 70 --- > réunir/22 142 62379a63541 > réusinage/1 1 62381c63543 < réussir/22 281 --- > réussir/22 309 62397c63559 < réverbérer/26 13 --- > réverbérer/27 13 62436c63598 < révéler/26 13 --- > révéler/27 141 62443c63605 < révérer/26 5 --- > révérer/27 5 62447c63609 < réécrire/78 71 --- > réécrire/78 113 62459c63621 < réélire/148 71 --- > réélire/148 154 62464c63626 < réémettre/75 71 --- > réémettre/75 78 62480c63642 < rêver/4 106 --- > rêver/4 116 62494c63656 < rôtir/22 94 --- > rôtir/22 99 62506,62509c63668,63671 < s'abader 127 < s'abriller 127 < s'agir/249 136 < sa 222 --- > s'abader 136 > s'abriller 136 > s'agir/249 155 > sa 237 62519c63681 < sable 36 --- > sable 35 62662c63824 < safran 36 --- > safran 35 62694c63856 < saigner/4 34 --- > saigner/4 36 62701c63863 < saillir/137 88 --- > saillir/137 110 62711c63873 < saint-glinglin 69 --- > saint-glinglin 65 62721a63884 > sainte-nitouche 20 62722a63886 > saintes-nitouches 37 62735c63899 < saisies-gageries 339 --- > saisies-gageries 373 62737c63901 < saisir/22 70 --- > saisir/22 139 62813c63977 < salir/22 70 --- > salir/22 142 62871a64036 > salticidé/1 1 62901a64067 > samnite/1 11 62919d64084 < samu/1 1 62941a64107 > sandalière/3 9 62947c64113 < sandwich/40 1 --- > sandwich/38 1 62953c64119 < sang-mêlé 78 --- > sang-mêlé 74 62964c64130 < sangs-mêlés 103 --- > sangs-mêlés 104 62971a64138 > sanidine/1 2 62977,62978c64144,64146 < sans 375 < sans-abri 78 --- > sanité/1 2 > sans 412 > sans-abri 74 62980c64148 < sans-allure 96 --- > sans-allure 93 62983c64151 < sans-cœur 96 --- > sans-cœur 93 62985c64153 < sans-emploi 78 --- > sans-emploi 74 62991c64159 < sans-fil 96 --- > sans-fil 93 62993c64161 < sans-filiste 78 --- > sans-filiste 74 62995c64163 < sans-grade 78 --- > sans-grade 74 62997c64165 < sans-gêne 78 --- > sans-gêne 74 62999,63000c64167,64168 < sans-le-sou 96 < sans-logis 78 --- > sans-le-sou 93 > sans-logis 74 63002,63003c64170,64171 < sans-papiers 78 < sans-parti 78 --- > sans-papiers 74 > sans-parti 74 63005c64173 < sans-patrie 78 --- > sans-patrie 74 63009c64177 < sans-soin 78 --- > sans-soin 74 63011c64179 < sans-souci 78 --- > sans-souci 74 63026a64195 > santoméenne/3 6 63033a64203 > saola/1 1 63035c64205 < saoudite/1 101 --- > saoudite/1 105 63050c64220 < saphir 36 --- > saphir 35 63057c64227 < sapiens 36 --- > sapiens 35 63184c64354 < satisfaire/93 167 --- > satisfaire/94 250 63210c64380 < satî 96 --- > satî 93 63222c64392 < sauf 89 --- > sauf 193 63230c64400 < saumon 36 --- > saumon 35 63256c64426 < saurir/22 72 --- > saurir/22 76 63298c64468 < sauver/4 34 --- > sauver/4 36 63314c64484 < saveter 80 --- > saveter 82 63318c64488 < savoir/222 190 --- > savoir/222 91 63371c64541 < scandaliser/4 34 --- > scandaliser/4 36 63390a64561 > scapolite/1 2 63462c64633 < schlass 36 --- > schlass 35 63613c64784 < scotch/40 1 --- > scotch/38 1 63637,63638c64808,64809 < scratch 36 < scratch/40 1 --- > scratch 35 > scratch/38 1 63652c64823 < scripter/4 34 --- > scripter/4 36 63708c64879 < se 364 --- > se 398 63730c64901 < secourir/116 71 --- > secourir/116 154 63741c64912 < secréter/26 5 --- > secréter/27 5 63792c64963 < self-made-man/40 1 --- > self-made-man/38 1 63794c64965 < self-made-woman/40 2 --- > self-made-woman/38 2 63796a64968 > selfie/1 1 63803c64975 < selon 89 --- > selon 87 63818a64991 > semestrialisation/1 2 63822c64995 < semi 154 --- > semi 178 63875c65048 < senestrorsum 36 --- > senestrorsum 35 63881c65054 < sensass 36 --- > sensass 35 63911c65084 < sensu 69 --- > sensu 65 63934,63936c65107,65109 < sentir/83 190 < seoir/212 88 < seoir/211 88 --- > sentir/83 91 > seoir/212 110 > seoir/211 110 64001c65174 < serfouir/22 72 --- > serfouir/22 76 64074c65247,65249 < serrer/4 34 --- > serrer/4 36 > serricultrice/3 9 > serriculture/1 2 64080c65255 < sertir/22 72 --- > sertir/22 76 64097a65273 > servilisme/1 1 64099c65275 < servir/139 147 --- > servir/139 129 64107c65283 < ses 173 --- > ses 196 64169c65345 < sexy 36 --- > sexy 35 64172a65349,65351 > señor 189 > señora 190 > señorita 190 64176a65356 > shafiisme/1 1 64198c65378 < sherry/40 1 --- > sherry/38 1 64201a65382 > shiitaké/1 1 64214c65395 < shocking 36 --- > shocking 35 64222c65403 < shooter/4 34 --- > shooter/4 36 64245c65426 < si 139 --- > si 158 64258c65439 < sic 115 --- > sic 120 64265a65447 > sidaïque/1 11 64273c65455 < sidérer/26 5 --- > sidérer/27 5 64274a65457 > sidérocyte/1 1 64323c65506 < signaler/4 13 --- > signaler/4 141 64333c65516 < signer/4 34 --- > signer/4 100 64424c65607 < simplifier/4 34 --- > simplifier/4 36 64446c65629 < sine 69 --- > sine 65 64483c65666 < sinon 403 --- > sinon 440 64501c65684 < sioux 96 --- > sioux 93 64549c65732 < situ 69 --- > situ 65 64555c65738 < situer/4 13 --- > situer/4 103 64581c65764 < sketch/40 1 --- > sketch/38 1 64607a65791 > slamer/10 135 64610c65794 < slash/40 1 --- > slash/38 1 64637c65821 < smart 36 --- > smart 35 64639c65823 < smash/40 1 --- > smash/38 1 64658a65843 > smorzando/1 1 64679a65865 > snowboardeuse/3 9 64680a65867 > snowkite/1 1 64695,64696c65882,65883 < social-chrétien 145 < social-démocrate 145 --- > social-chrétien 165 > social-démocrate 165 64699,64700c65886,65887 < sociale-chrétienne 138 < sociale-démocrate 138 --- > sociale-chrétienne 157 > sociale-démocrate 157 64702,64703c65889,65890 < sociales-chrétiennes 161 < sociales-démocrates 161 --- > sociales-chrétiennes 180 > sociales-démocrates 180 64713,64714c65900,65901 < sociaux-chrétiens 137 < sociaux-démocrates 137 --- > sociaux-chrétiens 156 > sociaux-démocrates 156 64769a65957 > sodalite/1 2 64781c65969 < soft 36 --- > soft 35 64785,64786c65973,65974 < soi 215 < soi-disant 36 --- > soi 229 > soi-disant 35 64788c65976 < soi-même 215 --- > soi-même 229 64795c65983 < soigner/4 34 --- > soigner/4 36 64803c65991 < soit 402 --- > soit 439 64898a66087 > soliflore/1 1 64900a66090 > solifuge/1 1 64935a66126 > solutionnisme/1 1 64946a66138 > solénoglyphe/1 3 64961a66154 > somatopleure/1 1 64979c66172 < sommants 128 --- > sommants 131 64991c66184 < sommer/4 5 --- > sommer/4 97 65012c66205 < son 172 --- > son 195 65025c66218 < sondée/3 6 --- > sondée/3 9 65027,65028c66220,66221 < songe-creux 78 < songer/10 125 --- > songe-creux 74 > songer/10 144 65037c66230 < sonner/4 106 --- > sonner/4 116 65081a66275 > sorbonne/1 2 65106,65108c66300,66302 < sortir 185 < sortir/251 72 < sortir/83 93 --- > sortir 205 > sortir/251 76 > sortir/83 91 65127c66321 < soubattre/87 71 --- > soubattre/87 78 65177c66371 < souffre-douleur 78 --- > souffre-douleur 74 65180c66374 < souffrir/82 93 --- > souffrir/82 148 65217c66411 < souloir 157 --- > souloir 177 65222c66416 < soumettre/75 67 --- > soumettre/75 153 65266c66460 < sourdre/191 88 --- > sourdre/191 110 65272c66466 < sourire/145 156 --- > sourire/145 245 65279c66473 < sous 89 --- > sous 87 65294a66489 > sous-catégorie/1 2 65296a66492 > sous-chemise/1 2 65298a66495 > sous-comite/1 1 65310c66507 < sous-diagonale/1 102 --- > sous-diagonale/1 112 65311a66509 > sous-division/1 2 65321c66519 < sous-entendre/53 71 --- > sous-entendre/53 78 65337a66536 > sous-forme/1 2 65347a66547 > sous-informer/4 97 65350c66550 < sous-investir/22 94 --- > sous-investir/22 99 65352a66553 > sous-liste/1 2 65364a66566 > sous-ministre/1 10 65374c66576 < sous-palan 81 --- > sous-palan 66 65393a66596 > sous-race/1 2 65395c66598,66599 < sous-rémunérer/26 5 --- > sous-règne/1 1 > sous-rémunérer/27 5 65410c66614 < sous-tendre/53 71 --- > sous-tendre/53 78 65417a66622 > sous-tribu/1 2 65418a66624 > sous-variété/1 2 65437c66643 < souscrire/78 189 --- > souscrire/78 166 65444c66650 < soustraire/101 67 --- > soustraire/101 85 65456c66662 < soutenir/70 67 --- > soutenir/70 129 65463a66670 > soutif/1 1 65472c66679 < souvenir/70 280 --- > souvenir/70 308 65474c66681 < souventefois 424 --- > souventefois 458 65507a66715 > spadille/1 2 65524a66733 > sparganose/1 2 65562c66771 < speakeasy/40 1 --- > speakeasy/38 1 65588c66797 < speech/40 1 --- > speech/38 1 65590c66799 < speed 36 --- > speed 35 65619c66828 < sphacéler/26 5 --- > sphacéler/27 5 65625a66835 > sphingosine/1 2 65638a66849 > sphérocytose/1 2 65653a66865 > spinalienne/3 6 65703a66916 > spirule/1 2 65707a66921 > spitz 7 65709a66924 > splanchnopleure/1 1 65765a66981 > sporozoïte/1 1 65770c66986 < sportsman/40 1 --- > sportsman/38 1 65831a67048 > squalène/1 1 65907c67124 < stand-by 96 --- > stand-by 93 65909c67126 < standard 36 --- > standard 35 65958c67175 < stationnale/1 101 --- > stationnale/1 105 65983c67200 < statuer/4 113 --- > statuer/4 118 65987a67205,67206 > staturo-pondérale/7 4 > staturopondérale/7 4 65992a67212,67213 > staurolite/1 2 > staurotide/1 2 66028c67249 < sterling 36 --- > sterling 35 66033a67255 > sternotomie/1 2 66114a67337 > stot/1 1 66161a67385 > strepsiptère/1 1 66170c67394 < stresser/4 34 --- > stresser/4 36 66173a67398 > striage/1 1 66179c67404 < stricto 69 --- > stricto 65 66265c67490 < stupéfaire/197 71 --- > stupéfaire/197 78 66286a67512 > stylopode/1 1 66303a67530 > stéatorrhée/1 2 66329a67557 > stéphanoise/3 6 66332c67560 < stérer/26 5 --- > stérer/27 5 66364a67593 > stéréoisomère/1 1 66417a67647 > subculture/1 2 66422c67652 < subduire/184 88 --- > subduire/184 110 66424c67654 < subdéléguer/26 5 --- > subdéléguer/27 5 66430c67660 < subir/22 95 --- > subir/22 134 66438a67669 > subjectiver/4 100 66458a67690 > subluxation/1 2 66466a67699 > subnormale/7 4 66533c67766 < subtiliser/4 34 --- > subtiliser/4 36 66539c67772 < subvenir/248 177 --- > subvenir/248 254 66548c67781 < subvertir/22 72 --- > subvertir/22 76 66569c67802 < succomber/10 125 --- > succomber/10 144 66579c67812 < succéder/67 179 --- > succéder/67 201 66581c67814 < sucer/4 34 --- > sucer/4 36 66589c67822 < sucrer/4 34 --- > sucrer/4 36 66600a67834 > sudarabique/1 3 66613c67847 < suffire/108 156 --- > suffire/108 199 66633a67868 > suggestivement 8 66635c67870 < suggérer/26 19 --- > suggérer/27 19 66654,66655c67889,67890 < suitée/1 101 < suivant 89 --- > suitée/1 105 > suivant 87 66661c67896 < suivre/151 93 --- > suivre/151 175 66686a67922 > sulfonique/1 3 66697c67933 < sulky/40 1 --- > sulky/38 1 66711c67947 < super 36 --- > super 35 66713a67950,67952 > super-classe/1 2 > super-embranchement/1 1 > super-famille/1 2 66715c67954 < super-huit 36 --- > super-huit 35 66719a67959 > super-ordre/1 1 66753c67993 < superfinir/22 72 --- > superfinir/22 76 66769c68009 < supergéante/1 102 --- > supergéante/1 112 66780c68020 < superman/40 1 --- > superman/38 1 66829a68070,68071 > superwoman/38 2 > superwoman/1 2 66841c68083 < suppliciée/3 6 --- > suppliciée/3 9 66846c68088 < suppléer/4 113 --- > suppléer/4 118 66861c68103 < supposer/4 5 --- > supposer/4 101 66899a68142 > supratemporale/3 4 66914c68157 < sur 89 --- > sur 87 66986a68230 > surcuisson/1 2 66998a68243 > surdoser/4 97 67012c68257 < surenchérir/56 87 --- > surenchérir/56 92 67044c68289 < surfaire/93 71 --- > surfaire/94 78 67055c68300 < surfleurir 178 --- > surfleurir 200 67065c68310 < surgir/56 87 --- > surgir/56 143 67088a68334 > surincident/1 1 67091a68338 > surinformée/3 4 67095,67096c68342,68343 < surinterpréter/26 5 < surinvestir/22 94 --- > surinterpréter/27 5 > surinvestir/22 99 67098c68345 < surir/56 87 --- > surir/56 92 67122a68370 > surmodulation/1 2 67130a68379 > surmoïque/1 3 67177c68426 < surprendre/94 67 --- > surprendre/95 85 67188c68437 < surproduire/86 71 --- > surproduire/86 78 67191c68440 < surprotéger/26 5 --- > surprotéger/27 5 67201a68451 > surréagir/56 187 67212c68462 < surs 128 --- > surs 131 67221c68471 < surseoir/161 168 --- > surseoir/161 221 67224c68474 < sursoir/161 168 --- > sursoir/161 221 67235c68485,68486 < surtendre 121 --- > surtempérature/1 2 > surtendre 125 67250c68501 < survenir/70 148 --- > survenir/70 162 67258a68510 > survitesse/1 2 67265c68517 < survivre/189 156 --- > survivre/189 245 67275c68527 < survêtir/115 71 --- > survêtir/115 78 67288,67289c68540,68541 < sus 69 < sus-dominante/1 102 --- > sus 65 > sus-dominante/1 112 67300c68552 < suscrire/78 71 --- > suscrire/78 78 67309,67310c68561,68562 < suspendre/53 67 < suspens 145 --- > suspendre/53 85 > suspens 165 67403c68655 < sympa 36 --- > sympa 35 67424a68677,68678 > sympode/1 1 > sympodiale/7 4 67452a68707 > synchro/1 11 67494c68749 < syndiquée/3 6 --- > syndiquée/3 9 67512c68767 < synopsis 78 --- > synopsis 74 67517a68773 > synpériplanaire/1 3 67574c68830 < systématiser/4 34 --- > systématiser/4 36 67607a68864 > sécessionnisme/1 1 67610c68867 < sécher/26 34 --- > sécher/27 36 67615,67616c68872,68873 < sécréter/26 5 < sécréteuse/1 101 --- > sécréter/27 5 > sécréteuse/1 105 67655c68912 < séduire/86 110 --- > séduire/86 113 67671,67672c68928,68929 < ségréguer/26 5 < ségrégée/3 4 --- > ségréger/27 97 > ségréguer/27 97 67702c68959 < sélénieux 129 --- > sélénieux 137 67707a68965 > sélénodésie/1 2 67710a68969 > sélénologue/1 10 67738a68998 > séméiologique/1 3 67754c69014 < sénestrorsum 36 --- > sénestrorsum 35 67764c69024 < séniore/1 102 --- > séniore/1 112 67788c69048 < sépia 36 --- > sépia 35 67789a69050 > sépiole/1 2 67815a69077 > sérançoir/1 1 67872c69134 < sévir/56 72 --- > sévir/56 134 67877,67878c69139,69140 < sézigue 248 < sûr 135 --- > sézigue 270 > sûr 150 67888,67889c69150,69151 < ta 222 < tabac 36 --- > ta 237 > tabac 35 67914c69176 < tabler/10 126 --- > tabler/10 145 67941c69203 < tacher/4 34 --- > tacher/4 36 67993a69256 > taff/1 1 68004a69268 > tagme/1 1 68030c69294 < tailler/4 34 --- > tailler/4 36 68038c69302 < taire/196 67 --- > taire/196 98 68043a69308 > talalgie/1 2 68056a69322 > talith/1 1 68067a69334 > tallith/1 1 68089c69356 < talus 160 --- > talus 179 68102c69369 < tambour-major 117 --- > tambour-major 119 68111c69378 < tambours-majors 103 --- > tambours-majors 104 68139c69406,69407 < tandis 380 --- > tandis 417 > tandoori/1 3 68145c69413 < tangenter/71 107 --- > tangenter/71 111 68152c69420 < tango 36 --- > tango 35 68177c69445,69446 < tant 115 --- > tant 120 > tantalate/1 1 68202c69471 < tape-à-l'œil 36 --- > tape-à-l'œil 35 68206c69475 < taper/4 34 --- > taper/4 36 68213c69482 < tapinois 69 --- > tapinois 65 68216c69485 < tapir/22 136 --- > tapir/22 155 68258c69527 < tarder/10 125 --- > tarder/10 144 68273,68274c69542,69543 < targui 145 < targuie 138 --- > targui 165 > targuie 157 68283c69552 < tarir/22 94 --- > tarir/22 99 68293a69563 > tarologie/1 2 68319c69589 < tartir/56 87 --- > tartir/56 92 68336c69606 < tasser/4 34 --- > tasser/4 36 68362c69632 < taupe 36 --- > taupe 35 68407a69678,69679 > taximan/38 1 > taximan/1 1 68437a69710 > tchadri/1 1 68455c69728 < te 216 --- > te 230 68523c69796 < teindre/69 67 --- > teindre/69 85 68532c69805 < telle/3 183 --- > telle/3 191 68548,68549c69821,69822 < tempera 36 < tempera 69 --- > tempera 35 > tempera 65 68567,68568c69840,69841 < tempéra 36 < tempéra 69 --- > tempéra 35 > tempéra 65 68574c69847 < tempérer/26 13 --- > tempérer/27 13 68601c69874 < tendre/53 167 --- > tendre/53 153 68609,68610c69882,69883 < tenir/70 206 < tennis 78 --- > tenir/70 129 > tennis 74 68612c69885 < tennisman/40 1 --- > tennisman/38 1 68615c69888 < tenniswoman/40 2 --- > tenniswoman/38 2 68641c69914 < tenter/4 19 --- > tenter/4 101 68682c69955 < ternir/22 94 --- > ternir/22 99 68710c69983 < terre-à-terre 36 --- > terre-à-terre 35 68715c69988 < terrer/4 34 --- > terrer/4 36 68731c70004 < terrir/56 87 --- > terrir/56 92 68734a70008,70009 > territorialisation/1 2 > territorialiser/4 103 68752c70027 < tes 173 --- > tes 196 68757a70033 > tesseract/1 1 68780c70056 < teuf-teuf 78 --- > teuf-teuf 74 68782c70058 < teufs-teufs 103 --- > teufs-teufs 104 68788c70064 < tex-mex 36 --- > tex-mex 35 68827c70103 < thaï 96 --- > thaï 93 68869a70146,70147 > thermofixation/1 2 > thermofluide/1 1 68871c70149 < thermoformer/4 150 --- > thermoformer/4 97 68874a70153 > thermographique/1 3 68895a70175 > thermophobie/1 2 68909c70189 < thermos 78 --- > thermos 74 68916a70197 > thermostabilité/1 2 68983a70265 > thrombolytique/1 3 68997a70280 > thuyone/1 2 69004a70288,70289 > thymo-analeptique/1 3 > thymo-analeptique/1 1 69068a70354 > théologisme/1 1 69139c70425 < tierce/1 102 --- > tierce/1 112 69146c70432,70433 < tiers 160 --- > tiercéité/1 2 > tiers 179 69155c70442 < tifosi 78 --- > tifosi 74 69210c70497 < tinter/4 106 --- > tinter/4 116 69234,69235c70521,70522 < tire-au-cul 78 < tire-au-flanc 78 --- > tire-au-cul 74 > tire-au-flanc 74 69246c70533 < tire-bouchonner/4 34 --- > tire-bouchonner/4 36 69259c70546 < tire-d'aile 69 --- > tire-d'aile 65 69274c70561 < tire-larigot 69 --- > tire-larigot 65 69295c70582 < tirebouchonner/4 34 --- > tirebouchonner/4 36 69297c70584 < tirelarigot 69 --- > tirelarigot 65 69299c70586 < tirer/4 111 --- > tirer/4 140 69326c70613 < tistre/203 71 --- > tistre/203 78 69327a70615 > titanate/1 1 69333a70622 > titanosaure/1 1 69363c70652 < tiédir/22 95 --- > tiédir/22 106 69380c70669 < tof 36 --- > tof 35 69388,69389c70677,70678 < toi 216 < toi-même 216 --- > toi 230 > toi-même 230 69403a70693,70694 > toit-terrasse 17 > toits-terrasses 21 69407a70699,70702 > token/1 1 > tokenisation/1 2 > tokeniser/4 101 > tokeniseur/1 1 69424c70719 < tolérer/26 13 --- > tolérer/27 13 69436c70731 < tomber/4 236 --- > tomber/4 258 69449c70744 < tommy/40 1 --- > tommy/38 1 69457c70752 < ton 172 --- > ton 195 69465c70760 < tondre/53 71 --- > tondre/53 113 69496a70792,70793 > tonoplaste/1 1 > tonsillite/1 2 69524c70821 < topless 36 --- > topless 35 69545c70842 < toquer/4 98 --- > toquer/4 95 69547a70845 > torbernite/1 2 69563c70861 < tordre/53 67 --- > tordre/53 85 69615c70913 < tortiller/4 34 --- > tortiller/4 36 69620a70919 > tortricidé/1 1 69631c70930 < tory/40 1 --- > tory/38 1 69638c70937 < tosser/10 18 --- > tosser/10 135 69660c70959 < touarègue/1 102 --- > touarègue/1 112 69668c70967 < touche-à-tout 78 --- > touche-à-tout 74 69670c70969 < toucher/4 108 --- > toucher/4 107 69700,69701c70999 < tourangeau/17 86 < tourangelle/1 102 --- > tourangelle/7 6 69735c71033 < tourne-disque 36 --- > tourne-disque 35 69756c71054 < tourner/4 34 --- > tourner/4 100 69780,69781c71078 < tourtereau/17 1 < tourterelle/1 2 --- > tourterelle/7 9 69783c71080 < tous 261 --- > tous 282 69793c71090 < tout 386 --- > tout 423 69798,69799c71095,71096 < tout-terrain 96 < tout-va 132 --- > tout-terrain 93 > tout-va 147 69802c71099 < toute 387 --- > toute 424 69805c71102 < toute-puissante 138 --- > toute-puissante 157 69807,69808c71104,71105 < toutefois 115 < toutes 262 --- > toutefois 120 > toutes 283 69812c71109 < toutes-puissantes 161 --- > toutes-puissantes 180 69817a71115 > township/1 10 69838a71137 > toxocarose/1 2 69851a71151 > tracassante/3 4 69910c71210 < traduire/76 67 --- > traduire/76 175 69917c71217 < trafiquer/4 113 --- > trafiquer/4 118 69927c71227 < trahir/22 70 --- > trahir/22 79 69928a71229 > trail/1 1 69946c71247 < trainer/4 34 --- > trainer/4 36 69953c71254 < traire/101 71 --- > traire/101 78 69960c71261 < traiter/4 108 --- > traiter/4 126 69963c71264 < traitresse/1 102 --- > traitresse/1 112 70003c71304 < trans 36 --- > trans 35 70008c71309 < transamazonienne 138 --- > transamazonienne 157 70020c71321 < transcanadienne 138 --- > transcanadienne 157 70039c71340 < transcrire/78 71 --- > transcrire/78 113 70080a71382 > transférase/1 2 70082c71384 < transférer/26 5 --- > transférer/27 5 70101c71403 < transir/22 95 --- > transir/22 106 70121c71423 < translittérer/26 5 --- > translittérer/27 5 70124a71427 > transmembranaire/1 3 70126c71429 < transmettre/75 67 --- > transmettre/75 91 70147,70148c71450,71452 < transparaitre/100 88 < transparaître/100 88 --- > transpalette/1 1 > transparaitre/100 110 > transparaître/100 110 70199c71503 < transverbérer/26 5 --- > transverbérer/27 5 70225c71529 < trash 36 --- > trash 35 70239c71543 < travailler/4 111 --- > travailler/4 168 70245,70246c71549,71550 < traveler's 36 < traveleur's 36 --- > traveler's 35 > traveleur's 35 70248c71552 < traveller's 36 --- > traveller's 35 70260c71564 < travestir/22 70 --- > travestir/22 79 70263c71567 < traviole 69 --- > traviole 65 70280,70283c71584,71587 < traîne-malheur 78 < traîne-misère 78 < traîne-savates 78 < traîne-semelles 78 --- > traîne-malheur 74 > traîne-misère 74 > traîne-savates 74 > traîne-semelles 74 70286c71590 < traîner/4 34 --- > traîner/4 36 70291c71595 < traîtresse/1 102 --- > traîtresse/1 112 70326c71630 < tremper/4 34 --- > tremper/4 36 70362c71666 < tressaillir/137 88 --- > tressaillir/137 133 70459a71764 > trichologie/1 2 70468a71774 > trichoptère/1 1 70482c71788 < tricorps 36 --- > tricorps 35 70490c71796 < tricourant 36 --- > tricourant 35 70506c71812 < tridiagonale/1 101 --- > tridiagonale/1 105 70542c71848 < trijumeau/17 1 --- > trijumelle/7 9 70608c71914,71915 < triompher/10 125 --- > triompher/10 144 > triongulin/1 1 70609a71917,71918 > trioxane/1 1 > trioxyde/1 1 70639c71948 < triplex 36 --- > triplex 35 70651a71961 > tripolitaine/3 6 70679c71989 < trisser/4 34 --- > trisser/4 36 70687c71997 < triséquer/26 5 --- > triséquer/27 5 70725a72036,72037 > trochophore/1 3 > trochophore/1 2 70740c72052 < trois-points 81 --- > trois-points 66 70744c72056 < trois-étoiles 36 --- > trois-étoiles 35 70765c72077 < trompe-la-mort 78 --- > trompe-la-mort 74 70776c72088 < trompéter/26 19 --- > trompéter/27 19 70791c72103 < trop 115 --- > trop 120 70823c72135 < trotter/4 98 --- > trotter/4 95 70839c72151 < trouble-fête 78 --- > trouble-fête 74 70876c72188 < trouver/4 13 --- > trouver/4 100 70932c72244 < très 115 --- > très 120 70944c72256 < tréfondre 157 --- > tréfondre 177 70956c72268,72269 < trémière/1 101 --- > trémière/1 105 > trémolite/1 2 70999c72312 < tsoin-tsoin 36 --- > tsoin-tsoin 35 71008c72321 < tu 361 --- > tu 395 71030a72344 > tuberculoïde/1 3 71061,71063c72375,72377 < tue-mouches 36 < tue-tête 69 < tuer/4 34 --- > tue-mouches 35 > tue-tête 65 > tuer/4 36 71124a72439 > turbidimètre/1 1 71125a72441 > turbiditique/1 3 71133c72449 < turbo 36 --- > turbo 35 71196c72512 < turquoise 36 --- > turquoise 35 71212a72529 > tutorer/4 97 71221a72539 > tuvaluane/3 6 71242a72561 > tympanosclérose/1 2 71288a72608 > tyrosinase/1 2 71298c72618 < tâcher/4 113 --- > tâcher/4 118 71302c72622 < tâter/4 108 --- > tâter/4 126 71307c72627 < tâtons 69 --- > tâtons 65 71353a72674 > téléalarme/1 2 71390a72712 > télédéclarer/4 97 71395a72718 > téléformation/1 2 71434c72757 < télémétrer/26 19 --- > télémétrer/27 19 71452a72776 > téléphage/1 11 71455c72779 < téléphoner/4 111 --- > téléphoner/4 140 71478a72803 > télérèglement/1 1 71490a72816 > télésécurité/1 2 71496c72822 < télétransmettre/75 71 --- > télétransmettre/75 78 71518c72844 < témoigner/4 113 --- > témoigner/4 118 71531a72858 > ténosynovite/1 2 71542a72870,72871 > téphra/1 1 > téphrite/1 2 71568a72898 > téréphtalate/1 1 71579c72909 < téter/26 19 --- > téter/27 19 71586a72917 > tétraborate/1 1 71641c72972 < tézigue 357 --- > tézigue 391 71651c72982 < tête-de-nègre 36 --- > tête-de-nègre 35 71678a73010 > ubiquinone/2 2 71684c73016 < ubérale/2 101 --- > ubérale/2 105 71759c73091 < ultrafiltrer/4 159 --- > ultrafiltrer/11 101 71808c73140 < un/122 186 --- > un/122 206 71818c73150 < underground/6 36 --- > underground/6 35 71821c73153 < une/122 223 --- > une/122 238 71882c73214 < unir/45 70 --- > unir/45 255 71960c73292 < urbi 69 --- > urbi 65 71970c73302 < urger/71 107 --- > urger/71 111 71990a73323 > urodynamique/2 3 72009a73343 > urticarienne/5 4 72038c73372 < user/12 108 --- > user/12 126 72065c73399 < utero 132 --- > utero 147 72072c73406 < utiliser/11 5 --- > utiliser/11 97 72077a73412 > uto-aztèque/2 3 72086c73421 < utéro 132 --- > utéro 147 72100c73435 < va-comme-je-te-pousse 69 --- > va-comme-je-te-pousse 65 72102,72103c73437,73438 < va-nu-pieds 78 < va-t-en-guerre 96 --- > va-nu-pieds 74 > va-t-en-guerre 93 72141c73476 < vacive/1 102 --- > vacive/1 112 72150a73486 > vade 240 72165c73501 < vagir/56 87 --- > vagir/56 92 72185c73521 < vaincre/155 93 --- > vaincre/155 91 72203a73540 > valdoisienne/3 6 72216c73553 < valgus 36 --- > valgus 35 72235,72236c73572,73573 < valoir/219 93 < valorem 69 --- > valoir/219 175 > valorem 65 72299a73637 > vannette/1 2 72307a73646 > vanuatuane/3 6 72320c73659 < vapoter/4 159 --- > vapoter/4 101 72322c73661 < vaquer/10 125 --- > vaquer/10 144 72346a73686 > varicelliforme/1 3 72357a73698 > variscite/1 2 72368c73709 < varus 160 --- > varus 179 72380c73721 < vaser/71 107 --- > vaser/71 111 72389a73731 > vasomotricité/1 2 72407c73749 < vaticane/1 101 --- > vaticane/1 105 72415c73757 < vau-l'eau 69 --- > vau-l'eau 65 72428c73770 < vauvert 135 --- > vauvert 150 72442c73784 < veiller/4 106 --- > veiller/4 116 72485c73827 < vendre/53 93 --- > vendre/53 129 72503c73845 < venir/70 229 --- > venir/70 248 72508c73850 < venter/71 107 --- > venter/71 111 72561c73903 < verdir/22 95 --- > verdir/22 106 72585c73927 < verglacer/71 107 --- > verglacer/71 111 72613c73955 < vermifuger/4 159 --- > vermifuger/4 101 72616c73958 < vermillon 36 --- > vermillon 35 72632a73975 > vernaliser/4 101 72635c73978 < vernir/22 72 --- > vernir/22 76 72658c74001 < vers 89 --- > vers 87 72670c74013 < verser/4 34 --- > verser/4 36 72678a74022 > versionnage/1 1 72683,72684c74027,74028 < versus 89 < vert-de-gris 36 --- > versus 87 > vert-de-gris 35 72760c74104 < via 89 --- > via 87 72769c74113 < viander/4 98 --- > viander/4 95 72810c74154 < vice-versa 69 --- > vice-versa 65 72877c74221 < vidéo 36 --- > vidéo 35 72890a74235 > vidéoludique/1 3 72903c74248 < vieil 135 --- > vieil 150 72905c74250 < vieille/1 102 --- > vieille/1 112 72908c74253 < vieillir/22 94 --- > vieillir/22 142 72922c74267 < vieux 160 --- > vieux 179 72924c74269 < vif-argent 81 --- > vif-argent 66 72958c74303 < vilené/1 120 --- > vilené/1 124 72996c74341 < vingt/96 42 --- > vingt/93 42 73027c74372 < vintage 36 --- > vintage 35 73031a74377 > vinylidénique/1 3 73060c74406 < vioquir/56 87 --- > vioquir/56 92 73075c74421 < virer/4 106 --- > virer/4 116 73093a74440 > virilisante/3 4 73112a74460 > viroïde/1 1 73130c74478 < vis-à-vis 69 --- > vis-à-vis 65 73148c74496 < viser/4 106 --- > viser/4 116 73185c74533 < visu 69 --- > visu 65 73193c74541 < vitae 129 --- > vitae 137 73201c74549 < vitam 69 --- > vitam 65 73240c74588 < vitro 69 --- > vitro 65 73248,73249c74596,74597 < vitupérer/26 19 < vitæ 129 --- > vitupérer/27 19 > vitæ 137 73262c74610 < vivendi 129 --- > vivendi 137 73276c74624 < vivo 69 --- > vivo 65 73280c74628 < vivre/150 110 --- > vivre/150 113 73308c74656 < vociférer/26 19 --- > vociférer/27 19 73318c74666 < voici 89 --- > voici 87 73323c74671 < voiler/4 34 --- > voiler/4 36 73328,73329c74676,74677 < voilà 89 < voir/221 206 --- > voilà 87 > voir/221 129 73340c74688 < voiturer 80 --- > voiturer 82 73371c74719 < voler/4 34 --- > voler/4 36 73423a74772 > volumatrice/3 4 73446c74795 < vomir/22 95 --- > vomir/22 134 73460c74809 < vos 173 --- > vos 196 73468c74817 < votre 172 --- > votre 195 73473,73475c74822,74824 < vouloir/225 206 < vous 249 < vous-même/96 249 --- > vouloir/225 129 > vous 271 > vous-même/93 271 73490a74840 > voxographie/1 2 73528c74878 < vrombir/56 87 --- > vrombir/56 143 73532,73533c74882,74883 < vs 89 < vu 89 --- > vs 87 > vu 87 73651c75001 < vénérer/26 5 --- > vénérer/27 5 73711a75062 > vététiste/1 10 73719c75070 < vêtir/115 67 --- > vêtir/115 98 73755c75106 < wah-wah 36 --- > wah-wah 35 73766c75117 < wallaby/40 1 --- > wallaby/38 1 73790c75141 < waterproof 36 --- > waterproof 35 73796c75147 < wattman/40 1 --- > wattman/38 1 73801c75152 < web 36 --- > web 35 73827c75178 < whisky/40 1 --- > whisky/38 1 73831c75182 < wi-fi 36 --- > wi-fi 35 73841c75192,75193 < winch/40 1 --- > willémite/1 2 > winch/38 1 73853a75206 > wolofe/3 6 73859c75212 < wormien/1 120 --- > wormien/1 124 73862c75215 < www/32 154 --- > www/32 178 73891a75245 > xiphosure/1 1 73894a75249 > xylitol/1 1 73901a75257 > xylophagie/1 2 73910a75267 > xénobiotique/1 3 73915a75273 > xénomorphe/1 3 73920a75279,75280 > xénoplastique/1 3 > xénotime/1 1 73936c75296 < y/265 363 --- > y/265 397 73940c75300 < yachtman/40 1 --- > yachtman/38 1 73942,73944c75302,75304 < yachtsman/40 1 < yachtswoman/40 2 < yachtwoman/40 2 --- > yachtsman/38 1 > yachtswoman/38 2 > yachtwoman/38 2 73962c75322 < yeoman/40 1 --- > yeoman/38 1 73964c75324 < yeomanry/40 2 --- > yeomanry/38 2 73969c75329 < yiddish 36 --- > yiddish 35 74022c75382 < yé-yé 96 --- > yé-yé 93 74025a75386,75387 > yézidie/3 6 > yézidisme/1 1 74029c75391 < zain/1 120 --- > zain/1 124 74058c75420 < zen 36 --- > zen 35 74100c75462 < zingara 117 --- > zingara 119 74117a75480 > zircaloy/1 1 74141c75504 < zoner/4 34 --- > zoner/4 36 74144a75508 > zonule/1 2 74148a75513 > zoochorie/1 2 74164c75529 < zoomer/4 113 --- > zoomer/4 118 74191a75557 > zooxanthelle/1 2 74229a75596 > zygodactyle/1 3 74252c75619 < zébrer/26 5 --- > zébrer/27 5 74269c75636 < zéro 244 --- > zéro 266 74289,74290c75656,75657 < Écosse/27 20 < Éden/27 12 --- > Écosse/28 20 > Éden/28 12 74295c75662 < Égypte/27 20 --- > Égypte/28 20 74308a75676 > Élohim/6 14 74331,74332c75699,75700 < Épire/27 20 < Équateur/27 17 --- > Épire/28 20 > Équateur/28 17 74340c75708 < Érythrée/27 20 --- > Érythrée/28 20 74346c75714 < Éthiopie/27 20 --- > Éthiopie/28 20 74349c75717 < Étrurie/27 20 --- > Étrurie/28 20 74359c75727 < Île-de-France/27 20 --- > Île-de-France/28 20 74362c75730 < à/177 89 --- > à/177 193 74397,74398c75765,75766 < æquo 36 < æquo 132 --- > æquo 35 > æquo 147 74401c75769 < æternam 69 --- > æternam 65 74403,74404c75771,75772 < ça 171 < çuilà 412 --- > ça 192 > çuilà 448 74408,74409c75776,75777 < ès 89 < ébahir/45 70 --- > ès 87 > ébahir/45 79 74418,74419c75786,75787 < ébattre/202 119 < ébaubir/118 136 --- > ébattre/202 123 > ébaubir/118 155 74425c75793 < ébaudir/45 70 --- > ébaudir/45 79 74431c75799 < éblouir/65 95 --- > éblouir/65 134 74444c75812 < ébouler/12 34 --- > ébouler/12 36 74447c75815 < ébouqueter 80 --- > ébouqueter 82 74456a75825 > éboutage/2 1 74458c75827 < ébouzer 80 --- > ébouzer 82 74470c75839 < ébroudir/65 72 --- > ébroudir/65 76 74511c75880 < écarteler/95 5 --- > écarteler/96 5 74514c75883 < écarter/12 34 --- > écarter/12 36 74520c75889 < écatir/65 72 --- > écatir/65 76 74530c75899 < échampir/65 72 --- > échampir/65 76 74549c75918,75919 < échantillothèque/1 2 --- > échantillothèque/2 2 > échanvroir/2 1 74552c75922 < échapper/12 111 --- > échapper/12 140 74591c75961 < écher/60 5 --- > écher/59 5 74625c75995 < échoir/210 88 --- > échoir/210 162 74636c76006 < échouer/12 34 --- > échouer/12 36 74652c76022 < éclaircir/45 70 --- > éclaircir/45 79 74657c76027 < éclairer/12 34 --- > éclairer/12 36 74666c76036 < éclater/12 34 --- > éclater/12 36 74681c76051 < éclore/207 88 --- > éclore/207 133 74692c76062 < écobilan/1 1 --- > écobilan/2 1 74696a76067 > écocertifiée/5 4 74701c76072 < écoconstruction/1 2 --- > écoconstruction/2 2 74720c76091 < éconduire/86 71 --- > éconduire/86 113 74758a76130 > écoresponsable/2 3 74790c76162 < écouter/12 235 --- > écouter/12 100 74806c76178 < écraser/12 34 --- > écraser/12 36 74811c76183 < écrire/78 147 --- > écrire/78 129 74826c76198 < écrouir/65 72 --- > écrouir/65 76 74840c76212 < écrémer/60 5 --- > écrémer/59 5 74844a76217 > écrêteur/2 1 74872c76245 < éd 78 --- > éd 74 74937c76310 < égarée/5 6 --- > égarée/5 9 74950c76323 < égnaffer 80 --- > égnaffer 82 74968c76341 < égoutter/12 34 --- > égoutter/12 36 74973c76346 < égoïner 80 --- > égoïner 82 74982c76355 < égratignement/1 1 --- > égratignement/2 1 75033c76406 < élancer/12 34 --- > élancer/12 36 75036c76409 < élargir/45 94 --- > élargir/45 99 75117d76489 < électrofaible/2 3 75118a76491 > électrofunk/2 1 75196a76570 > électuaire/2 1 75198c76572 < élever/99 13 --- > élever/99 141 75211c76585 < éliminer/12 34 --- > éliminer/12 36 75215c76589 < élire/148 71 --- > élire/148 154 75229c76603 < éloigner/12 13 --- > éloigner/12 103 75258c76632 < élégir/65 72 --- > élégir/65 76 75292c76666 < émeraude/6 36 --- > émeraude/6 35 75306c76680 < émettre/75 110 --- > émettre/75 113 75317c76691 < émigrée/5 6 --- > émigrée/5 9 75333a76708 > émoji/2 1 75340c76715 < émondeuse/3 9 --- > émondeuse/5 9 75364c76739 < émoudre/124 71 --- > émoudre/124 78 75373c76748 < émouvoir/163 93 --- > émouvoir/163 91 75386c76761 < émécher/60 5 --- > émécher/59 5 75432a76808 > énophtalmie/2 2 75443c76819 < énumérer/60 5 --- > énumérer/59 5 75461c76837 < épaissir/45 94 --- > épaissir/45 99 75473c76849 < épandre/53 67 --- > épandre/53 85 75477c76853 < épanouir/45 70 --- > épanouir/45 139 75484c76860,76861 < épargner/12 34 --- > épargne-temps/6 40 > épargner/12 36 75514c76891 < épeler/91 34 --- > épeler/91 36 75519c76896 < éperdre/205 119 --- > éperdre/205 123 75590c76967 < épier/12 34 --- > épier/12 36 75597c76974 < épigastralgie/1 2 --- > épigastralgie/2 2 75634c77011 < épiloguer/12 113 --- > épiloguer/12 118 75663c77040 < épinière/2 101 --- > épinière/2 105 75669a77047 > épiphonème/2 1 75678a77057 > épipélagique/2 3 75698a77078 > épistasique/2 3 75760c77140 < épouser/12 34 --- > épouser/12 36 75770c77150 < époutir/65 72 --- > époutir/65 76 75778a77159 > époxydation/2 2 75781c77162,77163 < épreindre 121 --- > époxydée/5 4 > épreindre 125 75783c77165 < éprendre/130 119 --- > éprendre/130 123 75785d77166 < éprise/5 4 75800c77181 < épurage/1 1 --- > épurage/2 1 75820,75821c77201,77202 < équarrier 80 < équarrir/65 72 --- > équarrier 82 > équarrir/65 76 75854a77236 > équilibrisme/2 1 75856a77239 > équimassique/2 3 75874,75875c77257,77258 < équipoller/12 34 < équipolé/2 120 --- > équipoller/12 36 > équipolé/2 124 75882c77265 < équipée/5 6 --- > équipée/2 2 75897c77280 < équivaloir/217 176 --- > équivaloir/217 307 75969a77353 > érythroblastopénie/2 2 75993c77377 < établir/45 70 --- > établir/45 139 76009c77393 < étaler/12 34 --- > étaler/12 36 76048,76049c77432 < étasunienne/5 4 < étasunienne/3 6 --- > étasunienne/5 6 76062c77445 < étayer/12 13 --- > étayer/12 225 76065c77448 < éteindre/69 67 --- > éteindre/69 91 76069c77452 < étendre/53 67 --- > étendre/53 98 76079c77462 < éthanal/1 1 --- > éthanal/2 1 76098a77482 > éthylation/2 2 76106a77491 > éthène/2 1 76159c77544 < étouffer/12 34 --- > étouffer/12 36 76169c77554 < étourdir/45 70 --- > étourdir/45 79 76183c77568 < étreindre/69 67 --- > étreindre/69 85 76206c77591 < étrécir/45 70 --- > étrécir/45 79 76213c77598 < étudier/12 34 --- > étudier/12 36 76229c77614 < étésien/2 120 --- > étésien/2 124 76257c77642 < évanouir/118 136 --- > évanouir/118 155 76312c77697 < éviscérer/60 5 --- > éviscérer/59 5 76316c77701 < éviter/12 108 --- > éviter/12 126 76343c77728 < être/179 295 --- > être/179 326 76356c77741 < œconomicus 129 --- > œconomicus 137 76437c77822,77823 < Δt 78 --- > Δt 74 > Ω/57 7 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/fr/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/fr/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/fr/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/fr/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/fr/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/fr/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/fr/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/fr/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/fr/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/fr/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,9d3 < remove "Contents/Resources/searchplugins/yahoo-france.xml" < remove "Contents/Resources/searchplugins/wikipedia-fr.xml" < remove "Contents/Resources/searchplugins/eBay-france.xml" < remove "Contents/Resources/searchplugins/cnrtl-tlfi-fr.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/amazon-france.xml" 58,60c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 91c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 117d108 < rmdir "Contents/Resources/searchplugins/" 123d113 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < rDmgIs01Nto0SdmkWE9THMm1/cA= --- > 4OPBxiyxi5b0RtUuR6e5uW+xcYk= 33c33 < PVfHe1Ocot/Ekv6G47OLHUSQOLk= --- > ZwnL6TzsH3Nk0CaE65R2jmBw6io= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < C2ryGStkh+ZFTAxJ/uFlcgREMpM= --- > ZWSNKGUxInVrhS5N/SaMKbq7Fws= 229c229 < zZQY4PSZx9ord4dMOkTMate5NNs= --- > BEi3kaE1dimUx/STpA0mM+dIZGE= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < A1nql/UWfwC5WYOyTCPLNGj/n+s= --- > zS+rVu/3PRB4sc50z4KfbhERYQw= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 395c395 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 397c397 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 401c401 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 403c403 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 405c405 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 409c409 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 446c446 < 8cKY3SAHn83Fce83kiW4xqMEK/A= --- > VJIk6Nq1P1cCIRfhqs8hksndAg4= 450c450 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 454c454 < i5BhG82SF6hVr5/AHCgOHr0xQLI= --- > CxFXzvfkbP8xs/5pBE/Al11qT04= 458c458 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,631d607 < Resources/searchplugins/amazon-france.xml < < llERgj4Ote9pU623Fm9d/2TDnOE= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/cnrtl-tlfi-fr.xml < < EV6tILsXQT8SXX6fBwMczulMQp4= < < Resources/searchplugins/eBay-france.xml < < EGtul8+jDMwbhW+H0cHxmTJ5Fcs= < < Resources/searchplugins/wikipedia-fr.xml < < htwHOAAd9/z0gOeVGCsbAWiXkek= < < Resources/searchplugins/yahoo-france.xml < < E6pcIQzjFYUdzkOXgQDiFLQEHho= < 660c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 669c645 < 0CZu1EHKLX359A/mEAZ5anzmie8= --- > YBGKlzioKLAUTTxhiRqI9jjKiDs= 678c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 687c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 696c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 701c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 705c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 714c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 723c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 732c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 741c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 750c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 759c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 768c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 777c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 786c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 795c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 802c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 806c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 818c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 822c798 < rDmgIs01Nto0SdmkWE9THMm1/cA= --- > 4OPBxiyxi5b0RtUuR6e5uW+xcYk= 826c802 < PVfHe1Ocot/Ekv6G47OLHUSQOLk= --- > ZwnL6TzsH3Nk0CaE65R2jmBw6io= 830c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 834c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 838c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 842c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 846c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 850c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 854c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 858c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 862c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 866c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 870c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 874c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 878c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 882c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 886c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 890c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 894c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 898c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 902c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 906c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 910c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 914c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 918c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 922c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 926c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 930c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 934c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 938c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 942c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 946c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 950c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 954c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 958c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 962c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 966c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 970c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 974c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 978c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 982c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 986c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 990c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 994c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 998c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1002c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1010c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1014c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1018c994 < C2ryGStkh+ZFTAxJ/uFlcgREMpM= --- > ZWSNKGUxInVrhS5N/SaMKbq7Fws= 1022c998 < zZQY4PSZx9ord4dMOkTMate5NNs= --- > BEi3kaE1dimUx/STpA0mM+dIZGE= 1026c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1030c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1034c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1038c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1042c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1046c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1050c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1054c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1058c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1062c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1066c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1070c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1074c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1078c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1082c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1094c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1098c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1106c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1110c1086 < A1nql/UWfwC5WYOyTCPLNGj/n+s= --- > zS+rVu/3PRB4sc50z4KfbhERYQw= 1114c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1118c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1122c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1126c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1130c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1134c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1138c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1142c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1146c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1150c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1154c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1158c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1162c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1170c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1174c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1178c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1182c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1186c1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1188c1164 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1190c1166 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1192c1168 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1194c1170 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1196c1172 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1198c1174 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1200c1176 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1202c1178 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1239c1215 < 8cKY3SAHn83Fce83kiW4xqMEK/A= --- > VJIk6Nq1P1cCIRfhqs8hksndAg4= 1243c1219 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1247c1223 < i5BhG82SF6hVr5/AHCgOHr0xQLI= --- > CxFXzvfkbP8xs/5pBE/Al11qT04= 1251c1227 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1401,1424d1376 < Resources/searchplugins/amazon-france.xml < < llERgj4Ote9pU623Fm9d/2TDnOE= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/cnrtl-tlfi-fr.xml < < EV6tILsXQT8SXX6fBwMczulMQp4= < < Resources/searchplugins/eBay-france.xml < < EGtul8+jDMwbhW+H0cHxmTJ5Fcs= < < Resources/searchplugins/wikipedia-fr.xml < < htwHOAAd9/z0gOeVGCsbAWiXkek= < < Resources/searchplugins/yahoo-france.xml < < E6pcIQzjFYUdzkOXgQDiFLQEHho= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48037490 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:08 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48037489 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:08 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48037488 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:08 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48037438 8 -rw-r--r-- 1 cltbld staff 2399 May 9 18:08 source/Thunderbird.app/Contents/Resources/searchplugins/amazon-france.xml 48037437 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:08 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48037436 8 -rw-r--r-- 1 cltbld staff 2035 May 9 18:08 source/Thunderbird.app/Contents/Resources/searchplugins/cnrtl-tlfi-fr.xml 48037435 8 -rw-r--r-- 1 cltbld staff 2580 May 9 18:08 source/Thunderbird.app/Contents/Resources/searchplugins/eBay-france.xml 48037434 8 -rw-r--r-- 1 cltbld staff 2167 May 9 18:08 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-fr.xml 48037433 16 -rw-r--r-- 1 cltbld staff 5204 May 9 18:08 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-france.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:08:32-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:08:32 GMT Keep-Alive: timeout=5, max=963 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:08:32 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fy-NL/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fy-NL/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:08:32-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fy-NL/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67828304 Connection: keep-alive Date: Tue, 10 May 2016 01:08:33 GMT x-amz-replication-status: COMPLETED x-amz-version-id: SxNLqfjI2bh2NyPQn0d8bVAXgnluAPJl Last-Modified: Tue, 03 May 2016 15:45:30 GMT ETag: "26a3f24fee7502c074fd449c88415f74" Accept-Ranges: bytes Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 8e86372eaaa62fc64b70e7bcde725dd9.cloudfront.net (CloudFront) X-Amz-Cf-Id: bPCehMYs537g5A94Q4L3BuYDrMHl1RagNPB3NLhEmEficKaI1C0GMQ== Length: 67828304 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 1.78M 35s 3072K ........ ........ ........ ........ ........ ........ 9% 3.43M 25s 6144K ........ ........ ........ ........ ........ ........ 13% 4.15M 20s 9216K ........ ........ ........ ........ ........ ........ 18% 4.51M 17s 12288K ........ ........ ........ ........ ........ ........ 23% 4.53M 15s 15360K ........ ........ ........ ........ ........ ........ 27% 4.57M 14s 18432K ........ ........ ........ ........ ........ ........ 32% 4.58M 12s 21504K ........ ........ ........ ........ ........ ........ 37% 4.18M 11s 24576K ........ ........ ........ ........ ........ ........ 41% 4.30M 10s 27648K ........ ........ ........ ........ ........ ........ 46% 4.53M 9s 30720K ........ ........ ........ ........ ........ ........ 51% 4.54M 8s 33792K ........ ........ ........ ........ ........ ........ 55% 4.60M 7s 36864K ........ ........ ........ ........ ........ ........ 60% 4.57M 7s 39936K ........ ........ ........ ........ ........ ........ 64% 4.59M 6s 43008K ........ ........ ........ ........ ........ ........ 69% 4.65M 5s 46080K ........ ........ ........ ........ ........ ........ 74% 5.83M 4s 49152K ........ ........ ........ ........ ........ ........ 78% 8.00M 3s 52224K ........ ........ ........ ........ ........ ........ 83% 8.46M 2s 55296K ........ ........ ........ ........ ........ ........ 88% 8.41M 2s 58368K ........ ........ ........ ........ ........ ........ 92% 9.23M 1s 61440K ........ ........ ........ ........ ........ ........ 97% 7.21M 0s 64512K ........ ........ ........ .. 100% 14.1M=14s 2016-05-09 18:08:46 (4.71 MB/s) - 'update/complete.mar' saved [67828304/67828304] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/fy-NL/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/fy-NL/Thunderbird 38.6.0.dmg'] --2016-05-09 18:08:48-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/fy-NL/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69854821 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:08:48 GMT ETag: "98fa3640cb97449df4c318ac7d5c6c47" Last-Modified: Fri, 12 Feb 2016 21:48:42 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 4z12OcO8ebdgVvvD418UT4O82durzrVV X-Cache: Miss from cloudfront Via: 1.1 aa96a51fedae85199c643eb5c8eca4e4.cloudfront.net (CloudFront) X-Amz-Cf-Id: WcagIPv36d3HOVtFYrXPioRo27fScPTALO_oPMjrwIO1GeuKltn5Dw== Length: 69854821 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.25M 51s 3072K ........ ........ ........ ........ ........ ........ 9% 176K 3m21s 6144K ........ ........ ........ ........ ........ ........ 13% 1.72M 2m18s 9216K ........ ........ ........ ........ ........ ........ 18% 1.83M 1m46s 12288K ........ ........ ........ ........ ........ ........ 22% 1.65M 86s 15360K ........ ........ ........ ........ ........ ........ 27% 1.49M 73s 18432K ........ ........ ........ ........ ........ ........ 31% 1.28M 64s 21504K ........ ........ ........ ........ ........ ........ 36% 1.17M 57s 24576K ........ ........ ........ ........ ........ ........ 40% 904K 52s 27648K ........ ........ ........ ........ ........ ........ 45% 467K 51s 30720K ........ ........ ........ ........ ........ ........ 49% 442K 50s 33792K ........ ........ ........ ........ ........ ........ 54% 395K 48s 36864K ........ ........ ........ ........ ........ ........ 58% 1.15M 42s 39936K ........ ........ ........ ........ ........ ........ 63% 1.09M 36s 43008K ........ ........ ........ ........ ........ ........ 67% 1.35M 31s 46080K ........ ........ ........ ........ ........ ........ 72% 597K 27s 49152K ........ ........ ........ ........ ........ ........ 76% 438K 23s 52224K ........ ........ ........ ........ ........ ........ 81% 766K 19s 55296K ........ ........ ........ ........ ........ ........ 85% 676K 14s 58368K ........ ........ ........ ........ ........ ........ 90% 849K 10s 61440K ........ ........ ........ ........ ........ ........ 94% 1.11M 5s 64512K ........ ........ ........ ........ ........ ........ 99% 2.04M 1s 67584K ........ . 100% 1.56M=93s 2016-05-09 18:10:22 (732 KB/s) - 'Thunderbird 38.6.0.dmg' saved [69854821/69854821] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/fy-NL/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/fy-NL/Thunderbird 45.1.0.dmg'] --2016-05-09 18:10:22-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/fy-NL/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77208528 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:10:23 GMT ETag: "f071af9f02876806c14f5ba3a5fafb63" Last-Modified: Mon, 09 May 2016 21:23:18 GMT x-amz-replication-status: COMPLETED x-amz-version-id: FC7.ya9.OrAud34JrEEdhzATff4DB3lE X-Cache: Miss from cloudfront Via: 1.1 88972e3933cc06dd11a6fa704a208631.cloudfront.net (CloudFront) X-Amz-Cf-Id: HSjrSDW1cZJxVd1vDj9OhAtNmR_XXVKFubF4FIu-MZnzA_PQukk7Sg== Length: 77208528 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.52M 46s 3072K ........ ........ ........ ........ ........ ........ 8% 1.25M 49s 6144K ........ ........ ........ ........ ........ ........ 12% 3.57M 37s 9216K ........ ........ ........ ........ ........ ........ 16% 2.89M 32s 12288K ........ ........ ........ ........ ........ ........ 20% 2.27M 30s 15360K ........ ........ ........ ........ ........ ........ 24% 1.86M 28s 18432K ........ ........ ........ ........ ........ ........ 28% 1.37M 28s 21504K ........ ........ ........ ........ ........ ........ 32% 856K 31s 24576K ........ ........ ........ ........ ........ ........ 36% 631K 34s 27648K ........ ........ ........ ........ ........ ........ 40% 361K 41s 30720K ........ ........ ........ ........ ........ ........ 44% 1.39M 38s 33792K ........ ........ ........ ........ ........ ........ 48% 1.45M 34s 36864K ........ ........ ........ ........ ........ ........ 52% 876K 32s 39936K ........ ........ ........ ........ ........ ........ 57% 878K 30s 43008K ........ ........ ........ ........ ........ ........ 61% 1.78M 26s 46080K ........ ........ ........ ........ ........ ........ 65% 1.10M 23s 49152K ........ ........ ........ ........ ........ ........ 69% 832K 21s 52224K ........ ........ ........ ........ ........ ........ 73% 491K 20s 55296K ........ ........ ........ ........ ........ ........ 77% 1.34M 16s 58368K ........ ........ ........ ........ ........ ........ 81% 718K 14s 61440K ........ ........ ........ ........ ........ ........ 85% 881K 11s 64512K ........ ........ ........ ........ ........ ........ 89% 831K 8s 67584K ........ ........ ........ ........ ........ ........ 93% 740K 5s 70656K ........ ........ ........ ........ ........ ........ 97% 1.56M 2s 73728K ........ ........ ........ .. 100% 1.27M=75s 2016-05-09 18:11:38 (1006 KB/s) - 'Thunderbird 45.1.0.dmg' saved [77208528/77208528] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/fy.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/fy.lproj/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/fy.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/fy.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/fy.lproj/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/fy.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/fy.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/fy.lproj/ non-fatal error removing directory: Contents/Resources/fy.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/fy.lproj/InfoPlist.strings FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/fy-NL/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/fy-NL/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/fy-NL/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/fy-NL/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/fy-NL/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/fy-NL/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/fy-NL/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/fy-NL/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/fy-NL/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/fy-NL/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d106 < rmdir "Contents/Resources/searchplugins/" 122d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < iXIChGNC9twRRHXdkwTSoFeYugA= --- > 7xsE2qjluEzETbzDDZi8g7UVC8o= 221c221 < AS/i/lPSB/LJtydJyrr0xPfPDzU= --- > QatbNuVDK2YZ74U9VHmM4jN5m2I= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < cXSWqAq1JnfV8XtIYq7LQFDEcaE= --- > Hn8pPrNFu4f+1rouvXzwNWpy/A4= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < 5tgcU5Ko20PA0zH1XpuDMEHc5MI= --- > rzfrz/t3LF4dQJRPFKVgsYmGiOs= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < QrFGCkJJDRx44OhMXEt+RdA0ps8= --- > AiAZf9H8fWImSeJ0KtlopoN7ijo= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,627d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < 7Xg0RlBSitISF83Udo27X72bf5o= --- > tYD+pgBQBzT3PrkiArOWYJJ9oZs= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c978 < iXIChGNC9twRRHXdkwTSoFeYugA= --- > 7xsE2qjluEzETbzDDZi8g7UVC8o= 1010c982 < AS/i/lPSB/LJtydJyrr0xPfPDzU= --- > QatbNuVDK2YZ74U9VHmM4jN5m2I= 1014c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1070 < cXSWqAq1JnfV8XtIYq7LQFDEcaE= --- > Hn8pPrNFu4f+1rouvXzwNWpy/A4= 1102c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1176c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1178c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1180c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1182c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1184c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1186c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1188c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1190c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1227c1199 < 5tgcU5Ko20PA0zH1XpuDMEHc5MI= --- > rzfrz/t3LF4dQJRPFKVgsYmGiOs= 1231c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1235c1207 < QrFGCkJJDRx44OhMXEt+RdA0ps8= --- > AiAZf9H8fWImSeJ0KtlopoN7ijo= 1239c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1389,1416d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48038241 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:12 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48038240 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:12 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48038239 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:12 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48038189 8 -rw-r--r-- 1 cltbld staff 1531 May 9 18:12 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48038188 8 -rw-r--r-- 1 cltbld staff 1670 May 9 18:12 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48038187 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:12 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48038186 8 -rw-r--r-- 1 cltbld staff 2569 May 9 18:12 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48038185 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:12 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48038184 8 -rw-r--r-- 1 cltbld staff 1338 May 9 18:12 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48038183 8 -rw-r--r-- 1 cltbld staff 1363 May 9 18:12 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:12:34-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:12:34 GMT Keep-Alive: timeout=5, max=996 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:12:34 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ga-IE/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ga-IE/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:12:34-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ga-IE/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67841356 Connection: keep-alive Date: Tue, 10 May 2016 01:08:57 GMT x-amz-replication-status: COMPLETED x-amz-version-id: RjhIQwZXM.zpHEBf91zbkNWJ.MavJaeP Last-Modified: Tue, 03 May 2016 15:58:27 GMT ETag: "d9a60d8a6a902e2da181888f104b1907" Accept-Ranges: bytes Server: AmazonS3 Age: 218 X-Cache: Hit from cloudfront Via: 1.1 2239f0bfe6d7427183a4e375c4638619.cloudfront.net (CloudFront) X-Amz-Cf-Id: kOUMw9Y_OK46jCObJYTOCKNUHu-TDF719MvnKrqUAswWpxDbzlTXQg== Length: 67841356 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 51.4M 1s 3072K ........ ........ ........ ........ ........ ........ 9% 98.1M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 91.9M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 99.1M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 104M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 94.4M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 112M 0s 21504K ........ ........ ........ ........ ........ ........ 37% 104M 0s 24576K ........ ........ ........ ........ ........ ........ 41% 110M 0s 27648K ........ ........ ........ ........ ........ ........ 46% 107M 0s 30720K ........ ........ ........ ........ ........ ........ 51% 48.7M 0s 33792K ........ ........ ........ ........ ........ ........ 55% 94.2M 0s 36864K ........ ........ ........ ........ ........ ........ 60% 95.3M 0s 39936K ........ ........ ........ ........ ........ ........ 64% 91.7M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 72.4M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 30.4M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 85.2M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 85.3M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 93.0M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 106M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 85.0M 0s 64512K ........ ........ ........ ... 100% 96.1M=0.8s 2016-05-09 18:12:35 (80.4 MB/s) - 'update/complete.mar' saved [67841356/67841356] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ga-IE/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ga-IE/Thunderbird 38.6.0.dmg'] --2016-05-09 18:12:37-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ga-IE/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69863364 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:12:37 GMT ETag: "775518ecf403040113abed68ebe5eaeb" Last-Modified: Fri, 12 Feb 2016 21:48:46 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 6EwYVSe6NhsnYMK05HDH_K.z1NOZ5VM1 X-Cache: Miss from cloudfront Via: 1.1 f46e4d7bc5419470a70eb57aa9c935c8.cloudfront.net (CloudFront) X-Amz-Cf-Id: WgZDI_MJygdwrrMlKwf69xZVOf4Cgmnr81HLERFrYU9XQbjjtB4iFw== Length: 69863364 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.54M 41s 3072K ........ ........ ........ ........ ........ ........ 9% 2.65M 31s 6144K ........ ........ ........ ........ ........ ........ 13% 2.70M 27s 9216K ........ ........ ........ ........ ........ ........ 18% 2.74M 24s 12288K ........ ........ ........ ........ ........ ........ 22% 2.33M 23s 15360K ........ ........ ........ ........ ........ ........ 27% 2.69M 21s 18432K ........ ........ ........ ........ ........ ........ 31% 2.70M 19s 21504K ........ ........ ........ ........ ........ ........ 36% 2.72M 18s 24576K ........ ........ ........ ........ ........ ........ 40% 2.71M 16s 27648K ........ ........ ........ ........ ........ ........ 45% 2.94M 15s 30720K ........ ........ ........ ........ ........ ........ 49% 3.66M 13s 33792K ........ ........ ........ ........ ........ ........ 54% 5.41M 11s 36864K ........ ........ ........ ........ ........ ........ 58% 7.51M 10s 39936K ........ ........ ........ ........ ........ ........ 63% 6.06M 8s 43008K ........ ........ ........ ........ ........ ........ 67% 12.3M 7s 46080K ........ ........ ........ ........ ........ ........ 72% 8.50M 6s 49152K ........ ........ ........ ........ ........ ........ 76% 6.17M 5s 52224K ........ ........ ........ ........ ........ ........ 81% 8.89M 4s 55296K ........ ........ ........ ........ ........ ........ 85% 7.67M 3s 58368K ........ ........ ........ ........ ........ ........ 90% 7.96M 2s 61440K ........ ........ ........ ........ ........ ........ 94% 6.78M 1s 64512K ........ ........ ........ ........ ........ ........ 99% 7.81M 0s 67584K ........ .. 100% 7.41M=17s 2016-05-09 18:12:55 (3.83 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69863364/69863364] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ga-IE/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ga-IE/Thunderbird 45.1.0.dmg'] --2016-05-09 18:12:55-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ga-IE/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77229828 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:12:56 GMT ETag: "c21688c14841217109932ca44ebc2dd3" Last-Modified: Mon, 09 May 2016 21:46:34 GMT x-amz-replication-status: COMPLETED x-amz-version-id: _jWOrsuZQ7QKnooolcKqxx5ojUd1MyM4 X-Cache: Miss from cloudfront Via: 1.1 f0ef92e52918ab5129ebd66f2f633cbb.cloudfront.net (CloudFront) X-Amz-Cf-Id: ravSNfa5O0bwPnxeuG-ixDWtnYZgzYmAVd7Fv57_7nL4RP0Wgv33yA== Length: 77229828 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 866K 84s 3072K ........ ........ ........ ........ ........ ........ 8% 1.09M 71s 6144K ........ ........ ........ ........ ........ ........ 12% 2.41M 54s 9216K ........ ........ ........ ........ ........ ........ 16% 4.73M 42s 12288K ........ ........ ........ ........ ........ ........ 20% 5.91M 34s 15360K ........ ........ ........ ........ ........ ........ 24% 7.40M 28s 18432K ........ ........ ........ ........ ........ ........ 28% 7.93M 24s 21504K ........ ........ ........ ........ ........ ........ 32% 10.1M 20s 24576K ........ ........ ........ ........ ........ ........ 36% 9.09M 17s 27648K ........ ........ ........ ........ ........ ........ 40% 11.2M 15s 30720K ........ ........ ........ ........ ........ ........ 44% 11.4M 13s 33792K ........ ........ ........ ........ ........ ........ 48% 12.4M 11s 36864K ........ ........ ........ ........ ........ ........ 52% 13.3M 10s 39936K ........ ........ ........ ........ ........ ........ 57% 12.7M 9s 43008K ........ ........ ........ ........ ........ ........ 61% 15.1M 7s 46080K ........ ........ ........ ........ ........ ........ 65% 14.8M 6s 49152K ........ ........ ........ ........ ........ ........ 69% 14.0M 5s 52224K ........ ........ ........ ........ ........ ........ 73% 16.1M 4s 55296K ........ ........ ........ ........ ........ ........ 77% 16.9M 4s 58368K ........ ........ ........ ........ ........ ........ 81% 16.7M 3s 61440K ........ ........ ........ ........ ........ ........ 85% 17.3M 2s 64512K ........ ........ ........ ........ ........ ........ 89% 17.2M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 18.8M 1s 70656K ........ ........ ........ ........ ........ ........ 97% 19.7M 0s 73728K ........ ........ ........ .. 100% 19.7M=13s 2016-05-09 18:13:09 (5.57 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77229828/77229828] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-en-GB.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ga-IE.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/focal.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay-en-GB.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazon-en-GB.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/ga.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/ga.lproj/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo-en-GB.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-ga-IE.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/focal.xml PREPARE ADD Contents/Resources/searchplugins/eBay-en-GB.xml PREPARE ADD Contents/Resources/searchplugins/amazon-en-GB.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/ga.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-en-GB.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ga-IE.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/focal.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay-en-GB.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazon-en-GB.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/ga.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/ga.lproj/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo-en-GB.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-ga-IE.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/focal.xml EXECUTE ADD Contents/Resources/searchplugins/eBay-en-GB.xml EXECUTE ADD Contents/Resources/searchplugins/amazon-en-GB.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/ga.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-en-GB.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-ga-IE.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/focal.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay-en-GB.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazon-en-GB.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/ga.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ga.lproj/ non-fatal error removing directory: Contents/Resources/ga.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo-en-GB.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-ga-IE.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/focal.xml FINISH ADD Contents/Resources/searchplugins/eBay-en-GB.xml FINISH ADD Contents/Resources/searchplugins/amazon-en-GB.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/ga.lproj/InfoPlist.strings FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 36 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/ga-IE/calendar/lightning-l10n.js" --- > //@line 36 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/ga-IE/calendar/lightning-l10n.js" 3c3 < //@line 38 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/ga-IE/calendar/lightning-l10n.js" --- > //@line 38 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/ga-IE/calendar/lightning-l10n.js" 5c5 < //@line 41 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/ga-IE/calendar/lightning-l10n.js" --- > //@line 41 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/ga-IE/calendar/lightning-l10n.js" 8c8 < //@line 44 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/ga-IE/calendar/lightning-l10n.js" --- > //@line 44 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/ga-IE/calendar/lightning-l10n.js" 19c19 < //@line 55 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/ga-IE/calendar/lightning-l10n.js" --- > //@line 55 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/ga-IE/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo-en-GB.xml" < remove "Contents/Resources/searchplugins/wikipedia-ga-IE.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/focal.xml" < remove "Contents/Resources/searchplugins/eBay-en-GB.xml" < remove "Contents/Resources/searchplugins/amazon-en-GB.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d106 < rmdir "Contents/Resources/searchplugins/" 122d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < 57BBNt8Dm+r4DBYPQHO2iMsGOyg= --- > /tyj83XoAxgxNP5SWaz9CoAMMAc= 221c221 < wPc8aJZnLE6hKrLPgMKvWS34NX0= --- > ZXyKKHogWBHWExjYKehM4zq8DVs= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < H4fJXkx6lNFYGUo4EY/a+WBfx3Y= --- > xN5axO6sPbHMKMezo/jEGvV6Tkg= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < BclSAyVMzdx6uR3sgKPk6pdqICg= --- > j2r8JI7uhoQDqo3saQnf9luJ+2I= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < Xn2ANYMH1zV0wzzw/32jSIN51Wo= --- > 2WxUx4VWV5UUl5GGfqUAhOfVCpU= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,627d599 < Resources/searchplugins/amazon-en-GB.xml < < QVoEK/OaPbZvX8N8bMN+KM8CQw8= < < Resources/searchplugins/eBay-en-GB.xml < < VMk7OUrA7OYV93j9wQrvSsIz+Gs= < < Resources/searchplugins/focal.xml < < 8QstVpN4XwPj6UIdDzOmZ+xl1WE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-ga-IE.xml < < qOHm7nPi6w2ERTozNa8Mdk1BdoI= < < Resources/searchplugins/yahoo-en-GB.xml < < nuQCR4IQtikIvyDcQkaBn8fXPf8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < kp7WEBBdZmzR0lzKa19s1ucgpG8= --- > Gw/JG0PDaBX4trFaH+pnPPc8aEE= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c978 < 57BBNt8Dm+r4DBYPQHO2iMsGOyg= --- > /tyj83XoAxgxNP5SWaz9CoAMMAc= 1010c982 < wPc8aJZnLE6hKrLPgMKvWS34NX0= --- > ZXyKKHogWBHWExjYKehM4zq8DVs= 1014c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1070 < H4fJXkx6lNFYGUo4EY/a+WBfx3Y= --- > xN5axO6sPbHMKMezo/jEGvV6Tkg= 1102c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1176c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1178c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1180c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1182c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1184c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1186c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1188c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1190c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1227c1199 < BclSAyVMzdx6uR3sgKPk6pdqICg= --- > j2r8JI7uhoQDqo3saQnf9luJ+2I= 1231c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1235c1207 < Xn2ANYMH1zV0wzzw/32jSIN51Wo= --- > 2WxUx4VWV5UUl5GGfqUAhOfVCpU= 1239c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1389,1416d1360 < Resources/searchplugins/amazon-en-GB.xml < < QVoEK/OaPbZvX8N8bMN+KM8CQw8= < < Resources/searchplugins/eBay-en-GB.xml < < VMk7OUrA7OYV93j9wQrvSsIz+Gs= < < Resources/searchplugins/focal.xml < < 8QstVpN4XwPj6UIdDzOmZ+xl1WE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-ga-IE.xml < < qOHm7nPi6w2ERTozNa8Mdk1BdoI= < < Resources/searchplugins/yahoo-en-GB.xml < < nuQCR4IQtikIvyDcQkaBn8fXPf8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48038992 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:13 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48038991 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:13 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48038990 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:13 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48038940 8 -rw-r--r-- 1 cltbld staff 1688 May 9 18:13 source/Thunderbird.app/Contents/Resources/searchplugins/amazon-en-GB.xml 48038939 8 -rw-r--r-- 1 cltbld staff 972 May 9 18:13 source/Thunderbird.app/Contents/Resources/searchplugins/eBay-en-GB.xml 48038938 8 -rw-r--r-- 1 cltbld staff 1173 May 9 18:13 source/Thunderbird.app/Contents/Resources/searchplugins/focal.xml 48038937 8 -rw-r--r-- 1 cltbld staff 2371 May 9 18:13 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48038936 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:13 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48038935 8 -rw-r--r-- 1 cltbld staff 1340 May 9 18:13 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-ga-IE.xml 48038934 8 -rw-r--r-- 1 cltbld staff 972 May 9 18:13 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-en-GB.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:14:05-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:14:05 GMT Keep-Alive: timeout=5, max=900 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:14:05 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gd/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gd/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:14:06-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gd/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67852566 Connection: keep-alive Date: Tue, 10 May 2016 01:09:04 GMT x-amz-replication-status: COMPLETED x-amz-version-id: Xj7Qt_xM4qqh63nZF3jrtGurxxWCMKK6 Last-Modified: Tue, 03 May 2016 16:11:51 GMT ETag: "1a0a9326cd72dafb618408a8ef3c20e9" Accept-Ranges: bytes Server: AmazonS3 Age: 303 X-Cache: Hit from cloudfront Via: 1.1 11512f00e812993b9daa35c376d7cb20.cloudfront.net (CloudFront) X-Amz-Cf-Id: ETwB9q5NWGnUPo0GetgzisfgvDWu3fcBdysaYQqIqfQbN8K0biN9rA== Length: 67852566 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 1.14M 54s 3072K ........ ........ ........ ........ ........ ........ 9% 2.43M 38s 6144K ........ ........ ........ ........ ........ ........ 13% 3.39M 29s 9216K ........ ........ ........ ........ ........ ........ 18% 9.56M 22s 12288K ........ ........ ........ ........ ........ ........ 23% 15.0M 17s 15360K ........ ........ ........ ........ ........ ........ 27% 15.2M 14s 18432K ........ ........ ........ ........ ........ ........ 32% 22.3M 12s 21504K ........ ........ ........ ........ ........ ........ 37% 27.6M 10s 24576K ........ ........ ........ ........ ........ ........ 41% 34.6M 8s 27648K ........ ........ ........ ........ ........ ........ 46% 34.7M 7s 30720K ........ ........ ........ ........ ........ ........ 50% 33.5M 6s 33792K ........ ........ ........ ........ ........ ........ 55% 31.9M 5s 36864K ........ ........ ........ ........ ........ ........ 60% 37.1M 4s 39936K ........ ........ ........ ........ ........ ........ 64% 35.6M 3s 43008K ........ ........ ........ ........ ........ ........ 69% 37.2M 3s 46080K ........ ........ ........ ........ ........ ........ 74% 30.7M 2s 49152K ........ ........ ........ ........ ........ ........ 78% 31.7M 2s 52224K ........ ........ ........ ........ ........ ........ 83% 68.0M 1s 55296K ........ ........ ........ ........ ........ ........ 88% 83.8M 1s 58368K ........ ........ ........ ........ ........ ........ 92% 74.0M 1s 61440K ........ ........ ........ ........ ........ ........ 97% 94.5M 0s 64512K ........ ........ ........ ... 100% 49.8M=6.7s 2016-05-09 18:14:13 (9.68 MB/s) - 'update/complete.mar' saved [67852566/67852566] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/gd/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/gd/Thunderbird 38.6.0.dmg'] --2016-05-09 18:14:14-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/gd/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69869496 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:14:15 GMT ETag: "fd6f69593a403b33fdab691a78863165" Last-Modified: Fri, 12 Feb 2016 21:48:48 GMT x-amz-replication-status: COMPLETED x-amz-version-id: GaKQmjsGTVCG98.gk1Y8V.rRoW0l8pa8 X-Cache: Miss from cloudfront Via: 1.1 aa96a51fedae85199c643eb5c8eca4e4.cloudfront.net (CloudFront) X-Amz-Cf-Id: vHdQ0VzFdMZjCZXS2XnwFPtudHOPCD01LKSkmN4kHDwceWaOilkoUQ== Length: 69869496 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.54M 41s 3072K ........ ........ ........ ........ ........ ........ 9% 5.22M 26s 6144K ........ ........ ........ ........ ........ ........ 13% 7.43M 19s 9216K ........ ........ ........ ........ ........ ........ 18% 8.97M 15s 12288K ........ ........ ........ ........ ........ ........ 22% 10.6M 12s 15360K ........ ........ ........ ........ ........ ........ 27% 10.4M 10s 18432K ........ ........ ........ ........ ........ ........ 31% 12.2M 9s 21504K ........ ........ ........ ........ ........ ........ 36% 13.3M 8s 24576K ........ ........ ........ ........ ........ ........ 40% 16.4M 7s 27648K ........ ........ ........ ........ ........ ........ 45% 10.2M 6s 30720K ........ ........ ........ ........ ........ ........ 49% 11.3M 5s 33792K ........ ........ ........ ........ ........ ........ 54% 11.6M 5s 36864K ........ ........ ........ ........ ........ ........ 58% 14.6M 4s 39936K ........ ........ ........ ........ ........ ........ 63% 12.5M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 14.9M 3s 46080K ........ ........ ........ ........ ........ ........ 72% 14.3M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 16.6M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 10.9M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 16.6M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 10.9M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 13.6M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 13.5M 0s 67584K ........ .. 100% 27.5M=7.5s 2016-05-09 18:14:22 (8.84 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69869496/69869496] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/gd/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/gd/Thunderbird 45.1.0.dmg'] --2016-05-09 18:14:23-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/gd/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77234157 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:14:23 GMT ETag: "61385cfca9fcd9b24a548887504105f7" Last-Modified: Mon, 09 May 2016 22:10:12 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 08UfnQBnvBQ.9zSCQtg3s5g3BFXc4YcF X-Cache: Miss from cloudfront Via: 1.1 4a55d86b7263f73c6817c7c25d4b3643.cloudfront.net (CloudFront) X-Amz-Cf-Id: 0BDjPrIEbiU8vb0LETuYaHOcZjPMdBSDEzBm_jzCEIXmCtCRTLfawg== Length: 77234157 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.96M 36s 3072K ........ ........ ........ ........ ........ ........ 8% 7.77M 22s 6144K ........ ........ ........ ........ ........ ........ 12% 8.69M 16s 9216K ........ ........ ........ ........ ........ ........ 16% 10.4M 13s 12288K ........ ........ ........ ........ ........ ........ 20% 9.66M 11s 15360K ........ ........ ........ ........ ........ ........ 24% 11.0M 10s 18432K ........ ........ ........ ........ ........ ........ 28% 9.76M 9s 21504K ........ ........ ........ ........ ........ ........ 32% 10.2M 8s 24576K ........ ........ ........ ........ ........ ........ 36% 9.72M 7s 27648K ........ ........ ........ ........ ........ ........ 40% 10.9M 6s 30720K ........ ........ ........ ........ ........ ........ 44% 8.91M 6s 33792K ........ ........ ........ ........ ........ ........ 48% 9.40M 5s 36864K ........ ........ ........ ........ ........ ........ 52% 8.69M 5s 39936K ........ ........ ........ ........ ........ ........ 57% 9.68M 4s 43008K ........ ........ ........ ........ ........ ........ 61% 8.71M 4s 46080K ........ ........ ........ ........ ........ ........ 65% 9.10M 3s 49152K ........ ........ ........ ........ ........ ........ 69% 9.07M 3s 52224K ........ ........ ........ ........ ........ ........ 73% 9.38M 3s 55296K ........ ........ ........ ........ ........ ........ 77% 9.04M 2s 58368K ........ ........ ........ ........ ........ ........ 81% 9.24M 2s 61440K ........ ........ ........ ........ ........ ........ 85% 9.14M 1s 64512K ........ ........ ........ ........ ........ ........ 89% 9.33M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 8.59M 1s 70656K ........ ........ ........ ........ ........ ........ 97% 8.49M 0s 73728K ........ ........ ........ .. 100% 8.18M=9.2s 2016-05-09 18:14:32 (8.04 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77234157/77234157] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-en-GB.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-gd.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/faclair-beag.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bbc-alba.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazon-en-GB.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/gd.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/gd.lproj/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo-en-GB.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-gd.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/faclair-beag.xml PREPARE ADD Contents/Resources/searchplugins/bbc-alba.xml PREPARE ADD Contents/Resources/searchplugins/amazon-en-GB.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/gd.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-en-GB.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-gd.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/faclair-beag.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bbc-alba.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazon-en-GB.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/gd.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/gd.lproj/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo-en-GB.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-gd.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/faclair-beag.xml EXECUTE ADD Contents/Resources/searchplugins/bbc-alba.xml EXECUTE ADD Contents/Resources/searchplugins/amazon-en-GB.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/gd.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-en-GB.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-gd.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/faclair-beag.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bbc-alba.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazon-en-GB.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/gd.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/gd.lproj/ non-fatal error removing directory: Contents/Resources/gd.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo-en-GB.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-gd.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/faclair-beag.xml FINISH ADD Contents/Resources/searchplugins/bbc-alba.xml FINISH ADD Contents/Resources/searchplugins/amazon-en-GB.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/gd.lproj/InfoPlist.strings FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/gd/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/gd/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/gd/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/gd/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/gd/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/gd/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/gd/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/gd/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/gd/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/gd/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,9d3 < remove "Contents/Resources/searchplugins/yahoo-en-GB.xml" < remove "Contents/Resources/searchplugins/wikipedia-gd.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/faclair-beag.xml" < remove "Contents/Resources/searchplugins/bbc-alba.xml" < remove "Contents/Resources/searchplugins/amazon-en-GB.xml" 58,60c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 89c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 115d106 < rmdir "Contents/Resources/searchplugins/" 121d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < TQOtOBgYzv9tlJ/tPxvScuoXzDU= --- > CHdAk2Llcx9SmQU4lJ9KF73SEa4= 221c221 < YX0UHd7NsJLSIEU9kJdOxTvlviA= --- > j1sZHBI5obC6OEXeLdIJNr+q+gk= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < 1Sk7JAXrMYe15pZVxw4XOZKGYDc= --- > 6pII/K5E2LPLOG/uK+sxmzf7lxM= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < dvXdjGIFHr8AiJPmedni8hw4jJ0= --- > jMHJUGw6YHrgoLFGxQ8kl0HyhNY= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < FC9YTZrRwv7WTHyJAzJNN4wnxsc= --- > IAO5akBOLY8DL/kapN1quEEdAB8= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,623d599 < Resources/searchplugins/amazon-en-GB.xml < < 4V0iq9xiQe1Y91IyQsdL/g7l53k= < < Resources/searchplugins/bbc-alba.xml < < T2eLqyv0MFqK+LjuPfHBdyjmWns= < < Resources/searchplugins/faclair-beag.xml < < r653l0YuiCqYmemboxVur2KSCX0= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/wikipedia-gd.xml < < nC01p04+OQmoGmeiMDQdvRXCp24= < < Resources/searchplugins/yahoo-en-GB.xml < < nuQCR4IQtikIvyDcQkaBn8fXPf8= < 652c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 661c637 < +V3UdViLLrm4BRpHdvJ8fIdaBBU= --- > znmzvHnOAmuT3vocM5ZQiKRYi9g= 670c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 679c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 688c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 693c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 697c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 706c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 715c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 724c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 733c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 742c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 751c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 760c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 769c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 778c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 787c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 794c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 798c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 810c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 814c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 818c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 822c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 826c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 830c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 834c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 838c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 842c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 846c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 850c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 854c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 858c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 862c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 866c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 870c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 874c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 878c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 882c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 886c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 890c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 894c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 898c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 902c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 906c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 910c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 914c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 918c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 922c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 926c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 930c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 934c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 938c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 942c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 946c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 950c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 954c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 958c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 962c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 966c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 970c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 974c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 978c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 982c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 986c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 994c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 998c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1002c978 < TQOtOBgYzv9tlJ/tPxvScuoXzDU= --- > CHdAk2Llcx9SmQU4lJ9KF73SEa4= 1006c982 < YX0UHd7NsJLSIEU9kJdOxTvlviA= --- > j1sZHBI5obC6OEXeLdIJNr+q+gk= 1010c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1014c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1018c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1022c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1026c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1030c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1034c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1038c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1042c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1046c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1050c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1054c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1058c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1062c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1066c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1078c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1082c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1090c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1094c1070 < 1Sk7JAXrMYe15pZVxw4XOZKGYDc= --- > 6pII/K5E2LPLOG/uK+sxmzf7lxM= 1098c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1102c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1106c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1110c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1114c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1118c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1122c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1126c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1130c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1134c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1138c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1142c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1146c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1154c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1158c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1162c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1166c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1170c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1172c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1174c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1176c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1178c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1180c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1182c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1184c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1186c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1223c1199 < dvXdjGIFHr8AiJPmedni8hw4jJ0= --- > jMHJUGw6YHrgoLFGxQ8kl0HyhNY= 1227c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1231c1207 < FC9YTZrRwv7WTHyJAzJNN4wnxsc= --- > IAO5akBOLY8DL/kapN1quEEdAB8= 1235c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1385,1408d1360 < Resources/searchplugins/amazon-en-GB.xml < < 4V0iq9xiQe1Y91IyQsdL/g7l53k= < < Resources/searchplugins/bbc-alba.xml < < T2eLqyv0MFqK+LjuPfHBdyjmWns= < < Resources/searchplugins/faclair-beag.xml < < r653l0YuiCqYmemboxVur2KSCX0= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/wikipedia-gd.xml < < nC01p04+OQmoGmeiMDQdvRXCp24= < < Resources/searchplugins/yahoo-en-GB.xml < < nuQCR4IQtikIvyDcQkaBn8fXPf8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48039737 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:15 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48039736 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:15 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48039735 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:15 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48039686 8 -rw-r--r-- 1 cltbld staff 1644 May 9 18:15 source/Thunderbird.app/Contents/Resources/searchplugins/amazon-en-GB.xml 48039685 8 -rw-r--r-- 1 cltbld staff 2497 May 9 18:15 source/Thunderbird.app/Contents/Resources/searchplugins/bbc-alba.xml 48039684 8 -rw-r--r-- 1 cltbld staff 2221 May 9 18:15 source/Thunderbird.app/Contents/Resources/searchplugins/faclair-beag.xml 48039683 8 -rw-r--r-- 1 cltbld staff 2371 May 9 18:15 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48039682 8 -rw-r--r-- 1 cltbld staff 1347 May 9 18:15 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-gd.xml 48039681 8 -rw-r--r-- 1 cltbld staff 972 May 9 18:15 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-en-GB.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:15:28-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:15:28 GMT Keep-Alive: timeout=5, max=563 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:15:28 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gl/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gl/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:15:28-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gl/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67853190 Connection: keep-alive Date: Tue, 10 May 2016 01:09:13 GMT x-amz-replication-status: COMPLETED x-amz-version-id: S7KxHIdClFGAQL58lreE6aBRbTkkeRdd Last-Modified: Tue, 03 May 2016 16:25:11 GMT ETag: "fe3923cfb127a1504c13bd9aca6c5b85" Accept-Ranges: bytes Server: AmazonS3 Age: 377 X-Cache: Hit from cloudfront Via: 1.1 aa96a51fedae85199c643eb5c8eca4e4.cloudfront.net (CloudFront) X-Amz-Cf-Id: wEo5LYN8LM3fhzB9oFq8DtI4qkXkRzdsY2WUEZRWDt1mTDnxcAilZQ== Length: 67853190 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 18.0M 3s 3072K ........ ........ ........ ........ ........ ........ 9% 46.5M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 42.6M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 46.8M 2s 12288K ........ ........ ........ ........ ........ ........ 23% 50.4M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 50.5M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 72.5M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 77.2M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 69.4M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 57.1M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 48.5M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 66.1M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 85.7M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 74.2M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 46.8M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 113M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 62.2M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 45.3M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 85.1M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 63.7M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 69.0M 0s 64512K ........ ........ ........ ... 100% 84.2M=1.2s 2016-05-09 18:15:30 (54.2 MB/s) - 'update/complete.mar' saved [67853190/67853190] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/gl/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/gl/Thunderbird 38.6.0.dmg'] --2016-05-09 18:15:31-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/gl/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69868400 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:15:32 GMT ETag: "0292b3f801a0f4cd5698cafd3bff4e04" Last-Modified: Fri, 12 Feb 2016 21:48:52 GMT x-amz-replication-status: COMPLETED x-amz-version-id: xdKbWUQly.Q0Kv6ZnNtnvCSf8pIyqgS7 X-Cache: Miss from cloudfront Via: 1.1 81871f1c889cc44b6c25e3ef722a3801.cloudfront.net (CloudFront) X-Amz-Cf-Id: X4cWUtNu3DcJBJ7m8ehRCOdoTDdDxG1oeDPahS8Ne3BOIwnnpboIzQ== Length: 69868400 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.65M 39s 3072K ........ ........ ........ ........ ........ ........ 9% 5.18M 24s 6144K ........ ........ ........ ........ ........ ........ 13% 6.96M 18s 9216K ........ ........ ........ ........ ........ ........ 18% 8.73M 14s 12288K ........ ........ ........ ........ ........ ........ 22% 10.2M 12s 15360K ........ ........ ........ ........ ........ ........ 27% 9.93M 10s 18432K ........ ........ ........ ........ ........ ........ 31% 14.1M 9s 21504K ........ ........ ........ ........ ........ ........ 36% 12.3M 7s 24576K ........ ........ ........ ........ ........ ........ 40% 13.7M 7s 27648K ........ ........ ........ ........ ........ ........ 45% 14.8M 6s 30720K ........ ........ ........ ........ ........ ........ 49% 10.9M 5s 33792K ........ ........ ........ ........ ........ ........ 54% 12.8M 4s 36864K ........ ........ ........ ........ ........ ........ 58% 13.4M 4s 39936K ........ ........ ........ ........ ........ ........ 63% 12.9M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 13.0M 3s 46080K ........ ........ ........ ........ ........ ........ 72% 11.9M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 12.5M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 10.9M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 11.6M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 11.6M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 9.26M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 7.91M 0s 67584K ........ .. 100% 14.3M=7.9s 2016-05-09 18:15:40 (8.46 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69868400/69868400] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/gl/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/gl/Thunderbird 45.1.0.dmg'] --2016-05-09 18:15:40-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/gl/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77231323 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:15:41 GMT ETag: "67000f40e9269952104461bf5960912c" Last-Modified: Mon, 09 May 2016 22:33:13 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 7Iw4pns7JYKfnWT9J1DysZS5S1o0nuAf X-Cache: Miss from cloudfront Via: 1.1 aa96a51fedae85199c643eb5c8eca4e4.cloudfront.net (CloudFront) X-Amz-Cf-Id: fa5r2B2d3pNXI0sd3xKXYb2PYy0uNS_c9c4Oju9WGoH2BUv0kPFtQA== Length: 77231323 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.70M 42s 3072K ........ ........ ........ ........ ........ ........ 8% 4.54M 27s 6144K ........ ........ ........ ........ ........ ........ 12% 5.88M 21s 9216K ........ ........ ........ ........ ........ ........ 16% 5.42M 18s 12288K ........ ........ ........ ........ ........ ........ 20% 4.06M 17s 15360K ........ ........ ........ ........ ........ ........ 24% 3.76M 16s 18432K ........ ........ ........ ........ ........ ........ 28% 3.57M 15s 21504K ........ ........ ........ ........ ........ ........ 32% 2.47M 15s 24576K ........ ........ ........ ........ ........ ........ 36% 3.24M 14s 27648K ........ ........ ........ ........ ........ ........ 40% 2.17M 14s 30720K ........ ........ ........ ........ ........ ........ 44% 2.02M 13s 33792K ........ ........ ........ ........ ........ ........ 48% 2.04M 13s 36864K ........ ........ ........ ........ ........ ........ 52% 1.95M 12s 39936K ........ ........ ........ ........ ........ ........ 57% 1.16M 12s 43008K ........ ........ ........ ........ ........ ........ 61% 855K 13s 46080K ........ ........ ........ ........ ........ ........ 65% 2.68M 11s 49152K ........ ........ ........ ........ ........ ........ 69% 4.72M 10s 52224K ........ ........ ........ ........ ........ ........ 73% 6.38M 8s 55296K ........ ........ ........ ........ ........ ........ 77% 5.65M 7s 58368K ........ ........ ........ ........ ........ ........ 81% 9.97M 5s 61440K ........ ........ ........ ........ ........ ........ 85% 5.96M 4s 64512K ........ ........ ........ ........ ........ ........ 89% 6.37M 3s 67584K ........ ........ ........ ........ ........ ........ 93% 6.08M 2s 70656K ........ ........ ........ ........ ........ ........ 97% 4.76M 1s 73728K ........ ........ ........ .. 100% 4.71M=26s 2016-05-09 18:16:07 (2.88 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77231323/77231323] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/gl.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/gl.lproj/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/gl.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/gl.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/gl.lproj/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/gl.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/gl.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/gl.lproj/ non-fatal error removing directory: Contents/Resources/gl.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/gl.lproj/InfoPlist.strings FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/gl/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/gl/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/gl/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/gl/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/gl/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/gl/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/gl/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/gl/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_4-00000/l10n/gl/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_4-00000/l10n/gl/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d106 < rmdir "Contents/Resources/searchplugins/" 122d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < /crDOogu/Y+vSSTUXnhirVqSRt8= --- > kpksBSz8NvubGZHGBd3Ai0yTqt8= 221c221 < 41LAyM6t2vq8465AbmA3sUEPcT4= --- > Dn1QAfYG0x34gacTzpLHkuBXG+E= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < ZW1Yl2TKdsVZ7/yXbYg3Bqn6qec= --- > ajOFreTGw1vDC9yVhwH8d7T61UM= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < sNByF8ZURJm9SsFqYkcOEumzoMM= --- > dh0zVBX7LxX4ULbusZ/r3fWyIjU= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < kQV7jOBYkQf7+KfGAxKrmTnLgyM= --- > lERikIq4Dpn9UmY7Eddt5rFJtck= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,627d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < AoMz+ctXPEeYTo7MYZN6BVf7Obk= --- > 5HtLfFJaqp1QNZp04NxVocUT6BA= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c978 < /crDOogu/Y+vSSTUXnhirVqSRt8= --- > kpksBSz8NvubGZHGBd3Ai0yTqt8= 1010c982 < 41LAyM6t2vq8465AbmA3sUEPcT4= --- > Dn1QAfYG0x34gacTzpLHkuBXG+E= 1014c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1070 < ZW1Yl2TKdsVZ7/yXbYg3Bqn6qec= --- > ajOFreTGw1vDC9yVhwH8d7T61UM= 1102c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1176c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1178c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1180c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1182c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1184c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1186c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1188c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1190c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1227c1199 < sNByF8ZURJm9SsFqYkcOEumzoMM= --- > dh0zVBX7LxX4ULbusZ/r3fWyIjU= 1231c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1235c1207 < kQV7jOBYkQf7+KfGAxKrmTnLgyM= --- > lERikIq4Dpn9UmY7Eddt5rFJtck= 1239c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1389,1416d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48040485 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:16 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48040484 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:16 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48040483 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:16 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48040433 8 -rw-r--r-- 1 cltbld staff 1531 May 9 18:16 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48040432 8 -rw-r--r-- 1 cltbld staff 1670 May 9 18:16 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48040431 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:16 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48040430 8 -rw-r--r-- 1 cltbld staff 2569 May 9 18:16 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48040429 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:16 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48040428 8 -rw-r--r-- 1 cltbld staff 1338 May 9 18:16 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48040427 8 -rw-r--r-- 1 cltbld staff 1363 May 9 18:16 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:17:02-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:17:03 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:17:03 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/he/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/he/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:17:03-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/he/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67882825 Connection: keep-alive Date: Tue, 10 May 2016 01:09:29 GMT x-amz-replication-status: COMPLETED x-amz-version-id: SJFAmFFD9m2.c8jW247QrWAqOWwUU9U9 Last-Modified: Tue, 03 May 2016 15:18:28 GMT ETag: "3a365e5e9af8546b773041c84a6aa5a5" Accept-Ranges: bytes Server: AmazonS3 Age: 455 X-Cache: Hit from cloudfront Via: 1.1 296faebadd40feee8b2eb0e10d5786d2.cloudfront.net (CloudFront) X-Amz-Cf-Id: jbSJYKq4OE5UI9NUHVIN4hnSA11GQuCnEFV33Pm4lvMyy6tY2PeIkw== Length: 67882825 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 35.1M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 77.7M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 84.4M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 65.5M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 58.1M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 30.8M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 76.5M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 67.4M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 62.5M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 65.4M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 61.6M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 41.0M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 39.7M 0s 39936K ........ ........ ........ ........ ........ ........ 64% 72.2M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 44.8M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 69.6M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 72.9M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 94.1M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 53.8M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 45.6M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 66.0M 0s 64512K ........ ........ ........ ... 100% 51.4M=1.2s 2016-05-09 18:17:04 (56.0 MB/s) - 'update/complete.mar' saved [67882825/67882825] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/he/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/he/Thunderbird 38.6.0.dmg'] --2016-05-09 18:17:06-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/he/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69888855 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:17:06 GMT ETag: "5dcad9d6ae439d64ed7ec24a102a0a18" Last-Modified: Fri, 12 Feb 2016 21:48:55 GMT x-amz-replication-status: COMPLETED x-amz-version-id: KbwwA7SjdvSffZo6ouEOZUuZoycH1vii X-Cache: Miss from cloudfront Via: 1.1 30bb04916f91d64c600e15c15000042d.cloudfront.net (CloudFront) X-Amz-Cf-Id: 19wuhHvqWbSZEvAq2nfk-83cdujAU7qxVKDhW5_pCLhz5UcmAFsuwA== Length: 69888855 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.47M 43s 3072K ........ ........ ........ ........ ........ ........ 9% 5.67M 26s 6144K ........ ........ ........ ........ ........ ........ 13% 9.60M 18s 9216K ........ ........ ........ ........ ........ ........ 18% 1.72M 21s 12288K ........ ........ ........ ........ ........ ........ 22% 2.34M 20s 15360K ........ ........ ........ ........ ........ ........ 27% 4.69M 18s 18432K ........ ........ ........ ........ ........ ........ 31% 5.43M 15s 21504K ........ ........ ........ ........ ........ ........ 36% 4.66M 14s 24576K ........ ........ ........ ........ ........ ........ 40% 5.43M 12s 27648K ........ ........ ........ ........ ........ ........ 45% 5.38M 11s 30720K ........ ........ ........ ........ ........ ........ 49% 5.24M 10s 33792K ........ ........ ........ ........ ........ ........ 54% 5.03M 9s 36864K ........ ........ ........ ........ ........ ........ 58% 5.51M 7s 39936K ........ ........ ........ ........ ........ ........ 63% 5.45M 7s 43008K ........ ........ ........ ........ ........ ........ 67% 5.48M 6s 46080K ........ ........ ........ ........ ........ ........ 72% 5.48M 5s 49152K ........ ........ ........ ........ ........ ........ 76% 5.41M 4s 52224K ........ ........ ........ ........ ........ ........ 81% 5.57M 3s 55296K ........ ........ ........ ........ ........ ........ 85% 6.55M 2s 58368K ........ ........ ........ ........ ........ ........ 90% 7.91M 2s 61440K ........ ........ ........ ........ ........ ........ 94% 8.19M 1s 64512K ........ ........ ........ ........ ........ ........ 99% 8.69M 0s 67584K ........ .. 100% 8.12M=15s 2016-05-09 18:17:21 (4.46 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69888855/69888855] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/he/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/he/Thunderbird 45.1.0.dmg'] --2016-05-09 18:17:22-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/he/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77251413 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:17:22 GMT ETag: "95864b275082772feb4d0cc2cbce09b3" Last-Modified: Mon, 09 May 2016 20:34:57 GMT x-amz-replication-status: COMPLETED x-amz-version-id: PwL6g_e8yqr0rrPvVhyqW71YJyDdModh X-Cache: Miss from cloudfront Via: 1.1 fc7da6323a08a2c16d48dd4939ce0898.cloudfront.net (CloudFront) X-Amz-Cf-Id: Ws5EKCGF-Qw8nn9A8jhkgDIRCsebkmKpMO07CSqomMKm7mHY94rjhg== Length: 77251413 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 2.07M 34s 3072K ........ ........ ........ ........ ........ ........ 8% 4.91M 23s 6144K ........ ........ ........ ........ ........ ........ 12% 5.27M 19s 9216K ........ ........ ........ ........ ........ ........ 16% 4.47M 17s 12288K ........ ........ ........ ........ ........ ........ 20% 4.75M 15s 15360K ........ ........ ........ ........ ........ ........ 24% 4.55M 14s 18432K ........ ........ ........ ........ ........ ........ 28% 5.15M 13s 21504K ........ ........ ........ ........ ........ ........ 32% 3.44M 13s 24576K ........ ........ ........ ........ ........ ........ 36% 2.59M 12s 27648K ........ ........ ........ ........ ........ ........ 40% 2.73M 12s 30720K ........ ........ ........ ........ ........ ........ 44% 2.46M 12s 33792K ........ ........ ........ ........ ........ ........ 48% 2.69M 11s 36864K ........ ........ ........ ........ ........ ........ 52% 2.17M 11s 39936K ........ ........ ........ ........ ........ ........ 57% 1.42M 11s 43008K ........ ........ ........ ........ ........ ........ 61% 894K 11s 46080K ........ ........ ........ ........ ........ ........ 65% 680K 12s 49152K ........ ........ ........ ........ ........ ........ 69% 1.18M 11s 52224K ........ ........ ........ ........ ........ ........ 73% 3.42M 9s 55296K ........ ........ ........ ........ ........ ........ 77% 4.05M 8s 58368K ........ ........ ........ ........ ........ ........ 81% 3.27M 6s 61440K ........ ........ ........ ........ ........ ........ 85% 3.56M 5s 64512K ........ ........ ........ ........ ........ ........ 89% 2.94M 3s 67584K ........ ........ ........ ........ ........ ........ 93% 2.56M 2s 70656K ........ ........ ........ ........ ........ ........ 97% 1.63M 1s 73728K ........ ........ ........ .. 100% 1.51M=33s 2016-05-09 18:17:56 (2.22 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77251413/77251413] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/he.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/he.lproj/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/he.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/he.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/he.lproj/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/he.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/he.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/he.lproj/ non-fatal error removing directory: Contents/Resources/he.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/he.lproj/InfoPlist.strings FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini 1,3c1,3 < ; This Source Code Form is subject to the terms of the Mozilla Public < ; License, v. 2.0. If a copy of the MPL was not distributed with this < ; file, You can obtain one at http://mozilla.org/MPL/2.0/. --- > # This Source Code Form is subject to the terms of the Mozilla Public > # License, v. 2.0. If a copy of the MPL was not distributed with this > # file, You can obtain one at http://mozilla.org/MPL/2.0/. 12c12 < CrashReporterTitle=מדווח הקריסות --- > CrashReporterTitle=מדווח הקריסות 61d60 < diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources 76c76 < j67h3NSZbRMXnMEAbvmYmx3EoQA= --- > LWsSDCPLD9Gr/lkkncaiKVFHcTo= 150c150 < j67h3NSZbRMXnMEAbvmYmx3EoQA= --- > LWsSDCPLD9Gr/lkkncaiKVFHcTo= Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/he/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/he/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/he/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/he/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/he/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/he/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/he/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/he/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/he/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/he/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,11d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 60,62c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 91c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 117d106 < rmdir "Contents/Resources/searchplugins/" 123d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < n2oTMjhYXulmzdZ+j62lrjs+IiA= --- > PdfwwbE67JiXJF9JAoBGR2Z18Ss= 221c221 < 57Sak2qdqNrZ98veWKMslXCkpq0= --- > C75fxSL3SIIkp5QQN5HTFXkMmV0= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < mUpn0UswqG91Eyq729a6/oeV0M4= --- > etSjox/5DHqOELHrF55ENvZCKq8= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < Z+QZpgjlCeqVc2eXwsnoLk+axQs= --- > Yvj8RtpR+U7xsh0HFJUgXnYxk9o= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < y1lHYpVlBhPdtzgCj6Cn7ztzaO4= --- > MGbKgTdFsObOJTMH/IZ3wD3Ot3w= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,631d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 660c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 669c637 < akp+rjPvesyb7m+5LJ1KK2ne+jI= --- > 7sZsHsJNYd1PNTWNe9Gjv4AHzZQ= 678c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 687c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 696c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 701c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 705c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 714c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 723c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 732c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 741c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 750c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 759c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 768c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 777c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 786c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 795c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 802c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 806c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 818c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 822c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 826c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 830c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 834c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 838c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 842c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 846c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 850c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 854c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 858c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 862c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 866c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 870c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 874c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 878c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 882c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 886c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 890c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 894c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 898c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 902c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 906c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 910c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 914c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 918c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 922c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 926c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 930c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 934c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 938c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 942c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 946c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 950c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 954c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 958c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 962c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 966c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 970c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 974c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 978c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 982c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 986c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 990c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 994c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1002c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1006c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1010c978 < n2oTMjhYXulmzdZ+j62lrjs+IiA= --- > PdfwwbE67JiXJF9JAoBGR2Z18Ss= 1014c982 < 57Sak2qdqNrZ98veWKMslXCkpq0= --- > C75fxSL3SIIkp5QQN5HTFXkMmV0= 1018c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1022c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1026c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1030c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1034c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1038c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1042c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1046c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1050c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1054c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1058c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1062c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1066c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1070c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1074c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1086c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1090c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1098c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1102c1070 < mUpn0UswqG91Eyq729a6/oeV0M4= --- > etSjox/5DHqOELHrF55ENvZCKq8= 1106c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1110c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1114c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1118c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1122c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1126c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1130c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1134c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1138c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1142c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1146c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1150c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1154c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1162c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1166c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1170c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1174c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1178c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1180c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1182c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1184c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1186c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1188c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1190c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1192c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1194c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1231c1199 < Z+QZpgjlCeqVc2eXwsnoLk+axQs= --- > Yvj8RtpR+U7xsh0HFJUgXnYxk9o= 1235c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1239c1207 < y1lHYpVlBhPdtzgCj6Cn7ztzaO4= --- > MGbKgTdFsObOJTMH/IZ3wD3Ot3w= 1243c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1393,1424d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48041236 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:18 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48041235 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:18 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48041234 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:18 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48041185 8 -rw-r--r-- 1 cltbld staff 1531 May 9 18:18 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48041184 8 -rw-r--r-- 1 cltbld staff 1670 May 9 18:18 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48041183 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:18 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48041182 8 -rw-r--r-- 1 cltbld staff 2569 May 9 18:18 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48041181 8 -rw-r--r-- 1 cltbld staff 2371 May 9 18:18 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48041180 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:18 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48041179 8 -rw-r--r-- 1 cltbld staff 1338 May 9 18:18 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48041178 8 -rw-r--r-- 1 cltbld staff 1363 May 9 18:18 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:18:52-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:18:52 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:18:52 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hr/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hr/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:18:52-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hr/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67835059 Connection: keep-alive Date: Tue, 10 May 2016 01:09:36 GMT x-amz-replication-status: COMPLETED x-amz-version-id: mCa7T2VfI.SN0UKpk83invfPm8A0S.1z Last-Modified: Tue, 03 May 2016 15:32:00 GMT ETag: "86b621c1be9a20f4df0a79f0fcd06add" Accept-Ranges: bytes Server: AmazonS3 Age: 557 X-Cache: Hit from cloudfront Via: 1.1 bfdd5909914586f5bc4851846228c27f.cloudfront.net (CloudFront) X-Amz-Cf-Id: bP8fY1rK8Sr74MhzTZ7P9CIVIoQpQSR37tK7N17CH2lg49zoj40Osg== Length: 67835059 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 19.4M 3s 3072K ........ ........ ........ ........ ........ ........ 9% 48.5M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 67.0M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 47.7M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 52.9M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 53.7M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 70.1M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 56.6M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 37.1M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 86.8M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 56.3M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 62.0M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 76.2M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 66.5M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 62.1M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 66.8M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 58.0M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 65.9M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 59.0M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 61.7M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 71.8M 0s 64512K ........ ........ ........ ... 100% 83.8M=1.2s 2016-05-09 18:18:54 (54.6 MB/s) - 'update/complete.mar' saved [67835059/67835059] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/hr/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/hr/Thunderbird 38.6.0.dmg'] --2016-05-09 18:18:55-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/hr/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69857473 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:18:56 GMT ETag: "7eec86c04a3ac907d215da36b4b9dbd1" Last-Modified: Fri, 12 Feb 2016 21:48:58 GMT x-amz-replication-status: COMPLETED x-amz-version-id: zaVeJRdsWpm2FJOZZyl0nh1Yq1duGjKH X-Cache: Miss from cloudfront Via: 1.1 3d3d633d266d05d90a4eea7a6a59b514.cloudfront.net (CloudFront) X-Amz-Cf-Id: phTvb4zt6HDQeNhMJFc9_s3YQdK6mlT1BilQy26MejboqUDyTln4Mg== Length: 69857473 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.25M 51s 3072K ........ ........ ........ ........ ........ ........ 9% 5.04M 30s 6144K ........ ........ ........ ........ ........ ........ 13% 7.48M 22s 9216K ........ ........ ........ ........ ........ ........ 18% 7.01M 17s 12288K ........ ........ ........ ........ ........ ........ 22% 8.26M 14s 15360K ........ ........ ........ ........ ........ ........ 27% 7.97M 12s 18432K ........ ........ ........ ........ ........ ........ 31% 9.40M 11s 21504K ........ ........ ........ ........ ........ ........ 36% 9.63M 9s 24576K ........ ........ ........ ........ ........ ........ 40% 8.28M 8s 27648K ........ ........ ........ ........ ........ ........ 45% 9.60M 7s 30720K ........ ........ ........ ........ ........ ........ 49% 9.94M 6s 33792K ........ ........ ........ ........ ........ ........ 54% 8.07M 6s 36864K ........ ........ ........ ........ ........ ........ 58% 9.50M 5s 39936K ........ ........ ........ ........ ........ ........ 63% 9.95M 4s 43008K ........ ........ ........ ........ ........ ........ 67% 9.51M 4s 46080K ........ ........ ........ ........ ........ ........ 72% 8.32M 3s 49152K ........ ........ ........ ........ ........ ........ 76% 9.59M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 9.32M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 8.59M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 9.53M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 9.94M 1s 64512K ........ ........ ........ ........ ........ ........ 99% 9.62M 0s 67584K ........ . 100% 7.78M=9.8s 2016-05-09 18:19:06 (6.78 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69857473/69857473] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/hr/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/hr/Thunderbird 45.1.0.dmg'] --2016-05-09 18:19:06-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/hr/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77212915 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:19:07 GMT ETag: "c4cd4f0cb36bd742e5fe9dd4eb955f18" Last-Modified: Mon, 09 May 2016 20:57:54 GMT x-amz-replication-status: COMPLETED x-amz-version-id: cyxIlXUK8T5mBdxRF1KLT3AM.qqdNM9_ X-Cache: Miss from cloudfront Via: 1.1 f0ef92e52918ab5129ebd66f2f633cbb.cloudfront.net (CloudFront) X-Amz-Cf-Id: 9qBWh17nQPLjU_buxTfKAIcEkLGDddSrnUGMaHCyHMuUE2GMeERiWA== Length: 77212915 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.66M 43s 3072K ........ ........ ........ ........ ........ ........ 8% 6.13M 26s 6144K ........ ........ ........ ........ ........ ........ 12% 7.42M 19s 9216K ........ ........ ........ ........ ........ ........ 16% 9.27M 16s 12288K ........ ........ ........ ........ ........ ........ 20% 10.9M 13s 15360K ........ ........ ........ ........ ........ ........ 24% 9.96M 11s 18432K ........ ........ ........ ........ ........ ........ 28% 9.33M 10s 21504K ........ ........ ........ ........ ........ ........ 32% 9.62M 9s 24576K ........ ........ ........ ........ ........ ........ 36% 8.42M 8s 27648K ........ ........ ........ ........ ........ ........ 40% 6.89M 7s 30720K ........ ........ ........ ........ ........ ........ 44% 6.87M 7s 33792K ........ ........ ........ ........ ........ ........ 48% 5.10M 6s 36864K ........ ........ ........ ........ ........ ........ 52% 4.84M 6s 39936K ........ ........ ........ ........ ........ ........ 57% 3.71M 6s 43008K ........ ........ ........ ........ ........ ........ 61% 3.70M 5s 46080K ........ ........ ........ ........ ........ ........ 65% 3.54M 5s 49152K ........ ........ ........ ........ ........ ........ 69% 3.19M 4s 52224K ........ ........ ........ ........ ........ ........ 73% 2.68M 4s 55296K ........ ........ ........ ........ ........ ........ 77% 2.71M 4s 58368K ........ ........ ........ ........ ........ ........ 81% 2.17M 3s 61440K ........ ........ ........ ........ ........ ........ 85% 1.65M 3s 64512K ........ ........ ........ ........ ........ ........ 89% 1.56M 2s 67584K ........ ........ ........ ........ ........ ........ 93% 2.06M 1s 70656K ........ ........ ........ ........ ........ ........ 97% 2.49M 0s 73728K ........ ........ ........ .. 100% 2.28M=21s 2016-05-09 18:19:28 (3.54 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77212915/77212915] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/hr.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/hr.lproj/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/hr.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/hr.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/hr.lproj/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/hr.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/hr.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/hr.lproj/ non-fatal error removing directory: Contents/Resources/hr.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/hr.lproj/InfoPlist.strings FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/hr/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/hr/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/hr/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/hr/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/hr/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/hr/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/hr/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/hr/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/hr/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/hr/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,11d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 60,62c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 91c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 117d106 < rmdir "Contents/Resources/searchplugins/" 123d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < NikubiZBz5Fo+zOj1i3hN0NaCrc= --- > p5XjSYVwzYOr2noNptJLiTAs6f4= 221c221 < +3ZQigRojCZleJdlZXUSmZU0VqU= --- > uQ+JywI6YXCkNkrWfLAGVKckKK4= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < 96yAqJifdyJrZqEPhhMwwdsZ55k= --- > nTqa4E3ek34D3dFUUlaActnjei0= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < qkrk6aV+4kHBB6PRCToiHGhNGnY= --- > BmLbnMQTR+sQx9WRIy53nmLFuyw= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < lZhWV/AwydGRbUuuTppfHm/MWL8= --- > mDWJyU1JzNSubGZ1V8OraqO61GA= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,631d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 660c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 669c637 < BhO8aq4C3wjTeN9NCqe564Ecf48= --- > gUYsM3mCTBEMzpBoh3O5n7TUJZQ= 678c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 687c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 696c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 701c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 705c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 714c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 723c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 732c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 741c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 750c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 759c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 768c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 777c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 786c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 795c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 802c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 806c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 818c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 822c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 826c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 830c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 834c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 838c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 842c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 846c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 850c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 854c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 858c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 862c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 866c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 870c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 874c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 878c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 882c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 886c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 890c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 894c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 898c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 902c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 906c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 910c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 914c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 918c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 922c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 926c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 930c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 934c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 938c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 942c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 946c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 950c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 954c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 958c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 962c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 966c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 970c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 974c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 978c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 982c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 986c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 990c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 994c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1002c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1006c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1010c978 < NikubiZBz5Fo+zOj1i3hN0NaCrc= --- > p5XjSYVwzYOr2noNptJLiTAs6f4= 1014c982 < +3ZQigRojCZleJdlZXUSmZU0VqU= --- > uQ+JywI6YXCkNkrWfLAGVKckKK4= 1018c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1022c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1026c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1030c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1034c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1038c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1042c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1046c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1050c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1054c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1058c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1062c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1066c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1070c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1074c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1086c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1090c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1098c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1102c1070 < 96yAqJifdyJrZqEPhhMwwdsZ55k= --- > nTqa4E3ek34D3dFUUlaActnjei0= 1106c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1110c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1114c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1118c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1122c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1126c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1130c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1134c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1138c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1142c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1146c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1150c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1154c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1162c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1166c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1170c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1174c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1178c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1180c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1182c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1184c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1186c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1188c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1190c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1192c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1194c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1231c1199 < qkrk6aV+4kHBB6PRCToiHGhNGnY= --- > BmLbnMQTR+sQx9WRIy53nmLFuyw= 1235c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1239c1207 < lZhWV/AwydGRbUuuTppfHm/MWL8= --- > mDWJyU1JzNSubGZ1V8OraqO61GA= 1243c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1393,1424d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48041986 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:20 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48041985 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:20 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48041984 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:20 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48041935 8 -rw-r--r-- 1 cltbld staff 1531 May 9 18:20 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48041934 8 -rw-r--r-- 1 cltbld staff 1670 May 9 18:20 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48041933 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:20 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48041932 8 -rw-r--r-- 1 cltbld staff 2569 May 9 18:20 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48041931 8 -rw-r--r-- 1 cltbld staff 2371 May 9 18:20 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48041930 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:20 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48041929 8 -rw-r--r-- 1 cltbld staff 1338 May 9 18:20 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48041928 8 -rw-r--r-- 1 cltbld staff 1363 May 9 18:20 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hsb/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hsb/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hsb/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:20:23-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hsb/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:20:24 GMT Keep-Alive: timeout=5, max=900 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 594 Length: 594 [text/xml] Saving to: 'update.xml' 0K 100% 80.9M=0s 2016-05-09 18:20:24 (80.9 MB/s) - 'update.xml' saved [594/594] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hsb/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hsb/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:20:24-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hsb/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67849600 Connection: keep-alive Date: Tue, 10 May 2016 01:09:43 GMT x-amz-replication-status: COMPLETED x-amz-version-id: epWh4Eo.W0ss.mn4kdhkzlD4GK1m0AaJ Last-Modified: Tue, 03 May 2016 15:46:19 GMT ETag: "99b4caf6c883fa6d23df6628bd70b603" Accept-Ranges: bytes Server: AmazonS3 Age: 642 X-Cache: Hit from cloudfront Via: 1.1 6e65abb04cb818a6ec78111935b507f7.cloudfront.net (CloudFront) X-Amz-Cf-Id: 7NQAIq8xGmZqD87pAWSm0qtRUeRrrZUFdSb9ykL0Xlr6n8NpEHwe_A== Length: 67849600 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 41.7M 1s 3072K ........ ........ ........ ........ ........ ........ 9% 69.2M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 38.2M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 53.8M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 52.0M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 49.6M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 29.1M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 37.4M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 50.6M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 42.4M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 47.5M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 46.3M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 57.3M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 45.3M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 50.6M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 51.1M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 48.5M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 46.4M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 42.4M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 54.4M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 55.8M 0s 64512K ........ ........ ........ ... 100% 53.0M=1.4s 2016-05-09 18:20:25 (46.8 MB/s) - 'update/complete.mar' saved [67849600/67849600] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/hsb/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/hsb/Thunderbird 38.6.0.dmg'] --2016-05-09 18:20:27-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/hsb/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69865296 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:20:27 GMT ETag: "3f7ed9fcf6be3fe59dfd4f0518b835f5" Last-Modified: Fri, 12 Feb 2016 21:49:01 GMT x-amz-replication-status: COMPLETED x-amz-version-id: Rp_Fz5aDWYZxZKtNDPkz.ZGMbjv2jqhR X-Cache: Miss from cloudfront Via: 1.1 02192a27c967e955f8c815efa939bfc8.cloudfront.net (CloudFront) X-Amz-Cf-Id: WSZkAdUPscUEI29ZHgJ4QD01bzX-kRzMgnFUfP-62ou-DECkgGGkSA== Length: 69865296 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.41M 45s 3072K ........ ........ ........ ........ ........ ........ 9% 5.21M 27s 6144K ........ ........ ........ ........ ........ ........ 13% 7.70M 20s 9216K ........ ........ ........ ........ ........ ........ 18% 8.80M 16s 12288K ........ ........ ........ ........ ........ ........ 22% 6.38M 13s 15360K ........ ........ ........ ........ ........ ........ 27% 8.20M 12s 18432K ........ ........ ........ ........ ........ ........ 31% 8.47M 10s 21504K ........ ........ ........ ........ ........ ........ 36% 8.33M 9s 24576K ........ ........ ........ ........ ........ ........ 40% 10.2M 8s 27648K ........ ........ ........ ........ ........ ........ 45% 8.56M 7s 30720K ........ ........ ........ ........ ........ ........ 49% 10.2M 6s 33792K ........ ........ ........ ........ ........ ........ 54% 8.57M 5s 36864K ........ ........ ........ ........ ........ ........ 58% 10.3M 5s 39936K ........ ........ ........ ........ ........ ........ 63% 8.46M 4s 43008K ........ ........ ........ ........ ........ ........ 67% 9.52M 3s 46080K ........ ........ ........ ........ ........ ........ 72% 9.07M 3s 49152K ........ ........ ........ ........ ........ ........ 76% 10.2M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 10.2M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 8.65M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 9.86M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 8.98M 1s 64512K ........ ........ ........ ........ ........ ........ 99% 9.31M 0s 67584K ........ .. 100% 10.6M=9.5s 2016-05-09 18:20:37 (7.00 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69865296/69865296] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/hsb/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/hsb/Thunderbird 45.1.0.dmg'] --2016-05-09 18:20:37-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/hsb/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77233669 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:20:38 GMT ETag: "35c231d6eb7bcda195d14a8ad74cac34" Last-Modified: Mon, 09 May 2016 21:21:15 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 4C7eYHMHEk6Yo85JRtKhrxUP9SnCWPMa X-Cache: Miss from cloudfront Via: 1.1 02192a27c967e955f8c815efa939bfc8.cloudfront.net (CloudFront) X-Amz-Cf-Id: Q6-mNz919gSFNZyVV3NqhNksMUYah9K2P0ooheUVR3tnb-WFoQyK6w== Length: 77233669 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.73M 41s 3072K ........ ........ ........ ........ ........ ........ 8% 3.88M 28s 6144K ........ ........ ........ ........ ........ ........ 12% 2.61M 26s 9216K ........ ........ ........ ........ ........ ........ 16% 1.98M 27s 12288K ........ ........ ........ ........ ........ ........ 20% 1.96M 26s 15360K ........ ........ ........ ........ ........ ........ 24% 1.15M 29s 18432K ........ ........ ........ ........ ........ ........ 28% 792K 33s 21504K ........ ........ ........ ........ ........ ........ 32% 4.12M 29s 24576K ........ ........ ........ ........ ........ ........ 36% 4.70M 25s 27648K ........ ........ ........ ........ ........ ........ 40% 5.57M 22s 30720K ........ ........ ........ ........ ........ ........ 44% 5.80M 19s 33792K ........ ........ ........ ........ ........ ........ 48% 5.88M 17s 36864K ........ ........ ........ ........ ........ ........ 52% 5.39M 15s 39936K ........ ........ ........ ........ ........ ........ 57% 5.20M 13s 43008K ........ ........ ........ ........ ........ ........ 61% 3.91M 11s 46080K ........ ........ ........ ........ ........ ........ 65% 2.60M 10s 49152K ........ ........ ........ ........ ........ ........ 69% 1.74M 9s 52224K ........ ........ ........ ........ ........ ........ 73% 1.31M 8s 55296K ........ ........ ........ ........ ........ ........ 77% 1.22M 7s 58368K ........ ........ ........ ........ ........ ........ 81% 3.21M 6s 61440K ........ ........ ........ ........ ........ ........ 85% 5.85M 5s 64512K ........ ........ ........ ........ ........ ........ 89% 6.78M 3s 67584K ........ ........ ........ ........ ........ ........ 93% 6.86M 2s 70656K ........ ........ ........ ........ ........ ........ 97% 7.88M 1s 73728K ........ ........ ........ .. 100% 7.58M=29s 2016-05-09 18:21:06 (2.58 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77233669/77233669] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/hsb.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/hsb.lproj/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/hsb.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/hsb.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/hsb.lproj/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/hsb.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/hsb.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/hsb.lproj/ non-fatal error removing directory: Contents/Resources/hsb.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/hsb.lproj/InfoPlist.strings FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/hsb/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/hsb/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 5,6c5,6 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/hsb/calendar/lightning-l10n.js" < pref("calendar.week.start", 1); --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" > pref("calendar.week.start", 0); 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/hsb/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 19,20c19,20 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/hsb/calendar/lightning-l10n.js" < pref("calendar.categories.names", "Dary,Dodawarjo,Dowol,Fawority,Ideje,Klienća,Kupc,Narodniny,Problemy,Projekty,Prózdniny,Pućowanje,RóÄnica,SlÄ›dowanje,Status,SwjedźeÅ„,Telefonaty,Wobchod,Wosobinske,WÅ¡elÄizny,WubÄ›dźowanje,Zetkanje"); --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" > pref("calendar.categories.names", "Anniversary,Birthday,Business,Calls,Clients,Competition,Customer,Favorites,Follow up,Gifts,Holidays,Ideas,Issues,Meeting,Miscellaneous,Personal,Projects,Public Holiday,Status,Suppliers,Travel,Vacation"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d106 < rmdir "Contents/Resources/searchplugins/" 122d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < DPYWBLYvCMUV/bsmcgmCr2T4l4g= --- > OSSO8jiu5bXSQXU0sbMihIYvDn4= 221c221 < KrHbW0uIBJ/6N4gd1u17ldLErjs= --- > NhsVRx+EkY86cMLfVN8oecTxzcI= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < aYlJIt+HVYZIiMUoiit4QY4xpnA= --- > ZBLkt6ZS2xHp4EUoNhJ7U/L/4Y0= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < VYJJib4qShQyByMOj992vf/Kmik= --- > /Y7FZa4xxRvooKcOCvJgqRDGLcw= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < zLEDZU/8dvKU0GJVJgRB98qwCIo= --- > n2hxw/ozHc6aAHg2+aa6wt8n1VA= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,627d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < P6ffR/vn3c/041ALOyARzut2U1A= --- > LBm/AJzCnsLwKTARJPppyAIsIco= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c978 < DPYWBLYvCMUV/bsmcgmCr2T4l4g= --- > OSSO8jiu5bXSQXU0sbMihIYvDn4= 1010c982 < KrHbW0uIBJ/6N4gd1u17ldLErjs= --- > NhsVRx+EkY86cMLfVN8oecTxzcI= 1014c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1070 < aYlJIt+HVYZIiMUoiit4QY4xpnA= --- > ZBLkt6ZS2xHp4EUoNhJ7U/L/4Y0= 1102c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1176c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1178c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1180c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1182c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1184c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1186c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1188c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1190c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1227c1199 < VYJJib4qShQyByMOj992vf/Kmik= --- > /Y7FZa4xxRvooKcOCvJgqRDGLcw= 1231c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1235c1207 < zLEDZU/8dvKU0GJVJgRB98qwCIo= --- > n2hxw/ozHc6aAHg2+aa6wt8n1VA= 1239c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1389,1416d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48042738 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:21 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48042737 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:21 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48042736 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:21 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48042686 8 -rw-r--r-- 1 cltbld staff 1531 May 9 18:21 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48042685 8 -rw-r--r-- 1 cltbld staff 1670 May 9 18:21 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48042684 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:21 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48042683 8 -rw-r--r-- 1 cltbld staff 2569 May 9 18:21 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48042682 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:21 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48042681 8 -rw-r--r-- 1 cltbld staff 1338 May 9 18:21 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48042680 8 -rw-r--r-- 1 cltbld staff 1363 May 9 18:21 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hsb/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hsb/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hsb/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:22:03-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:22:03 GMT Keep-Alive: timeout=5, max=991 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 94.1M=0s 2016-05-09 18:22:03 (94.1 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hu/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hu/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:22:04-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hu/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68475697 Connection: keep-alive Date: Tue, 10 May 2016 01:09:50 GMT x-amz-replication-status: COMPLETED x-amz-version-id: E48cAGchJ9lDxAp7tKzh6.zYcg5TGuqt Last-Modified: Tue, 03 May 2016 15:59:35 GMT ETag: "11d8ad19bf0a9a25e904176cdeb60f38" Accept-Ranges: bytes Server: AmazonS3 Age: 735 X-Cache: Hit from cloudfront Via: 1.1 68e4011ca1c00bec92bb202e1ddce131.cloudfront.net (CloudFront) X-Amz-Cf-Id: vIrtniDFlmIFICLYU6RFQmLwUwINRnJIZeI1tis2jVSN_NeXD3C6nA== Length: 68475697 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 16.7M 4s 3072K ........ ........ ........ ........ ........ ........ 9% 19.6M 3s 6144K ........ ........ ........ ........ ........ ........ 13% 28.3M 3s 9216K ........ ........ ........ ........ ........ ........ 18% 23.1M 3s 12288K ........ ........ ........ ........ ........ ........ 22% 18.7M 2s 15360K ........ ........ ........ ........ ........ ........ 27% 20.0M 2s 18432K ........ ........ ........ ........ ........ ........ 32% 28.5M 2s 21504K ........ ........ ........ ........ ........ ........ 36% 29.3M 2s 24576K ........ ........ ........ ........ ........ ........ 41% 39.8M 2s 27648K ........ ........ ........ ........ ........ ........ 45% 38.8M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 39.0M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 39.0M 1s 36864K ........ ........ ........ ........ ........ ........ 59% 38.9M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 39.9M 1s 43008K ........ ........ ........ ........ ........ ........ 68% 38.9M 1s 46080K ........ ........ ........ ........ ........ ........ 73% 38.7M 1s 49152K ........ ........ ........ ........ ........ ........ 78% 43.3M 0s 52224K ........ ........ ........ ........ ........ ........ 82% 54.1M 0s 55296K ........ ........ ........ ........ ........ ........ 87% 54.4M 0s 58368K ........ ........ ........ ........ ........ ........ 91% 55.2M 0s 61440K ........ ........ ........ ........ ........ ........ 96% 56.7M 0s 64512K ........ ........ ........ ........ .... 100% 57.6M=2.0s 2016-05-09 18:22:06 (32.2 MB/s) - 'update/complete.mar' saved [68475697/68475697] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/hu/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/hu/Thunderbird 38.6.0.dmg'] --2016-05-09 18:22:07-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/hu/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70512858 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:22:08 GMT ETag: "3f6d2a0a0a19f8ae17c1224d6b8e3947" Last-Modified: Fri, 12 Feb 2016 21:49:04 GMT x-amz-replication-status: COMPLETED x-amz-version-id: hnuMxyGr1CbqEfAdVxV6wIaRj0.NCVGZ X-Cache: Miss from cloudfront Via: 1.1 ca024aca72de992a25bcd7fdcfe84b67.cloudfront.net (CloudFront) X-Amz-Cf-Id: fXfBdKRxs1fltluh_2DY0BuHbBoNwv5B-qyJk5Fy0stucBcUfcxGCw== Length: 70512858 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.42M 45s 3072K ........ ........ ........ ........ ........ ........ 8% 1.90M 38s 6144K ........ ........ ........ ........ ........ ........ 13% 2.01M 34s 9216K ........ ........ ........ ........ ........ ........ 17% 2.56M 29s 12288K ........ ........ ........ ........ ........ ........ 22% 4.02M 25s 15360K ........ ........ ........ ........ ........ ........ 26% 4.49M 21s 18432K ........ ........ ........ ........ ........ ........ 31% 5.17M 18s 21504K ........ ........ ........ ........ ........ ........ 35% 4.53M 16s 24576K ........ ........ ........ ........ ........ ........ 40% 5.12M 14s 27648K ........ ........ ........ ........ ........ ........ 44% 4.53M 13s 30720K ........ ........ ........ ........ ........ ........ 49% 5.13M 11s 33792K ........ ........ ........ ........ ........ ........ 53% 4.99M 10s 36864K ........ ........ ........ ........ ........ ........ 57% 4.66M 9s 39936K ........ ........ ........ ........ ........ ........ 62% 5.06M 8s 43008K ........ ........ ........ ........ ........ ........ 66% 4.50M 7s 46080K ........ ........ ........ ........ ........ ........ 71% 3.52M 6s 49152K ........ ........ ........ ........ ........ ........ 75% 3.70M 5s 52224K ........ ........ ........ ........ ........ ........ 80% 3.98M 4s 55296K ........ ........ ........ ........ ........ ........ 84% 3.62M 3s 58368K ........ ........ ........ ........ ........ ........ 89% 3.62M 2s 61440K ........ ........ ........ ........ ........ ........ 93% 4.45M 1s 64512K ........ ........ ........ ........ ........ ........ 98% 5.79M 0s 67584K ........ ........ ... 100% 7.24M=19s 2016-05-09 18:22:27 (3.58 MB/s) - 'Thunderbird 38.6.0.dmg' saved [70512858/70512858] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/hu/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/hu/Thunderbird 45.1.0.dmg'] --2016-05-09 18:22:27-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/hu/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77876434 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:22:28 GMT ETag: "153e77176270e77c4e5b77bf88baea83" Last-Modified: Mon, 09 May 2016 21:46:51 GMT x-amz-replication-status: COMPLETED x-amz-version-id: qNbPwALrDkpnXo5VGGJwtOP7hsj9JXuF X-Cache: Miss from cloudfront Via: 1.1 939ea9d62ec616846d41b16cea0dc65b.cloudfront.net (CloudFront) X-Amz-Cf-Id: W4bdrvs2Gfv93ErDqSSRbWSc4e6197THtzS0w5I5UTQkMqPm_HOx-A== Length: 77876434 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.81M 39s 3072K ........ ........ ........ ........ ........ ........ 8% 5.92M 25s 6144K ........ ........ ........ ........ ........ ........ 12% 8.41M 18s 9216K ........ ........ ........ ........ ........ ........ 16% 12.0M 14s 12288K ........ ........ ........ ........ ........ ........ 20% 15.5M 12s 15360K ........ ........ ........ ........ ........ ........ 24% 14.1M 10s 18432K ........ ........ ........ ........ ........ ........ 28% 21.0M 8s 21504K ........ ........ ........ ........ ........ ...... 32% 130K=26s 2016-05-09 18:23:24 (931 KB/s) - Connection closed at byte 25071139. Retrying. --2016-05-09 18:23:25-- (try: 2) http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/hu/Thunderbird%2045.1.0.dmg Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 206 Partial Content Content-Type: application/x-apple-diskimage Content-Length: 52805295 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:23:26 GMT ETag: "153e77176270e77c4e5b77bf88baea83" Last-Modified: Mon, 09 May 2016 21:46:51 GMT x-amz-replication-status: COMPLETED x-amz-version-id: qNbPwALrDkpnXo5VGGJwtOP7hsj9JXuF Content-Range: bytes 25071139-77876433/77876434 X-Cache: Miss from cloudfront Via: 1.1 dc7c4fb5024ff022cad1642ec506a6e8.cloudfront.net (CloudFront) X-Amz-Cf-Id: 2jrXJELGEyLE38EkyLpvRWRVEv-1KeSenol9FqI8Tfbg69ThQPyaTw== Length: 77876434 (74M), 52805295 (50M) remaining [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' [ skipping 21504K ] 21504K ,,,,,,,, ,,,,,,,, ,,,,,,,, ,,,,,,,, ,,,,,,,, ,,,,,,.. 32% 2.25M 12m21s 24576K ........ ........ ........ ........ ........ ........ 36% 3.62M 33s 27648K ........ ........ ........ ........ ........ ........ 40% 7.25M 19s 30720K ........ ........ ........ ........ ........ ........ 44% 11.2M 13s 33792K ........ ........ ........ ........ ........ ........ 48% 13.1M 10s 36864K ........ ........ ........ ........ ........ ........ 52% 16.6M 8s 39936K ........ ........ ........ ........ ........ ........ 56% 19.8M 6s 43008K ........ ........ ........ ........ ........ ........ 60% 22.0M 5s 46080K ........ ........ ........ ........ ........ ........ 64% 23.7M 4s 49152K ........ ........ ........ ........ ........ ........ 68% 12.6M 3s 52224K ........ ........ ........ ........ ........ ........ 72% 14.8M 3s 55296K ........ ........ ........ ........ ........ ........ 76% 12.1M 2s 58368K ........ ........ ........ ........ ........ ........ 80% 14.5M 2s 61440K ........ ........ ........ ........ ........ ........ 84% 16.5M 1s 64512K ........ ........ ........ ........ ........ ........ 88% 20.3M 1s 67584K ........ ........ ........ ........ ........ ........ 92% 12.0M 1s 70656K ........ ........ ........ ........ ........ ........ 96% 14.1M 0s 73728K ........ ........ ........ ........ .... 100% 7.46M=5.7s 2016-05-09 18:23:32 (8.90 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77876434/77876434] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-hu.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/vatera.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/sztaki-en-hu.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay-hu.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/hu.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/hu.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/hu.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/hu.lproj/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/wikipedia-hu.xml PREPARE ADD Contents/Resources/searchplugins/vatera.xml PREPARE ADD Contents/Resources/searchplugins/sztaki-en-hu.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/eBay-hu.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/hu.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/hu.dic PREPARE ADD Contents/Resources/dictionaries/hu.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-hu.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/vatera.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/sztaki-en-hu.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay-hu.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/hu.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/hu.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/hu.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/hu.lproj/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/wikipedia-hu.xml EXECUTE ADD Contents/Resources/searchplugins/vatera.xml EXECUTE ADD Contents/Resources/searchplugins/sztaki-en-hu.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/eBay-hu.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/hu.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/hu.dic EXECUTE ADD Contents/Resources/dictionaries/hu.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-hu.xml FINISH REMOVEFILE Contents/Resources/searchplugins/vatera.xml FINISH REMOVEFILE Contents/Resources/searchplugins/sztaki-en-hu.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay-hu.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/hu.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/hu.dic FINISH REMOVEFILE Contents/Resources/dictionaries/hu.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/hu.lproj/ non-fatal error removing directory: Contents/Resources/hu.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/wikipedia-hu.xml FINISH ADD Contents/Resources/searchplugins/vatera.xml FINISH ADD Contents/Resources/searchplugins/sztaki-en-hu.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/eBay-hu.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/hu.lproj/InfoPlist.strings FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/hu.dic FINISH ADD Contents/Resources/dictionaries/hu.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini 37c37 < Quit2=%s – kilépés --- > Quit2=%s bezárása diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources 76c76 < d8H8U7k3nQGpd/MtEWhTKJWrOfU= --- > +IMTSlbFx1ujHpbVc2pUoGRdsBg= 150c150 < d8H8U7k3nQGpd/MtEWhTKJWrOfU= --- > +IMTSlbFx1ujHpbVc2pUoGRdsBg= Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/hu/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/hu/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/hu/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/hu/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/hu/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/hu/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/hu/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/hu/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/hu/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/hu/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,8d3 < remove "Contents/Resources/searchplugins/wikipedia-hu.xml" < remove "Contents/Resources/searchplugins/vatera.xml" < remove "Contents/Resources/searchplugins/sztaki-en-hu.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/eBay-hu.xml" 57,59c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d108 < rmdir "Contents/Resources/searchplugins/" 122d113 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < Z7TLqU20GFocXeZ6HVhjD1m+lBg= --- > ieBF61u6z3QvJ2qan6ep7W1iRDE= 229c229 < Kr+3YMv2xpILODJCnookxpy86tk= --- > xfMJoxekUbaK4e/CQQ5PolbcweE= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < az5AoFuWODwoWWKpMQE9WdYjDKs= --- > E4FpHHfYe0+tEkMEMu5wySyc6e8= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 395c395 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 397c397 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 401c401 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 403c403 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 405c405 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 409c409 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 446c446 < 8xAqrZbe6MehURyCQJEJMo4PMME= --- > svfHmPVuVi15ZfvUh2bpHnNpcBY= 450c450 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 454c454 < a4DnWD4Sm6lyUTf7VHGvEw1u2v4= --- > PpXWDrFKt3tpiuQiQ3LkvrfUgAI= 458c458 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,627d607 < Resources/searchplugins/eBay-hu.xml < < 7U8CUFSiMNdPMmRtDKGgHoByLxE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/sztaki-en-hu.xml < < CS1eP5A32EezD8aVylbAI6o0Dr4= < < Resources/searchplugins/vatera.xml < < ED+0aqofZ2baxG8WDd5VM4FGbK8= < < Resources/searchplugins/wikipedia-hu.xml < < d4q6+qu5hcatwYd1dba8EN+6Bnc= < 656c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c645 < iCuizfrAEz9G+wlLpGvkQA0q6FU= --- > WaONNEN26uYUBerx3/ZBcgH7Dt0= 674c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 826c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 830c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 834c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 838c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 842c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 846c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 850c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 854c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 858c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 862c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 866c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 870c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 874c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 878c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 882c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 886c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 890c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 894c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 898c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 902c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 906c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 910c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 914c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 918c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 922c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 926c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 930c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 934c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 938c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 942c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 946c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 950c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 954c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 958c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 962c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 966c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 970c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 974c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 978c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 982c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 986c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 990c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 994c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 998c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1006c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1010c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1014c994 < Z7TLqU20GFocXeZ6HVhjD1m+lBg= --- > ieBF61u6z3QvJ2qan6ep7W1iRDE= 1018c998 < Kr+3YMv2xpILODJCnookxpy86tk= --- > xfMJoxekUbaK4e/CQQ5PolbcweE= 1022c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1026c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1030c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1034c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1038c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1042c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1046c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1050c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1054c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1058c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1062c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1066c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1070c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1074c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1078c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1090c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1094c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1102c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1106c1086 < az5AoFuWODwoWWKpMQE9WdYjDKs= --- > E4FpHHfYe0+tEkMEMu5wySyc6e8= 1110c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1114c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1118c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1122c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1126c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1130c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1134c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1138c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1142c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1146c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1150c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1154c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1158c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1166c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1170c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1174c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1178c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1182c1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1184c1164 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1186c1166 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1188c1168 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1190c1170 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1192c1172 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1194c1174 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1196c1176 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1198c1178 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1235c1215 < 8xAqrZbe6MehURyCQJEJMo4PMME= --- > svfHmPVuVi15ZfvUh2bpHnNpcBY= 1239c1219 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1243c1223 < a4DnWD4Sm6lyUTf7VHGvEw1u2v4= --- > PpXWDrFKt3tpiuQiQ3LkvrfUgAI= 1247c1227 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1397,1416d1376 < Resources/searchplugins/eBay-hu.xml < < 7U8CUFSiMNdPMmRtDKGgHoByLxE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/sztaki-en-hu.xml < < CS1eP5A32EezD8aVylbAI6o0Dr4= < < Resources/searchplugins/vatera.xml < < ED+0aqofZ2baxG8WDd5VM4FGbK8= < < Resources/searchplugins/wikipedia-hu.xml < < d4q6+qu5hcatwYd1dba8EN+6Bnc= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48043496 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:24 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48043495 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:24 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48043494 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:24 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48043445 8 -rw-r--r-- 1 cltbld staff 1193 May 9 18:24 source/Thunderbird.app/Contents/Resources/searchplugins/eBay-hu.xml 48043444 8 -rw-r--r-- 1 cltbld staff 2371 May 9 18:24 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48043443 8 -rw-r--r-- 1 cltbld staff 1841 May 9 18:24 source/Thunderbird.app/Contents/Resources/searchplugins/sztaki-en-hu.xml 48043442 8 -rw-r--r-- 1 cltbld staff 1187 May 9 18:24 source/Thunderbird.app/Contents/Resources/searchplugins/vatera.xml 48043441 8 -rw-r--r-- 1 cltbld staff 1352 May 9 18:24 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-hu.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:24:29-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:24:29 GMT Keep-Alive: timeout=5, max=951 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:24:29 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hy-AM/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hy-AM/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:24:29-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hy-AM/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67878223 Connection: keep-alive Date: Tue, 10 May 2016 01:09:57 GMT x-amz-replication-status: COMPLETED x-amz-version-id: GTG1th9xMq7tWb0cEzGt1aGyaEnAZC_7 Last-Modified: Tue, 03 May 2016 16:14:20 GMT ETag: "f81751509571b1e7857870da9a04c54f" Accept-Ranges: bytes Server: AmazonS3 Age: 874 X-Cache: Hit from cloudfront Via: 1.1 9767e262e4af15c8d83a726bb0f44fa5.cloudfront.net (CloudFront) X-Amz-Cf-Id: t-OyMHbRu6trjDmt8PD1_G11uNvminb1SUcIAvmt7OrwF7ZVeika5w== Length: 67878223 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 39.3M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 88.9M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 49.1M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 55.6M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 64.2M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 60.7M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 40.9M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 62.3M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 42.7M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 54.7M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 40.5M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 73.0M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 66.3M 0s 39936K ........ ........ ........ ........ ........ ........ 64% 49.9M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 47.9M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 37.0M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 50.3M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 41.6M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 78.1M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 53.6M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 55.1M 0s 64512K ........ ........ ........ ... 100% 35.3M=1.3s 2016-05-09 18:24:31 (51.3 MB/s) - 'update/complete.mar' saved [67878223/67878223] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/hy-AM/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/hy-AM/Thunderbird 38.6.0.dmg'] --2016-05-09 18:24:32-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/hy-AM/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69886967 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:24:33 GMT ETag: "22e969a7b323b13f190f760eb933b393" Last-Modified: Fri, 12 Feb 2016 21:49:05 GMT x-amz-replication-status: COMPLETED x-amz-version-id: zNmnRciaetwGyC1oZth1TuHyIyBqu5u4 X-Cache: Miss from cloudfront Via: 1.1 95da1452a75435200220a7075ca3893f.cloudfront.net (CloudFront) X-Amz-Cf-Id: QYvThZjXWmRsBoYlmhMn_6zh5zaj3NxZRH14INRCMvQ-RNsQx__QmA== Length: 69886967 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.42M 45s 3072K ........ ........ ........ ........ ........ ........ 9% 5.97M 26s 6144K ........ ........ ........ ........ ........ ........ 13% 9.34M 19s 9216K ........ ........ ........ ........ ........ ........ 18% 10.6M 15s 12288K ........ ........ ........ ........ ........ ........ 22% 10.0M 12s 15360K ........ ........ ........ ........ ........ ........ 27% 7.39M 11s 18432K ........ ........ ........ ........ ........ ........ 31% 8.80M 9s 21504K ........ ........ ........ ........ ........ ........ 36% 7.85M 8s 24576K ........ ........ ........ ........ ........ ........ 40% 7.26M 7s 27648K ........ ........ ........ ........ ........ ........ 45% 7.48M 7s 30720K ........ ........ ........ ........ ........ ........ 49% 6.54M 6s 33792K ........ ........ ........ ........ ........ ........ 54% 7.50M 5s 36864K ........ ........ ........ ........ ........ ........ 58% 7.51M 5s 39936K ........ ........ ........ ........ ........ ........ 63% 7.14M 4s 43008K ........ ........ ........ ........ ........ ........ 67% 6.18M 4s 46080K ........ ........ ........ ........ ........ ........ 72% 6.10M 3s 49152K ........ ........ ........ ........ ........ ........ 76% 7.37M 3s 52224K ........ ........ ........ ........ ........ ........ 81% 6.86M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 6.45M 2s 58368K ........ ........ ........ ........ ........ ........ 90% 6.98M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 6.27M 1s 64512K ........ ........ ........ ........ ........ ........ 99% 7.15M 0s 67584K ........ .. 100% 6.73M=11s 2016-05-09 18:24:44 (6.15 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69886967/69886967] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/hy-AM/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/hy-AM/Thunderbird 45.1.0.dmg'] --2016-05-09 18:24:44-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/hy-AM/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77265099 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:24:45 GMT ETag: "722cb5640320a627174b06bd1df259e8" Last-Modified: Mon, 09 May 2016 22:09:13 GMT x-amz-replication-status: COMPLETED x-amz-version-id: wj6l.18xzPxqpGY5PRnsmlNscdmL9sEh X-Cache: Miss from cloudfront Via: 1.1 95da1452a75435200220a7075ca3893f.cloudfront.net (CloudFront) X-Amz-Cf-Id: UbZW2KS4Rqh8zesN3Qok48X0RRXaXGIqOO7LHsHpYLFjhSaSHKvhfA== Length: 77265099 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 866K 84s 3072K ........ ........ ........ ........ ........ ........ 8% 3.00M 51s 6144K ........ ........ ........ ........ ........ ........ 12% 3.16M 40s 9216K ........ ........ ........ ........ ........ ........ 16% 3.30M 33s 12288K ........ ........ ........ ........ ........ ........ 20% 3.09M 29s 15360K ........ ........ ........ ........ ........ ........ 24% 2.98M 26s 18432K ........ ........ ........ ........ ........ ........ 28% 2.79M 24s 21504K ........ ........ ........ ........ ........ ........ 32% 2.37M 22s 24576K ........ ........ ........ ........ ........ ........ 36% 2.52M 21s 27648K ........ ........ ........ ........ ........ ........ 40% 2.54M 19s 30720K ........ ........ ........ ........ ........ ........ 44% 2.54M 18s 33792K ........ ........ ........ ........ ........ ........ 48% 3.31M 16s 36864K ........ ........ ........ ........ ........ ........ 52% 4.13M 14s 39936K ........ ........ ........ ........ ........ ........ 56% 3.67M 13s 43008K ........ ........ ........ ........ ........ ........ 61% 4.11M 11s 46080K ........ ........ ........ ........ ........ ........ 65% 3.70M 10s 49152K ........ ........ ........ ........ ........ ........ 69% 4.09M 8s 52224K ........ ........ ........ ........ ........ ........ 73% 4.07M 7s 55296K ........ ........ ........ ........ ........ ........ 77% 3.74M 6s 58368K ........ ........ ........ ........ ........ ........ 81% 4.09M 5s 61440K ........ ........ ........ ........ ........ ........ 85% 4.15M 4s 64512K ........ ........ ........ ........ ........ ........ 89% 5.51M 3s 67584K ........ ........ ........ ........ ........ ........ 93% 7.36M 2s 70656K ........ ........ ........ ........ ........ ........ 97% 7.18M 1s 73728K ........ ........ ........ .. 100% 9.12M=24s 2016-05-09 18:25:09 (3.13 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77265099/77265099] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/hy.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/hy.lproj/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/hy.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/hy.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/hy.lproj/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/hy.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/hy.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/hy.lproj/ non-fatal error removing directory: Contents/Resources/hy.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/hy.lproj/InfoPlist.strings FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini 23c23 < ViewReportTitle=Õ€Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ ÕºÕ¡Ö€Õ¸Ö‚Õ¶Õ¡Õ¯Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨ --- > ViewReportTitle=Õ€Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ Õ¢Õ¸Õ¾Õ¡Õ¶Õ¤Õ¡Õ¯Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources 76c76 < biEgmO3zna7oVEmGP23cc90aTes= --- > WwJntutWnBGkBu8uML9emaKt3VI= 150c150 < biEgmO3zna7oVEmGP23cc90aTes= --- > WwJntutWnBGkBu8uML9emaKt3VI= Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/comm-esr38/calendar/locales/en-US/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/comm-esr45/calendar/locales/en-US/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d106 < rmdir "Contents/Resources/searchplugins/" 122d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < y7BZAdwwkBkxgFupOukqvnBP4aI= --- > xGV5YAsPTNQDDdHNUh9DNKPw1cA= 221c221 < GWCpz2r/o5hxLlG5wfcmv6zv5Ok= --- > WHgMW1Pb5ENVQ6tOT+BxchxILfY= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < QJ3sG24iR6XAGC86tBWNeS/2D+w= --- > mrM+3atLEui42oZib04sMPX7b0M= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < CPgHnxZZeFipcjKlwrmW9s/S/3Y= --- > /+DCigLMcOAGxtvaenYjsz54FXo= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < kPjQn4hTy0IpB9UYzho1fStdMHI= --- > M2mQrFTbt+BgRSrKEcC1YOHR58w= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,627d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < ePd3c9SuWTlxJwjKoucBMwk9vg0= --- > UFJ5BPBay8DoH8ki3Ss3q2heHjg= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c978 < y7BZAdwwkBkxgFupOukqvnBP4aI= --- > xGV5YAsPTNQDDdHNUh9DNKPw1cA= 1010c982 < GWCpz2r/o5hxLlG5wfcmv6zv5Ok= --- > WHgMW1Pb5ENVQ6tOT+BxchxILfY= 1014c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1070 < QJ3sG24iR6XAGC86tBWNeS/2D+w= --- > mrM+3atLEui42oZib04sMPX7b0M= 1102c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1176c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1178c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1180c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1182c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1184c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1186c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1188c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1190c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1227c1199 < CPgHnxZZeFipcjKlwrmW9s/S/3Y= --- > /+DCigLMcOAGxtvaenYjsz54FXo= 1231c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1235c1207 < kPjQn4hTy0IpB9UYzho1fStdMHI= --- > M2mQrFTbt+BgRSrKEcC1YOHR58w= 1239c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1389,1416d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48044246 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:25 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48044245 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:25 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48044244 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:25 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48044195 8 -rw-r--r-- 1 cltbld staff 1531 May 9 18:25 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48044194 8 -rw-r--r-- 1 cltbld staff 1670 May 9 18:25 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48044193 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:25 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48044192 8 -rw-r--r-- 1 cltbld staff 2569 May 9 18:25 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48044191 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:25 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48044190 8 -rw-r--r-- 1 cltbld staff 1338 May 9 18:25 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48044189 8 -rw-r--r-- 1 cltbld staff 1363 May 9 18:25 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:26:04-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:26:05 GMT Keep-Alive: timeout=5, max=991 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:26:05 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/id/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/id/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:26:05-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/id/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67976827 Connection: keep-alive Date: Tue, 10 May 2016 01:10:05 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 38V186fI9Ty6L8jMBjOtwnJHGsVjg5bN Last-Modified: Tue, 03 May 2016 16:27:22 GMT ETag: "5a738f6c8f40d8f9b79d282da79fe15f" Accept-Ranges: bytes Server: AmazonS3 Age: 961 X-Cache: Hit from cloudfront Via: 1.1 88972e3933cc06dd11a6fa704a208631.cloudfront.net (CloudFront) X-Amz-Cf-Id: HznvMpAT6e1EWS0Ovmh7cWz9sb8rRiKzf8_wmdwcUga_Quk520H0Nw== Length: 67976827 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 40.5M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 93.1M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 94.0M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 85.6M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 67.3M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 83.0M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 59.8M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 77.3M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 85.2M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 58.5M 0s 30720K ........ ........ ........ ........ ........ ........ 50% 81.9M 0s 33792K ........ ........ ........ ........ ........ ........ 55% 72.9M 0s 36864K ........ ........ ........ ........ ........ ........ 60% 83.7M 0s 39936K ........ ........ ........ ........ ........ ........ 64% 56.4M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 74.0M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 74.3M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 90.1M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 78.4M 0s 55296K ........ ........ ........ ........ ........ ........ 87% 73.4M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 78.6M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 57.9M 0s 64512K ........ ........ ........ ..... 100% 65.7M=0.9s 2016-05-09 18:26:06 (71.4 MB/s) - 'update/complete.mar' saved [67976827/67976827] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/id/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/id/Thunderbird 38.6.0.dmg'] --2016-05-09 18:26:08-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/id/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69991681 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:26:08 GMT ETag: "e0976bb8b601f28b39181357ad72b2ce" Last-Modified: Fri, 12 Feb 2016 21:49:08 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 6U2YlDxl9DMfLHHNeniPjmdFnslbAejs X-Cache: Miss from cloudfront Via: 1.1 96255a5b0caf50bcafcd101c1ff13691.cloudfront.net (CloudFront) X-Amz-Cf-Id: wMxsXwTA_wk4BFUap6Qa8LEALG9YT8vImg4yf6pTllxEiVwBVrY3hw== Length: 69991681 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.39M 46s 3072K ........ ........ ........ ........ ........ ........ 8% 5.16M 28s 6144K ........ ........ ........ ........ ........ ........ 13% 7.37M 20s 9216K ........ ........ ........ ........ ........ ........ 17% 9.66M 16s 12288K ........ ........ ........ ........ ........ ........ 22% 11.9M 13s 15360K ........ ........ ........ ........ ........ ........ 26% 9.25M 11s 18432K ........ ........ ........ ........ ........ ........ 31% 6.83M 10s 21504K ........ ........ ........ ........ ........ ........ 35% 7.85M 9s 24576K ........ ........ ........ ........ ........ ........ 40% 10.3M 8s 27648K ........ ........ ........ ........ ........ ........ 44% 13.5M 7s 30720K ........ ........ ........ ........ ........ ........ 49% 10.8M 6s 33792K ........ ........ ........ ........ ........ ........ 53% 15.3M 5s 36864K ........ ........ ........ ........ ........ ........ 58% 12.2M 4s 39936K ........ ........ ........ ........ ........ ........ 62% 13.9M 4s 43008K ........ ........ ........ ........ ........ ........ 67% 14.1M 3s 46080K ........ ........ ........ ........ ........ ........ 71% 15.4M 3s 49152K ........ ........ ........ ........ ........ ........ 76% 14.1M 2s 52224K ........ ........ ........ ........ ........ ........ 80% 16.7M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 14.4M 1s 58368K ........ ........ ........ ........ ........ ........ 89% 15.9M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 13.4M 0s 64512K ........ ........ ........ ........ ........ ........ 98% 16.8M 0s 67584K ........ ... 100% 10.5M=8.0s 2016-05-09 18:26:17 (8.38 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69991681/69991681] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/id/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/id/Thunderbird 45.1.0.dmg'] --2016-05-09 18:26:17-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/id/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77368241 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:26:18 GMT ETag: "2c43f4cb32609df405a2cfb10f202444" Last-Modified: Mon, 09 May 2016 22:31:46 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 05xgjT_Hq2F04MystJ8zImYYUYKV0gZf X-Cache: Miss from cloudfront Via: 1.1 978198446b6fdba8a499c04f84a3a7e6.cloudfront.net (CloudFront) X-Amz-Cf-Id: XZYTIngAj0ambnrD_LcOYR7-7LDNb0JTwi6HYuiqAsTpiP2vVjmooQ== Length: 77368241 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.66M 43s 3072K ........ ........ ........ ........ ........ ........ 8% 5.85M 26s 6144K ........ ........ ........ ........ ........ ........ 12% 9.32M 19s 9216K ........ ........ ........ ........ ........ ........ 16% 11.6M 15s 12288K ........ ........ ........ ........ ........ ........ 20% 14.7M 12s 15360K ........ ........ ........ ........ ........ ........ 24% 16.3M 10s 18432K ........ ........ ........ ........ ........ ........ 28% 19.3M 9s 21504K ........ ........ ........ ........ ........ ........ 32% 17.2M 8s 24576K ........ ........ ........ ........ ........ ........ 36% 15.2M 7s 27648K ........ ........ ........ ........ ........ ........ 40% 7.41M 6s 30720K ........ ........ ........ ........ ........ ........ 44% 7.15M 6s 33792K ........ ........ ........ ........ ........ ........ 48% 7.94M 5s 36864K ........ ........ ........ ........ ........ ........ 52% 13.4M 5s 39936K ........ ........ ........ ........ ........ ........ 56% 12.5M 4s 43008K ........ ........ ........ ........ ........ ........ 60% 16.3M 4s 46080K ........ ........ ........ ........ ........ ........ 65% 8.49M 3s 49152K ........ ........ ........ ........ ........ ........ 69% 20.9M 3s 52224K ........ ........ ........ ........ ........ ........ 73% 10.2M 2s 55296K ........ ........ ........ ........ ........ ........ 77% 19.6M 2s 58368K ........ ........ ........ ........ ........ ........ 81% 5.97M 2s 61440K ........ ........ ........ ........ ........ ........ 85% 131K 5s 64512K ........ ........ ........ ........ ........ ........ 89% 3.07M 4s 67584K ........ ........ ........ ........ ........ ........ 93% 6.16M 2s 70656K ........ ........ ........ ........ ........ ........ 97% 9.43M 1s 73728K ........ ........ ........ .... 100% 9.25M=33s 2016-05-09 18:26:50 (2.26 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77368241/77368241] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-id.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-id.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/id.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/id.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/id.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/id.lproj/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo-id.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-id.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/id.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/id.dic PREPARE ADD Contents/Resources/dictionaries/id.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-id.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-id.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/id.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/id.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/id.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/id.lproj/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo-id.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-id.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/id.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/id.dic EXECUTE ADD Contents/Resources/dictionaries/id.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-id.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-id.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/id.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/id.dic FINISH REMOVEFILE Contents/Resources/dictionaries/id.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/id.lproj/ non-fatal error removing directory: Contents/Resources/id.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo-id.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-id.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/id.lproj/InfoPlist.strings FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/id.dic FINISH ADD Contents/Resources/dictionaries/id.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 36 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/id/calendar/lightning-l10n.js" --- > //@line 36 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/id/calendar/lightning-l10n.js" 3c3 < //@line 38 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/id/calendar/lightning-l10n.js" --- > //@line 38 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/id/calendar/lightning-l10n.js" 5c5 < //@line 41 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/id/calendar/lightning-l10n.js" --- > //@line 41 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/id/calendar/lightning-l10n.js" 8c8 < //@line 44 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/id/calendar/lightning-l10n.js" --- > //@line 44 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/id/calendar/lightning-l10n.js" 19c19 < //@line 55 "/builds/slave/tb-rel-c-esr38-m64_rpk_5-00000/l10n/id/calendar/lightning-l10n.js" --- > //@line 55 "/builds/slave/tb-rel-c-esr45-m64_rpk_5-00000/l10n/id/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,6d3 < remove "Contents/Resources/searchplugins/yahoo-id.xml" < remove "Contents/Resources/searchplugins/wikipedia-id.xml" < remove "Contents/Resources/searchplugins/google.xml" 55,57c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 88c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 114d108 < rmdir "Contents/Resources/searchplugins/" 120d113 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < mBVU9VplTE1Pb2bEXDvzoki62Ug= --- > nmj2sBxgUdh5NZFRHoi47dhfF5Q= 229c229 < kJQx5FpeTvD5YYLfUctlgfNqpuI= --- > yrVIFp//ISHRwzAToBjQ2RGC1jM= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < xrMszPRh2x6sKc8kp0Q7zA/NUYI= --- > fHOWW3Rvcvfqa4+QzPrWctqQkSo= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 395c395 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 397c397 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 401c401 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 403c403 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 405c405 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 409c409 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 446c446 < Uq7LJNqy8CVeMrUuRrQ6bS7rE2U= --- > TJuRbur8bRjPrN+n81v3chRIMfs= 450c450 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 454c454 < VtzBazOR5BtNsgYpgPds6cQtMQo= --- > fG6RI/tf8fme4sovSlHTDb9JPkA= 458c458 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,619d607 < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/wikipedia-id.xml < < tHVdpzcHXNmIibp7+hxJe9o7Zo0= < < Resources/searchplugins/yahoo-id.xml < < Z2CDG+CXckwoariug3UUuYlusc8= < 648c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 657c645 < /Wri3XhV/ATJ9xNDj3cdlbtoYzo= --- > Wbw84/R0hFxoMk6k992cBeCrQ2k= 666c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 675c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 684c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 689c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 693c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 702c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 711c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 720c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 729c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 738c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 747c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 756c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 765c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 774c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 783c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 790c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 794c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 806c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c994 < mBVU9VplTE1Pb2bEXDvzoki62Ug= --- > nmj2sBxgUdh5NZFRHoi47dhfF5Q= 1010c998 < kJQx5FpeTvD5YYLfUctlgfNqpuI= --- > yrVIFp//ISHRwzAToBjQ2RGC1jM= 1014c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1086 < xrMszPRh2x6sKc8kp0Q7zA/NUYI= --- > fHOWW3Rvcvfqa4+QzPrWctqQkSo= 1102c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1176c1164 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1178c1166 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1180c1168 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1182c1170 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1184c1172 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1186c1174 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1188c1176 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1190c1178 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1227c1215 < Uq7LJNqy8CVeMrUuRrQ6bS7rE2U= --- > TJuRbur8bRjPrN+n81v3chRIMfs= 1231c1219 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1235c1223 < VtzBazOR5BtNsgYpgPds6cQtMQo= --- > fG6RI/tf8fme4sovSlHTDb9JPkA= 1239c1227 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1389,1400d1376 < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/wikipedia-id.xml < < tHVdpzcHXNmIibp7+hxJe9o7Zo0= < < Resources/searchplugins/yahoo-id.xml < < Z2CDG+CXckwoariug3UUuYlusc8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48044994 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:27 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48044993 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:27 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48044992 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:27 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48044943 8 -rw-r--r-- 1 cltbld staff 2371 May 9 18:27 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48044942 8 -rw-r--r-- 1 cltbld staff 1110 May 9 18:27 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-id.xml 48044941 8 -rw-r--r-- 1 cltbld staff 898 May 9 18:27 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-id.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:27:46-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:27:47 GMT Keep-Alive: timeout=5, max=985 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:27:47 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/is/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/is/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:27:47-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/is/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67830996 Connection: keep-alive Date: Tue, 10 May 2016 01:10:12 GMT x-amz-replication-status: COMPLETED x-amz-version-id: LBvj9xZLQ65JtOj9rVK.8nYbQxDyqDEL Last-Modified: Tue, 03 May 2016 15:16:38 GMT ETag: "75ab951533859d2d994340a8d99d620b" Accept-Ranges: bytes Server: AmazonS3 Age: 1055 X-Cache: Hit from cloudfront Via: 1.1 939ea9d62ec616846d41b16cea0dc65b.cloudfront.net (CloudFront) X-Amz-Cf-Id: GJSsM3ElkDAg3LB6mYHiMCxVJj1W1slo35JzJuE5zZulvDv4LsW_Xw== Length: 67830996 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 24.4M 3s 3072K ........ ........ ........ ........ ........ ........ 9% 62.7M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 102M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 70.9M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 63.0M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 26.6M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 108M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 59.4M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 55.4M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 64.8M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 75.4M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 71.1M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 67.9M 0s 39936K ........ ........ ........ ........ ........ ........ 64% 66.2M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 76.6M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 62.6M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 59.4M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 71.5M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 67.5M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 82.7M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 70.2M 0s 64512K ........ ........ ........ ... 100% 69.6M=1.1s 2016-05-09 18:27:48 (59.9 MB/s) - 'update/complete.mar' saved [67830996/67830996] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/is/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/is/Thunderbird 38.6.0.dmg'] --2016-05-09 18:27:49-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/is/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69853808 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:27:50 GMT ETag: "0b4843d09ceaadc9670c0611c4ddb75f" Last-Modified: Fri, 12 Feb 2016 21:49:11 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 0iuYGWT1W.wrzHQMNxwblK4X60AX2rO4 X-Cache: Miss from cloudfront Via: 1.1 0ffb9964022445351e635c66ad0176ff.cloudfront.net (CloudFront) X-Amz-Cf-Id: Ek_axPqzNDJdfNCNyIzY8dogL5iDmuNdVksnqJvSKElx54lEmatD-Q== Length: 69853808 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.33M 48s 3072K ........ ........ ........ ........ ........ ........ 9% 4.73M 29s 6144K ........ ........ ........ ........ ........ ........ 13% 7.66M 21s 9216K ........ ........ ........ ........ ........ ........ 18% 8.05M 17s 12288K ........ ........ ........ ........ ........ ........ 22% 9.98M 14s 15360K ........ ........ ........ ........ ........ ........ 27% 11.0M 11s 18432K ........ ........ ........ ........ ........ ........ 31% 10.8M 10s 21504K ........ ........ ........ ........ ........ ........ 36% 15.6M 8s 24576K ........ ........ ........ ........ ........ ........ 40% 16.0M 7s 27648K ........ ........ ........ ........ ........ ........ 45% 8.30M 6s 30720K ........ ........ ........ ........ ........ ........ 49% 11.1M 6s 33792K ........ ........ ........ ........ ........ ........ 54% 8.58M 5s 36864K ........ ........ ........ ........ ........ ........ 58% 8.75M 4s 39936K ........ ........ ........ ........ ........ ........ 63% 12.6M 4s 43008K ........ ........ ........ ........ ........ ........ 67% 8.70M 3s 46080K ........ ........ ........ ........ ........ ........ 72% 10.6M 3s 49152K ........ ........ ........ ........ ........ ........ 76% 9.14M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 9.20M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 10.1M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 8.57M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 9.99M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 8.49M 0s 67584K ........ . 100% 1.27M=9.5s 2016-05-09 18:28:00 (7.00 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69853808/69853808] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/is/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/is/Thunderbird 45.1.0.dmg'] --2016-05-09 18:28:01-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/is/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77210337 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:28:01 GMT ETag: "b80bde7b8e9f45b27ca1c73a6289c61f" Last-Modified: Mon, 09 May 2016 20:35:30 GMT x-amz-replication-status: COMPLETED x-amz-version-id: CtySW0Ynt222xCYFzFbXDtsWq8NJSlu1 X-Cache: Miss from cloudfront Via: 1.1 8d667b66bfb5cc8a8898a76f2ecc1d5a.cloudfront.net (CloudFront) X-Amz-Cf-Id: jiehrkbhh9iyAlJa6c7lt-261E-S_OucFFkl5bBRbdZqZ4OAK4vdbw== Length: 77210337 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.67M 42s 3072K ........ ........ ........ ........ ........ ........ 8% 6.14M 26s 6144K ........ ........ ........ ........ ........ ........ 12% 10.1M 19s 9216K ........ ........ ........ ........ ........ ........ 16% 13.0M 14s 12288K ........ ........ ........ ........ ........ ........ 20% 16.2M 12s 15360K ........ ........ ........ ........ ........ ........ 24% 18.8M 10s 18432K ........ ........ ........ ........ ........ ........ 28% 16.7M 8s 21504K ........ ........ ........ ........ ........ ........ 32% 20.1M 7s 24576K ........ ........ ........ ........ ........ ........ 36% 26.7M 6s 27648K ........ ........ ........ ........ ........ ........ 40% 36.1M 5s 30720K ........ ........ ........ ........ ........ ........ 44% 20.0M 5s 33792K ........ ........ ........ ........ ........ ........ 48% 9.83M 4s 36864K ........ ........ ........ ........ ........ ........ 52% 9.12M 4s 39936K ........ ........ ........ ........ ........ ........ 57% 11.7M 4s 43008K ........ ........ ........ ........ ........ ........ 61% 15.8M 3s 46080K ........ ........ ........ ........ ........ ........ 65% 8.05M 3s 49152K ........ ........ ........ ........ ........ ........ 69% 18.3M 2s 52224K ........ ........ ........ ........ ........ ........ 73% 22.7M 2s 55296K ........ ........ ........ ........ ........ ........ 77% 21.8M 2s 58368K ........ ........ ........ ........ ........ ........ 81% 15.5M 1s 61440K ........ ........ ........ ........ ........ ........ 85% 17.7M 1s 64512K ........ ........ ........ ........ ........ ........ 89% 16.1M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 13.9M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 17.6M 0s 73728K ........ ........ ........ .. 100% 16.1M=6.8s 2016-05-09 18:28:08 (10.9 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77210337/77210337] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-is.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/leit-is.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/is.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/is.lproj/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-is.xml PREPARE ADD Contents/Resources/searchplugins/leit-is.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/is.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-is.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/leit-is.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/is.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/is.lproj/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-is.xml EXECUTE ADD Contents/Resources/searchplugins/leit-is.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/is.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-is.xml FINISH REMOVEFILE Contents/Resources/searchplugins/leit-is.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/is.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/is.lproj/ non-fatal error removing directory: Contents/Resources/is.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-is.xml FINISH ADD Contents/Resources/searchplugins/leit-is.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/is.lproj/InfoPlist.strings FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini 13c13 < CrashReporterVendorTitle=Tilkynna hrun til %s --- > CrashReporterVendorTitle=%s hrunskýrsla diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources 76c76 < qIxPhHtOt2D2+qBFeBal5iJnpbY= --- > RK3/wQdvTchTQ/jLg/i9pGJl/AQ= 150c150 < qIxPhHtOt2D2+qBFeBal5iJnpbY= --- > RK3/wQdvTchTQ/jLg/i9pGJl/AQ= Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/is/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/is/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/is/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/is/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/is/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/is/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/is/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/is/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/is/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/is/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,9d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia-is.xml" < remove "Contents/Resources/searchplugins/leit-is.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 58,60c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 89c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 115d106 < rmdir "Contents/Resources/searchplugins/" 121d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < BIsnxw9SytRDk5OR9T3CgNssxQ4= --- > n3E7DtCpCSI7DhkX2dtji00fuTA= 221c221 < kXoX4VkU3nwuyLneiWVuuLCRp7M= --- > BB7xAp1oVpWkZw0yVsXH7mf8k6I= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < vJOI6wWNXw3gGJOMQksGKHGev6w= --- > ZaK1Hku0JJE4xHYIdBksiroCGYI= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < KiHncGgtN2GVc1+EqLkIA17dcn4= --- > JaAdhsB0vqUp1RqS4J5Pc7G+Mcc= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < pU0+s/Wj51hj9pVMSfg+b6UJ3oU= --- > Jh4Xeuq4YQ6Vzn3K0VLntWohjq8= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,623d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/leit-is.xml < < qcw92dzw3YlosnFHRDS/0rAerp0= < < Resources/searchplugins/wikipedia-is.xml < < vNqDEu2iBgFPosBBKtE/Zy1u15U= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 652c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 661c637 < Au2aLv8m/fgh0R0LpIQGXTy9uY0= --- > aOX7aCnyukcEWnTUi6qKVznI8hE= 670c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 679c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 688c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 693c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 697c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 706c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 715c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 724c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 733c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 742c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 751c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 760c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 769c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 778c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 787c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 794c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 798c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 810c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 814c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 818c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 822c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 826c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 830c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 834c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 838c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 842c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 846c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 850c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 854c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 858c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 862c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 866c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 870c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 874c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 878c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 882c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 886c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 890c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 894c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 898c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 902c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 906c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 910c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 914c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 918c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 922c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 926c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 930c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 934c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 938c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 942c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 946c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 950c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 954c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 958c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 962c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 966c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 970c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 974c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 978c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 982c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 986c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 994c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 998c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1002c978 < BIsnxw9SytRDk5OR9T3CgNssxQ4= --- > n3E7DtCpCSI7DhkX2dtji00fuTA= 1006c982 < kXoX4VkU3nwuyLneiWVuuLCRp7M= --- > BB7xAp1oVpWkZw0yVsXH7mf8k6I= 1010c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1014c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1018c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1022c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1026c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1030c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1034c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1038c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1042c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1046c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1050c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1054c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1058c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1062c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1066c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1078c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1082c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1090c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1094c1070 < vJOI6wWNXw3gGJOMQksGKHGev6w= --- > ZaK1Hku0JJE4xHYIdBksiroCGYI= 1098c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1102c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1106c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1110c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1114c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1118c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1122c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1126c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1130c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1134c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1138c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1142c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1146c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1154c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1158c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1162c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1166c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1170c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1172c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1174c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1176c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1178c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1180c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1182c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1184c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1186c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1223c1199 < KiHncGgtN2GVc1+EqLkIA17dcn4= --- > JaAdhsB0vqUp1RqS4J5Pc7G+Mcc= 1227c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1231c1207 < pU0+s/Wj51hj9pVMSfg+b6UJ3oU= --- > Jh4Xeuq4YQ6Vzn3K0VLntWohjq8= 1235c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1385,1408d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/leit-is.xml < < qcw92dzw3YlosnFHRDS/0rAerp0= < < Resources/searchplugins/wikipedia-is.xml < < vNqDEu2iBgFPosBBKtE/Zy1u15U= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48045742 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:28 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48045741 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:28 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48045740 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:28 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48045691 8 -rw-r--r-- 1 cltbld staff 1531 May 9 18:28 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48045690 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:28 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48045689 8 -rw-r--r-- 1 cltbld staff 2569 May 9 18:28 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48045688 8 -rw-r--r-- 1 cltbld staff 1931 May 9 18:28 source/Thunderbird.app/Contents/Resources/searchplugins/leit-is.xml 48045687 8 -rw-r--r-- 1 cltbld staff 1347 May 9 18:28 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-is.xml 48045686 8 -rw-r--r-- 1 cltbld staff 1363 May 9 18:28 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:29:04-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:29:04 GMT Keep-Alive: timeout=5, max=946 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:29:04 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/it/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/it/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:29:05-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/it/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67735606 Connection: keep-alive Date: Tue, 10 May 2016 01:10:21 GMT x-amz-replication-status: COMPLETED x-amz-version-id: dGguUwPNoIj3aRWU9pxWFOYdzKD0J4Ra Last-Modified: Tue, 03 May 2016 15:30:21 GMT ETag: "1be741664432cc0655386231c03966f1" Accept-Ranges: bytes Server: AmazonS3 Age: 1125 X-Cache: Hit from cloudfront Via: 1.1 0ffb9964022445351e635c66ad0176ff.cloudfront.net (CloudFront) X-Amz-Cf-Id: xFADpJU4qCnfrjfFad3zyrHAzGi4IMDMEQNPuUAs7SdLJHSnLX0MqQ== Length: 67735606 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 15.2M 4s 3072K ........ ........ ........ ........ ........ ........ 9% 24.6M 3s 6144K ........ ........ ........ ........ ........ ........ 13% 45.7M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 50.6M 2s 12288K ........ ........ ........ ........ ........ ........ 23% 41.6M 2s 15360K ........ ........ ........ ........ ........ ........ 27% 37.0M 2s 18432K ........ ........ ........ ........ ........ ........ 32% 40.8M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 43.5M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 48.7M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 42.4M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 41.2M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 43.3M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 38.3M 1s 39936K ........ ........ ........ ........ ........ ........ 65% 54.1M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 52.9M 1s 46080K ........ ........ ........ ........ ........ ........ 74% 47.2M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 37.4M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 32.5M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 36.4M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 46.4M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 51.6M 0s 64512K ........ ........ ........ . 100% 36.8M=1.7s 2016-05-09 18:29:07 (38.2 MB/s) - 'update/complete.mar' saved [67735606/67735606] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/it/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/it/Thunderbird 38.6.0.dmg'] --2016-05-09 18:29:08-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/it/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69770179 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:29:09 GMT ETag: "2cb365e479368c6f923aa695c51c1327" Last-Modified: Fri, 12 Feb 2016 21:49:14 GMT x-amz-replication-status: COMPLETED x-amz-version-id: MGyvywRgWLmJbcmJMsQ0YE6xuhzLIHpK X-Cache: Miss from cloudfront Via: 1.1 296faebadd40feee8b2eb0e10d5786d2.cloudfront.net (CloudFront) X-Amz-Cf-Id: zd0DLeyyo90CLG_vDfGU9Cr_KxM-mot-sXMhCPVz5tlPqDmrFTWT8Q== Length: 69770179 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.46M 43s 3072K ........ ........ ........ ........ ........ ........ 9% 2.80M 32s 6144K ........ ........ ........ ........ ........ ........ 13% 4.48M 24s 9216K ........ ........ ........ ........ ........ ........ 18% 4.63M 20s 12288K ........ ........ ........ ........ ........ ........ 22% 4.96M 17s 15360K ........ ........ ........ ........ ........ ........ 27% 4.66M 15s 18432K ........ ........ ........ ........ ........ ........ 31% 4.77M 14s 21504K ........ ........ ........ ........ ........ ........ 36% 4.71M 12s 24576K ........ ........ ........ ........ ........ ........ 40% 5.11M 11s 27648K ........ ........ ........ ........ ........ ........ 45% 4.60M 10s 30720K ........ ........ ........ ........ ........ ........ 49% 5.09M 9s 33792K ........ ........ ........ ........ ........ ........ 54% 5.97M 8s 36864K ........ ........ ........ ........ ........ ........ 58% 7.21M 7s 39936K ........ ........ ........ ........ ........ ........ 63% 7.80M 6s 43008K ........ ........ ........ ........ ........ ........ 67% 8.76M 5s 46080K ........ ........ ........ ........ ........ ........ 72% 10.3M 4s 49152K ........ ........ ........ ........ ........ ........ 76% 10.9M 3s 52224K ........ ........ ........ ........ ........ ........ 81% 11.2M 3s 55296K ........ ........ ........ ........ ........ ........ 85% 11.5M 2s 58368K ........ ........ ........ ........ ........ ........ 90% 13.6M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 12.6M 1s 64512K ........ ........ ........ ........ ........ ........ 99% 15.0M 0s 67584K ........ 100% 20.9M=12s 2016-05-09 18:29:21 (5.45 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69770179/69770179] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/it/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/it/Thunderbird 45.1.0.dmg'] --2016-05-09 18:29:22-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/it/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77065520 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:29:22 GMT ETag: "67b68d188226c0432786eaf1b5def6fd" Last-Modified: Mon, 09 May 2016 20:59:39 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 0RiGPY0H5Py683UVEU_oCQBIJ2vMlp.3 X-Cache: Miss from cloudfront Via: 1.1 d01884a3320364227d925bce1a38f0ad.cloudfront.net (CloudFront) X-Amz-Cf-Id: FDcM-oTGkZDWeCwip90n3cd_fJVCu-eQ7KzBMMEx_gYFfQrzsVkyyQ== Length: 77065520 (73M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.61M 44s 3072K ........ ........ ........ ........ ........ ........ 8% 5.31M 27s 6144K ........ ........ ........ ........ ........ ........ 12% 8.17M 20s 9216K ........ ........ ........ ........ ........ ........ 16% 10.5M 16s 12288K ........ ........ ........ ........ ........ ........ 20% 14.2M 13s 15360K ........ ........ ........ ........ ........ ........ 24% 14.6M 11s 18432K ........ ........ ........ ........ ........ ........ 28% 16.3M 9s 21504K ........ ........ ........ ........ ........ ........ 32% 13.2M 8s 24576K ........ ........ ........ ........ ........ ........ 36% 7.62M 7s 27648K ........ ........ ........ ........ ........ ........ 40% 10.8M 7s 30720K ........ ........ ........ ........ ........ ........ 44% 18.4M 6s 33792K ........ ........ ........ ........ ........ ........ 48% 15.5M 5s 36864K ........ ........ ........ ........ ........ ........ 53% 23.0M 4s 39936K ........ ........ ........ ........ ........ ........ 57% 7.79M 4s 43008K ........ ........ ........ ........ ........ ........ 61% 5.43M 4s 46080K ........ ........ ........ ........ ........ ........ 65% 7.71M 3s 49152K ........ ........ ........ ........ ........ ........ 69% 10.1M 3s 52224K ........ ........ ........ ........ ........ ........ 73% 10.7M 3s 55296K ........ ........ ........ ........ ........ ........ 77% 8.72M 2s 58368K ........ ........ ........ ........ ........ ........ 81% 16.1M 2s 61440K ........ ........ ........ ........ ........ ........ 85% 21.5M 1s 64512K ........ ........ ........ ........ ........ ........ 89% 12.7M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 14.5M 1s 70656K ........ ........ ........ ........ ........ ........ 97% 11.9M 0s 73728K ........ ........ ....... 100% 14.5M=8.4s 2016-05-09 18:29:31 (8.71 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77065520/77065520] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-it.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-it.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay-it.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazon-it.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/it.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/it.lproj/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo-it.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-it.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/eBay-it.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/amazon-it.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/it.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-it.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-it.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay-it.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazon-it.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/it.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/it.lproj/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo-it.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-it.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/eBay-it.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/amazon-it.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/it.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-it.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-it.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay-it.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazon-it.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/it.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/it.lproj/ non-fatal error removing directory: Contents/Resources/it.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo-it.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-it.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/eBay-it.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/amazon-it.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/it.lproj/InfoPlist.strings FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini 21c21 < EmailGrayText=Inserire l’indirizzo email --- > EmailGrayText=Inserisci l’indirizzo email diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources 76c76 < q7roezv1UE9ANWimY13kfp5lYN4= --- > 2uzd55JuBjgH94fJkKHEFcOIMV8= 150c150 < q7roezv1UE9ANWimY13kfp5lYN4= --- > 2uzd55JuBjgH94fJkKHEFcOIMV8= Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/it/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/it/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/it/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/it/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/it/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/it/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/it/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/it/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/it/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/it/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo-it.xml" < remove "Contents/Resources/searchplugins/wikipedia-it.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/eBay-it.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/amazon-it.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d106 < rmdir "Contents/Resources/searchplugins/" 122d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < l3bidwalRdc7ZHxyTQr2ftcrdjM= --- > z4JAdlIYZgPhwNZr2Qv2fuxIYkY= 221c221 < 7kc2VlIi1wsReE+2YDAEK2cAh64= --- > 48XbVCknjHx085ji4lfvqglgIx0= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < hqH7kOq2pZh/9tS7BmtRwEXP7Fk= --- > 61m1klXA919P1pkBvINgtVqO4LE= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < YwVV4mhtWioabrsUAT2QdxQK1WI= --- > EeUbUJWsRAgtUvcUlQnfLlCIxAs= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < usbzZ72TaL3sIW/zSVRmRBAK7S8= --- > SKkGbhW+UbCJMUm9WKJ0VSuimbI= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,627d599 < Resources/searchplugins/amazon-it.xml < < XxJ2uCnA2cO6gCeYT5xqrB2soTE= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay-it.xml < < bGsnJCXQPcJR1iALJQchZKU95xg= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-it.xml < < z/YqztG1ymZuAoszkThBfPWAteY= < < Resources/searchplugins/yahoo-it.xml < < 9qlySTJw5zEWqXiPbtf5jl70Js8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < Selj/n2dHkHxue5ag3vpRn3cwBM= --- > Gb6Ii3LHgjoLc7qhuHLveBBHcgI= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c978 < l3bidwalRdc7ZHxyTQr2ftcrdjM= --- > z4JAdlIYZgPhwNZr2Qv2fuxIYkY= 1010c982 < 7kc2VlIi1wsReE+2YDAEK2cAh64= --- > 48XbVCknjHx085ji4lfvqglgIx0= 1014c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1070 < hqH7kOq2pZh/9tS7BmtRwEXP7Fk= --- > 61m1klXA919P1pkBvINgtVqO4LE= 1102c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1176c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1178c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1180c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1182c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1184c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1186c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1188c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1190c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1227c1199 < YwVV4mhtWioabrsUAT2QdxQK1WI= --- > EeUbUJWsRAgtUvcUlQnfLlCIxAs= 1231c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1235c1207 < usbzZ72TaL3sIW/zSVRmRBAK7S8= --- > SKkGbhW+UbCJMUm9WKJ0VSuimbI= 1239c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1389,1416d1360 < Resources/searchplugins/amazon-it.xml < < XxJ2uCnA2cO6gCeYT5xqrB2soTE= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay-it.xml < < bGsnJCXQPcJR1iALJQchZKU95xg= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-it.xml < < z/YqztG1ymZuAoszkThBfPWAteY= < < Resources/searchplugins/yahoo-it.xml < < 9qlySTJw5zEWqXiPbtf5jl70Js8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48046491 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:30 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48046490 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:30 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48046489 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:30 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48046440 8 -rw-r--r-- 1 cltbld staff 1556 May 9 18:30 source/Thunderbird.app/Contents/Resources/searchplugins/amazon-it.xml 48046439 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:30 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48046438 8 -rw-r--r-- 1 cltbld staff 957 May 9 18:30 source/Thunderbird.app/Contents/Resources/searchplugins/eBay-it.xml 48046437 8 -rw-r--r-- 1 cltbld staff 2371 May 9 18:30 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48046436 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:30 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48046435 8 -rw-r--r-- 1 cltbld staff 1344 May 9 18:30 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-it.xml 48046434 8 -rw-r--r-- 1 cltbld staff 1108 May 9 18:30 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-it.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:30:27-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:30:27 GMT Keep-Alive: timeout=5, max=971 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 606 Length: 606 [text/xml] Saving to: 'update.xml' 0K 100% 82.6M=0s 2016-05-09 18:30:27 (82.6 MB/s) - 'update.xml' saved [606/606] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ja-JP-mac/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ja-JP-mac/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:30:27-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ja-JP-mac/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68120079 Connection: keep-alive Date: Tue, 10 May 2016 01:10:30 GMT x-amz-replication-status: COMPLETED x-amz-version-id: v3.uWc5a36pGdf9euoKfiIwK8j5L4yFM Last-Modified: Tue, 03 May 2016 15:43:35 GMT ETag: "9a9388e5b8eda3f4a03ecdb820b498ce" Accept-Ranges: bytes Server: AmazonS3 Age: 1198 X-Cache: Hit from cloudfront Via: 1.1 0576b942ae9f4fc9c0b62b0736e9bfd6.cloudfront.net (CloudFront) X-Amz-Cf-Id: AjtwdsExpOaQEHL1gqrFD2LIleCRkTkXXotOXtN_hXfhtXVDC6iUSg== Length: 68120079 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 47.8M 1s 3072K ........ ........ ........ ........ ........ ........ 9% 85.1M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 106M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 99.8M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 111M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 99.8M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 99.7M 1s 21504K ........ ........ ........ ........ ........ ........ 36% 99.8M 0s 24576K ........ ........ ........ ........ ........ ........ 41% 112M 0s 27648K ........ ........ ........ ........ ........ ........ 46% 105M 0s 30720K ........ ........ ........ ........ ........ ........ 50% 109M 0s 33792K ........ ........ ........ ........ ........ ........ 55% 97.7M 0s 36864K ........ ........ ........ ........ ........ ........ 60% 93.7M 0s 39936K ........ ........ ........ ........ ........ ........ 64% 86.8M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 92.0M 0s 46080K ........ ........ ........ ........ ........ ........ 73% 79.4M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 104M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 56.9M 0s 55296K ........ ........ ........ ........ ........ ........ 87% 78.7M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 81.3M 0s 61440K ........ ........ ........ ........ ........ ........ 96% 84.6M 0s 64512K ........ ........ ........ ....... 100% 82.7M=0.7s 2016-05-09 18:30:28 (87.8 MB/s) - 'update/complete.mar' saved [68120079/68120079] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ja-JP-mac/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ja-JP-mac/Thunderbird 38.6.0.dmg'] --2016-05-09 18:30:30-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ja-JP-mac/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70124508 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:30:31 GMT ETag: "c81ea0d3d0ec310ef113808cfa9ebe45" Last-Modified: Fri, 12 Feb 2016 21:49:16 GMT x-amz-replication-status: COMPLETED x-amz-version-id: j1XmwI7c5pWTT2cLzGRm7Kz5w6e6dTjV X-Cache: Miss from cloudfront Via: 1.1 bfdd5909914586f5bc4851846228c27f.cloudfront.net (CloudFront) X-Amz-Cf-Id: HSoX5Mq8gPSw1tCm_unyLEb_a4FbP9Len12XPEk_5gOJ7gvmI1PF2A== Length: 70124508 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.58M 40s 3072K ........ ........ ........ ........ ........ ........ 8% 5.81M 24s 6144K ........ ........ ........ ........ ........ ........ 13% 7.47M 18s 9216K ........ ........ ........ ........ ........ ........ 17% 7.90M 15s 12288K ........ ........ ........ ........ ........ ........ 22% 9.82M 12s 15360K ........ ........ ........ ........ ........ ........ 26% 8.19M 10s 18432K ........ ........ ........ ........ ........ ........ 31% 11.4M 9s 21504K ........ ........ ........ ........ ........ ........ 35% 9.29M 8s 24576K ........ ........ ........ ........ ........ ........ 40% 6.64M 7s 27648K ........ ........ ........ ........ ........ ........ 44% 14.3M 6s 30720K ........ ........ ........ ........ ........ ........ 49% 9.59M 6s 33792K ........ ........ ........ ........ ........ ........ 53% 9.52M 5s 36864K ........ ........ ........ ........ ........ ........ 58% 8.54M 4s 39936K ........ ........ ........ ........ ........ ........ 62% 9.62M 4s 43008K ........ ........ ........ ........ ........ ........ 67% 9.69M 3s 46080K ........ ........ ........ ........ ........ ........ 71% 9.75M 3s 49152K ........ ........ ........ ........ ........ ........ 76% 9.74M 2s 52224K ........ ........ ........ ........ ........ ........ 80% 8.28M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 9.73M 1s 58368K ........ ........ ........ ........ ........ ........ 89% 9.63M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 9.95M 1s 64512K ........ ........ ........ ........ ........ ........ 98% 9.41M 0s 67584K ........ ...... 100% 10.2M=9.0s 2016-05-09 18:30:40 (7.42 MB/s) - 'Thunderbird 38.6.0.dmg' saved [70124508/70124508] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ja-JP-mac/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ja-JP-mac/Thunderbird 45.1.0.dmg'] --2016-05-09 18:30:40-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ja-JP-mac/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77519403 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:30:41 GMT ETag: "762fe8770f542c45f40a5df02a78c69c" Last-Modified: Mon, 09 May 2016 21:23:48 GMT x-amz-replication-status: COMPLETED x-amz-version-id: kriWlx0ALGKxYnPE2qOtbnhID.PEfgO0 X-Cache: Miss from cloudfront Via: 1.1 296faebadd40feee8b2eb0e10d5786d2.cloudfront.net (CloudFront) X-Amz-Cf-Id: lSZPX2pWITMc7N8AeeyzIBG_iBX3sAOgC2phy2m-hCBFq2TWtAf5rQ== Length: 77519403 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.57M 45s 3072K ........ ........ ........ ........ ........ ........ 8% 5.64M 28s 6144K ........ ........ ........ ........ ........ ........ 12% 8.69M 20s 9216K ........ ........ ........ ........ ........ ........ 16% 13.0M 16s 12288K ........ ........ ........ ........ ........ ........ 20% 14.8M 13s 15360K ........ ........ ........ ........ ........ ........ 24% 18.1M 11s 18432K ........ ........ ........ ........ ........ ........ 28% 16.0M 9s 21504K ........ ........ ........ ........ ........ ........ 32% 23.9M 8s 24576K ........ ........ ........ ........ ........ ........ 36% 13.4M 7s 27648K ........ ........ ........ ........ ........ ........ 40% 14.4M 6s 30720K ........ ........ ........ ........ ........ ........ 44% 10.9M 5s 33792K ........ ........ ........ ........ ........ ........ 48% 12.5M 5s 36864K ........ ........ ........ ........ ........ ........ 52% 16.4M 4s 39936K ........ ........ ........ ........ ........ ........ 56% 18.1M 4s 43008K ........ ........ ........ ........ ........ ........ 60% 18.8M 3s 46080K ........ ........ ........ ........ ........ ........ 64% 18.6M 3s 49152K ........ ........ ........ ........ ........ ........ 68% 13.6M 2s 52224K ........ ........ ........ ........ ........ ........ 73% 24.3M 2s 55296K ........ ........ ........ ........ ........ ........ 77% 15.0M 2s 58368K ........ ........ ........ ........ ........ ........ 81% 16.6M 1s 61440K ........ ........ ........ ........ ........ ........ 85% 16.6M 1s 64512K ........ ........ ........ ........ ........ ........ 89% 19.7M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 16.6M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 17.8M 0s 73728K ........ ........ ........ ...... 100% 17.6M=6.8s 2016-05-09 18:30:48 (10.8 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77519403/77519403] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-jp.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo-jp-auctions.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ja.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter-ja.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/rakuten.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/oshiete-goo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google-jp.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazon-jp.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/ja.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/en-US.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/en-US.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/ja.lproj/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo-jp.xml PREPARE ADD Contents/Resources/searchplugins/yahoo-jp-auctions.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-ja.xml PREPARE ADD Contents/Resources/searchplugins/twitter-ja.xml PREPARE ADD Contents/Resources/searchplugins/rakuten.xml PREPARE ADD Contents/Resources/searchplugins/oshiete-goo.xml PREPARE ADD Contents/Resources/searchplugins/google-jp.xml PREPARE ADD Contents/Resources/searchplugins/amazon-jp.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/ja.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/en-US.dic PREPARE ADD Contents/Resources/dictionaries/en-US.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-jp.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo-jp-auctions.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ja.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter-ja.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/rakuten.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/oshiete-goo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google-jp.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazon-jp.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/ja.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/en-US.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/en-US.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/ja.lproj/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo-jp.xml EXECUTE ADD Contents/Resources/searchplugins/yahoo-jp-auctions.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-ja.xml EXECUTE ADD Contents/Resources/searchplugins/twitter-ja.xml EXECUTE ADD Contents/Resources/searchplugins/rakuten.xml EXECUTE ADD Contents/Resources/searchplugins/oshiete-goo.xml EXECUTE ADD Contents/Resources/searchplugins/google-jp.xml EXECUTE ADD Contents/Resources/searchplugins/amazon-jp.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/ja.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/en-US.dic EXECUTE ADD Contents/Resources/dictionaries/en-US.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-jp.xml FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo-jp-auctions.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-ja.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter-ja.xml FINISH REMOVEFILE Contents/Resources/searchplugins/rakuten.xml FINISH REMOVEFILE Contents/Resources/searchplugins/oshiete-goo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google-jp.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazon-jp.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/ja.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/en-US.dic FINISH REMOVEFILE Contents/Resources/dictionaries/en-US.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ja.lproj/ non-fatal error removing directory: Contents/Resources/ja.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo-jp.xml FINISH ADD Contents/Resources/searchplugins/yahoo-jp-auctions.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-ja.xml FINISH ADD Contents/Resources/searchplugins/twitter-ja.xml FINISH ADD Contents/Resources/searchplugins/rakuten.xml FINISH ADD Contents/Resources/searchplugins/oshiete-goo.xml FINISH ADD Contents/Resources/searchplugins/google-jp.xml FINISH ADD Contents/Resources/searchplugins/amazon-jp.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/ja.lproj/InfoPlist.strings FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/en-US.dic FINISH ADD Contents/Resources/dictionaries/en-US.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/ja-JP-mac/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/ja-JP-mac/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/ja-JP-mac/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/ja-JP-mac/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/ja-JP-mac/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/ja-JP-mac/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/ja-JP-mac/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/ja-JP-mac/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/ja-JP-mac/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/ja-JP-mac/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,11d3 < remove "Contents/Resources/searchplugins/yahoo-jp.xml" < remove "Contents/Resources/searchplugins/yahoo-jp-auctions.xml" < remove "Contents/Resources/searchplugins/wikipedia-ja.xml" < remove "Contents/Resources/searchplugins/twitter-ja.xml" < remove "Contents/Resources/searchplugins/rakuten.xml" < remove "Contents/Resources/searchplugins/oshiete-goo.xml" < remove "Contents/Resources/searchplugins/google-jp.xml" < remove "Contents/Resources/searchplugins/amazon-jp.xml" 60,62c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 93c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 119d108 < rmdir "Contents/Resources/searchplugins/" 125d113 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < r15/X3L7O0SIIlMA3SFifGTgFZw= --- > ekhrEGhSShgZkNyeeTgRn92DYDg= 229c229 < V506ckF+GC7VJk7qCm45oqMaIIo= --- > XcajK1+z55sHkNQQ75kPsj1xMXw= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < yTcNm6Bx7lIIYdBUASl1yFZBpjY= --- > R7wYS5yEa+ULj6DnrKcewRRT6hY= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 395c395 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 397c397 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 401c401 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 403c403 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 405c405 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 409c409 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 446c446 < T1vz6x0VIC92LS9gwBfos+gRuCg= --- > JyiXH6hH2EA9o8VpiHnYspCz0oU= 450c450 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 454c454 < OwRonlUkkA3JDrKsMNaSXCmSqTU= --- > e21zRl7duIfcpqWLoflKk2dN5nA= 458c458 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,639d607 < Resources/searchplugins/amazon-jp.xml < < WRjyEjSum1CY3raho+NlbzchaaY= < < Resources/searchplugins/google-jp.xml < < URRJpc8z68n+2vWzZYMs6PLKu0M= < < Resources/searchplugins/oshiete-goo.xml < < mkQdQKYqCwBT9nz9r9VFFFCUhfE= < < Resources/searchplugins/rakuten.xml < < UHNcEB3PrnLWFMJC0BURNe4vz4c= < < Resources/searchplugins/twitter-ja.xml < < E/s9+36JOUa78IZJkbUGLUnLjRg= < < Resources/searchplugins/wikipedia-ja.xml < < H8hjvV4Gsqw2jdA/22x/ZIenvRA= < < Resources/searchplugins/yahoo-jp-auctions.xml < < PJd9qBh17Hp+AQP1QeZuEA3YiW4= < < Resources/searchplugins/yahoo-jp.xml < < gLkiQTX604ixeJbKDR3yAXL9OqQ= < 668c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 677c645 < dWhVb+g8YWEyF55UkU3kDAr9s5M= --- > f7ZkcWbz88pPFt3SEcsm7d7ZlB0= 686c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 695c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 704c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 709c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 713c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 722c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 731c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 740c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 749c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 758c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 767c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 776c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 785c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 794c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 803c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 810c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 814c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 826c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 838c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 842c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 846c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 850c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 854c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 858c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 862c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 866c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 870c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 874c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 878c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 882c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 886c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 890c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 894c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 898c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 902c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 906c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 910c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 914c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 918c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 922c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 926c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 930c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 934c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 938c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 942c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 946c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 950c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 954c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 958c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 962c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 966c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 970c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 974c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 978c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 982c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 986c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 990c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 994c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 998c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 1002c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 1006c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1010c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1018c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1022c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1026c994 < r15/X3L7O0SIIlMA3SFifGTgFZw= --- > ekhrEGhSShgZkNyeeTgRn92DYDg= 1030c998 < V506ckF+GC7VJk7qCm45oqMaIIo= --- > XcajK1+z55sHkNQQ75kPsj1xMXw= 1034c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1038c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1042c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1046c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1050c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1054c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1058c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1062c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1066c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1070c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1074c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1078c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1082c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1086c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1090c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1102c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1106c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1114c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1118c1086 < yTcNm6Bx7lIIYdBUASl1yFZBpjY= --- > R7wYS5yEa+ULj6DnrKcewRRT6hY= 1122c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1126c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1130c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1134c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1138c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1142c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1146c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1150c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1154c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1158c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1162c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1166c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1170c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1178c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1182c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1186c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1190c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1194c1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1196c1164 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1198c1166 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1200c1168 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1202c1170 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1204c1172 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1206c1174 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1208c1176 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1210c1178 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1247c1215 < T1vz6x0VIC92LS9gwBfos+gRuCg= --- > JyiXH6hH2EA9o8VpiHnYspCz0oU= 1251c1219 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1255c1223 < OwRonlUkkA3JDrKsMNaSXCmSqTU= --- > e21zRl7duIfcpqWLoflKk2dN5nA= 1259c1227 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1409,1440d1376 < Resources/searchplugins/amazon-jp.xml < < WRjyEjSum1CY3raho+NlbzchaaY= < < Resources/searchplugins/google-jp.xml < < URRJpc8z68n+2vWzZYMs6PLKu0M= < < Resources/searchplugins/oshiete-goo.xml < < mkQdQKYqCwBT9nz9r9VFFFCUhfE= < < Resources/searchplugins/rakuten.xml < < UHNcEB3PrnLWFMJC0BURNe4vz4c= < < Resources/searchplugins/twitter-ja.xml < < E/s9+36JOUa78IZJkbUGLUnLjRg= < < Resources/searchplugins/wikipedia-ja.xml < < H8hjvV4Gsqw2jdA/22x/ZIenvRA= < < Resources/searchplugins/yahoo-jp-auctions.xml < < PJd9qBh17Hp+AQP1QeZuEA3YiW4= < < Resources/searchplugins/yahoo-jp.xml < < gLkiQTX604ixeJbKDR3yAXL9OqQ= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48047247 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:31 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48047246 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:31 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48047245 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:31 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48047196 8 -rw-r--r-- 1 cltbld staff 2025 May 9 18:31 source/Thunderbird.app/Contents/Resources/searchplugins/amazon-jp.xml 48047195 8 -rw-r--r-- 1 cltbld staff 2933 May 9 18:31 source/Thunderbird.app/Contents/Resources/searchplugins/google-jp.xml 48047194 8 -rw-r--r-- 1 cltbld staff 2521 May 9 18:31 source/Thunderbird.app/Contents/Resources/searchplugins/oshiete-goo.xml 48047193 8 -rw-r--r-- 1 cltbld staff 988 May 9 18:31 source/Thunderbird.app/Contents/Resources/searchplugins/rakuten.xml 48047192 8 -rw-r--r-- 1 cltbld staff 2280 May 9 18:31 source/Thunderbird.app/Contents/Resources/searchplugins/twitter-ja.xml 48047191 8 -rw-r--r-- 1 cltbld staff 1401 May 9 18:31 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-ja.xml 48047190 8 -rw-r--r-- 1 cltbld staff 973 May 9 18:31 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-jp-auctions.xml 48047189 8 -rw-r--r-- 1 cltbld staff 879 May 9 18:31 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo-jp.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:31:44-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:31:44 GMT Keep-Alive: timeout=5, max=989 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:31:44 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ko/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ko/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:31:44-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ko/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67854308 Connection: keep-alive Date: Tue, 10 May 2016 01:10:38 GMT x-amz-replication-status: COMPLETED x-amz-version-id: QJ1xfaMx.3HOTzjZlVFeXRDhii7pyTnw Last-Modified: Tue, 03 May 2016 15:56:47 GMT ETag: "59078118a53b0469a8f81f48409ff43e" Accept-Ranges: bytes Server: AmazonS3 Age: 1267 X-Cache: Hit from cloudfront Via: 1.1 bfdd5909914586f5bc4851846228c27f.cloudfront.net (CloudFront) X-Amz-Cf-Id: d91Owlu743Q_f-Xrp5cQ52cW9ovje7aodHwluj39Di61rzqMIxmP0w== Length: 67854308 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 28.7M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 52.5M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 64.2M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 66.1M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 48.8M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 59.1M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 90.7M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 54.3M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 42.7M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 53.4M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 69.7M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 80.6M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 31.1M 0s 39936K ........ ........ ........ ........ ........ ........ 64% 61.5M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 45.8M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 28.7M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 25.8M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 54.9M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 54.1M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 67.1M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 59.3M 0s 64512K ........ ........ ........ ... 100% 35.9M=1.3s 2016-05-09 18:31:46 (48.1 MB/s) - 'update/complete.mar' saved [67854308/67854308] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ko/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ko/Thunderbird 38.6.0.dmg'] --2016-05-09 18:31:47-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/ko/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69873390 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:31:48 GMT ETag: "13b5a606f42dbe024d42b07a23421591" Last-Modified: Fri, 12 Feb 2016 21:49:19 GMT x-amz-replication-status: COMPLETED x-amz-version-id: EX_EnRB2BaEYRj6EqHfG88nWW88XbP3p X-Cache: Miss from cloudfront Via: 1.1 4a7b695b8ae560fe9087da065a2b7812.cloudfront.net (CloudFront) X-Amz-Cf-Id: i0NBymBfsJhrqp1ncYB53bAGRINM5fvQIp3RZ2Plak91InujLsPwiA== Length: 69873390 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.83M 35s 3072K ........ ........ ........ ........ ........ ........ 9% 7.64M 21s 6144K ........ ........ ........ ........ ........ ........ 13% 9.63M 15s 9216K ........ ........ ........ ........ ........ ........ 18% 12.5M 12s 12288K ........ ........ ........ ........ ........ ........ 22% 12.9M 10s 15360K ........ ........ ........ ........ ........ ........ 27% 15.3M 8s 18432K ........ ........ ........ ........ ........ ........ 31% 14.0M 7s 21504K ........ ........ ........ ........ ........ ........ 36% 20.1M 6s 24576K ........ ........ ........ ........ ........ ........ 40% 19.9M 5s 27648K ........ ........ ........ ........ ........ ........ 45% 19.7M 4s 30720K ........ ........ ........ ........ ........ ........ 49% 26.2M 4s 33792K ........ ........ ........ ........ ........ ........ 54% 24.5M 3s 36864K ........ ........ ........ ........ ........ ........ 58% 29.3M 3s 39936K ........ ........ ........ ........ ........ ........ 63% 31.0M 2s 43008K ........ ........ ........ ........ ........ ........ 67% 25.9M 2s 46080K ........ ........ ........ ........ ........ ........ 72% 30.1M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 24.7M 1s 52224K ........ ........ ........ ........ ........ ........ 81% 44.9M 1s 55296K ........ ........ ........ ........ ........ ........ 85% 36.3M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 43.9M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 25.3M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 56.4M 0s 67584K ........ .. 100% 38.3M=4.9s 2016-05-09 18:31:53 (13.7 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69873390/69873390] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ko/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ko/Thunderbird 45.1.0.dmg'] --2016-05-09 18:31:53-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/ko/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77245173 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:31:54 GMT ETag: "bed2d663d5b3147d59313d383f30cd19" Last-Modified: Mon, 09 May 2016 21:46:01 GMT x-amz-replication-status: COMPLETED x-amz-version-id: nTrRjYX_gRcwFzTy2w7X.0m2qKeK.rzI X-Cache: Miss from cloudfront Via: 1.1 990c804118e679d7ea0f4d3ca3cc4534.cloudfront.net (CloudFront) X-Amz-Cf-Id: Pfs1RJzAmnpFgQKCcsJoNq4YoMua0qT2VPYchnPk95hS0NMp0794QA== Length: 77245173 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.54M 46s 3072K ........ ........ ........ ........ ........ ........ 8% 7.60M 26s 6144K ........ ........ ........ ........ ........ ........ 12% 10.1M 19s 9216K ........ ........ ........ ........ ........ ........ 16% 11.4M 15s 12288K ........ ........ ........ ........ ........ ........ 20% 11.7M 12s 15360K ........ ........ ........ ........ ........ ........ 24% 14.7M 10s 18432K ........ ........ ........ ........ ........ ........ 28% 16.1M 9s 21504K ........ ........ ........ ........ ........ ........ 32% 16.5M 8s 24576K ........ ........ ........ ........ ........ ........ 36% 6.16M 7s 27648K ........ ........ ........ ........ ........ ........ 40% 72.2M 6s 30720K ........ ........ ........ ........ ........ ........ 44% 23.3M 5s 33792K ........ ........ ........ ........ ........ ........ 48% 10.5M 5s 36864K ........ ........ ........ ........ ........ ........ 52% 8.76M 4s 39936K ........ ........ ........ ........ ........ ........ 57% 9.61M 4s 43008K ........ ........ ........ ........ ........ ........ 61% 8.83M 4s 46080K ........ ........ ........ ........ ........ ........ 65% 10.0M 3s 49152K ........ ........ ........ ........ ........ ........ 69% 10.0M 3s 52224K ........ ........ ........ ........ ........ ........ 73% 8.94M 2s 55296K ........ ........ ........ ........ ........ ........ 77% 9.95M 2s 58368K ........ ........ ........ ........ ........ ........ 81% 8.86M 2s 61440K ........ ........ ........ ........ ........ ........ 85% 9.83M 1s 64512K ........ ........ ........ ........ ........ ........ 89% 10.3M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 8.72M 1s 70656K ........ ........ ........ ........ ........ ........ 97% 10.0M 0s 73728K ........ ........ ........ .. 100% 9.45M=8.7s 2016-05-09 18:32:03 (8.51 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77245173/77245173] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-kr.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/naver-kr.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/daum-kr.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/danawa-kr.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/ko.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/ko.lproj/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/wikipedia-kr.xml PREPARE ADD Contents/Resources/searchplugins/naver-kr.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/daum-kr.xml PREPARE ADD Contents/Resources/searchplugins/danawa-kr.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/ko.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-kr.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/naver-kr.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/daum-kr.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/danawa-kr.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/ko.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/ko.lproj/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/wikipedia-kr.xml EXECUTE ADD Contents/Resources/searchplugins/naver-kr.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/daum-kr.xml EXECUTE ADD Contents/Resources/searchplugins/danawa-kr.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/ko.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-kr.xml FINISH REMOVEFILE Contents/Resources/searchplugins/naver-kr.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/daum-kr.xml FINISH REMOVEFILE Contents/Resources/searchplugins/danawa-kr.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/ko.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ko.lproj/ non-fatal error removing directory: Contents/Resources/ko.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/wikipedia-kr.xml FINISH ADD Contents/Resources/searchplugins/naver-kr.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/daum-kr.xml FINISH ADD Contents/Resources/searchplugins/danawa-kr.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/ko.lproj/InfoPlist.strings FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini 1,3c1,3 < ; This Source Code Form is subject to the terms of the Mozilla Public < ; License, v. 2.0. If a copy of the MPL was not distributed with this < ; file, You can obtain one at http://mozilla.org/MPL/2.0/. --- > # This Source Code Form is subject to the terms of the Mozilla Public > # License, v. 2.0. If a copy of the MPL was not distributed with this > # file, You can obtain one at http://mozilla.org/MPL/2.0/. 6a7,10 > # LOCALIZATION NOTE (isRTL): > # Leave this entry empty unless your language requires right-to-left layout, > # for example like Arabic, Hebrew, Persian. If your language needs RTL, please > # use the untranslated English word "yes" as value 8d11 < 12,13c15 < < # LOCALIZATION NOTE (CrashReporterError): %s is replaced with another string containing detailed information. --- > # LOCALIZATION NOTE (CrashReporterErrorText): %s is replaced with another string containing detailed information. 15d16 < 19d19 < 24d23 < 26d24 < 29d26 < 60a58 > # LOCALIZATION NOTE (ErrorEndOfLife): The %s is replaced with the product name. 61a60 > diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources 76c76 < Vw6m24prX+QKyaAtPxqqUUFnUas= --- > EMz/4XHcD4nHHP+5sSZ3mV+ehac= 150c150 < Vw6m24prX+QKyaAtPxqqUUFnUas= --- > EMz/4XHcD4nHHP+5sSZ3mV+ehac= Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/ko/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/ko/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/ko/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/ko/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/ko/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/ko/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/ko/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/ko/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/ko/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/ko/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,8d3 < remove "Contents/Resources/searchplugins/wikipedia-kr.xml" < remove "Contents/Resources/searchplugins/naver-kr.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/daum-kr.xml" < remove "Contents/Resources/searchplugins/danawa-kr.xml" 57,59c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 88c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 114d106 < rmdir "Contents/Resources/searchplugins/" 120d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < iLirl8fTfpirA7WVUovcpKuj510= --- > /Y0sr6Lljplv16Gs7JLa8DqpXYg= 221c221 < 8rdaSRB3mPNEpjmjgBpOUmpz1Mg= --- > /3jxijMTnfIUtbqIjERDm+Kr7VM= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < 0gEEJzYxXLsqK8sU4NQuOQ+25jY= --- > XJL1Vfqmw5z6J9dhey5tDrcXtbQ= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < cnUqY4IAf40hwYN6p12V10vuAKw= --- > YzoNQEU5AWfuYbIj/n/sY8vAhrs= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < KfLdRud1cVmQ9RuV88/ekcEUIC0= --- > mh8FeK5J/a8GcbOKHkIJdLPb5Iw= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,619d599 < Resources/searchplugins/danawa-kr.xml < < XWZH2u6GrGi66q/2ddjBZ3nrIx8= < < Resources/searchplugins/daum-kr.xml < < FdGt514ZDQaIoUVeKFw2e5D7RL8= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/naver-kr.xml < < mJlubaqmOZlkj5YFoA8C6hH9/mI= < < Resources/searchplugins/wikipedia-kr.xml < < lz8rtEZoJIcqXQJRgxCzVM+ZZKY= < 648c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 657c637 < USjCbSVRuhY0V4jGMBn60w6/onI= --- > ZOkZFSIWIhGCeb/VhQv9o+PmcZY= 666c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 675c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 684c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 689c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 693c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 702c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 711c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 720c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 729c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 738c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 747c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 756c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 765c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 774c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 783c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 790c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 794c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 806c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 810c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 814c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 818c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 822c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 826c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 830c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 834c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 838c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 842c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 846c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 850c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 854c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 858c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 862c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 866c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 870c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 874c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 878c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 882c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 886c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 890c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 894c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 898c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 902c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 906c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 910c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 914c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 918c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 922c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 926c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 930c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 934c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 938c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 942c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 946c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 950c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 954c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 958c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 962c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 966c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 970c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 974c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 978c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 982c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 990c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 994c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 998c978 < iLirl8fTfpirA7WVUovcpKuj510= --- > /Y0sr6Lljplv16Gs7JLa8DqpXYg= 1002c982 < 8rdaSRB3mPNEpjmjgBpOUmpz1Mg= --- > /3jxijMTnfIUtbqIjERDm+Kr7VM= 1006c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1010c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1014c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1018c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1022c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1026c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1030c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1034c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1038c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1042c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1046c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1050c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1054c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1058c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1062c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1074c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1078c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1086c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1090c1070 < 0gEEJzYxXLsqK8sU4NQuOQ+25jY= --- > XJL1Vfqmw5z6J9dhey5tDrcXtbQ= 1094c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1098c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1102c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1106c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1110c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1114c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1118c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1122c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1126c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1130c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1134c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1138c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1142c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1150c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1154c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1158c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1162c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1166c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1168c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1170c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1172c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1174c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1176c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1178c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1180c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1182c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1219c1199 < cnUqY4IAf40hwYN6p12V10vuAKw= --- > YzoNQEU5AWfuYbIj/n/sY8vAhrs= 1223c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1227c1207 < KfLdRud1cVmQ9RuV88/ekcEUIC0= --- > mh8FeK5J/a8GcbOKHkIJdLPb5Iw= 1231c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1381,1400d1360 < Resources/searchplugins/danawa-kr.xml < < XWZH2u6GrGi66q/2ddjBZ3nrIx8= < < Resources/searchplugins/daum-kr.xml < < FdGt514ZDQaIoUVeKFw2e5D7RL8= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/naver-kr.xml < < mJlubaqmOZlkj5YFoA8C6hH9/mI= < < Resources/searchplugins/wikipedia-kr.xml < < lz8rtEZoJIcqXQJRgxCzVM+ZZKY= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48047995 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:32 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48047994 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:32 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48047993 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:32 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48047944 16 -rw-r--r-- 1 cltbld staff 4740 May 9 18:32 source/Thunderbird.app/Contents/Resources/searchplugins/danawa-kr.xml 48047943 24 -rw-r--r-- 1 cltbld staff 8193 May 9 18:32 source/Thunderbird.app/Contents/Resources/searchplugins/daum-kr.xml 48047942 8 -rw-r--r-- 1 cltbld staff 2371 May 9 18:32 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48047941 16 -rw-r--r-- 1 cltbld staff 4789 May 9 18:32 source/Thunderbird.app/Contents/Resources/searchplugins/naver-kr.xml 48047940 8 -rw-r--r-- 1 cltbld staff 1358 May 9 18:32 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-kr.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:32:58-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:32:58 GMT Keep-Alive: timeout=5, max=842 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:32:58 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/lt/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/lt/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:32:59-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/lt/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68167855 Connection: keep-alive Date: Tue, 10 May 2016 01:10:47 GMT x-amz-replication-status: COMPLETED x-amz-version-id: H.KmrbuqNxawgrJgCDp6SMzPgFGrgElN Last-Modified: Tue, 03 May 2016 16:09:52 GMT ETag: "29398a9b5749677a9efdaa7b24dfc034" Accept-Ranges: bytes Server: AmazonS3 Age: 1333 X-Cache: Hit from cloudfront Via: 1.1 96255a5b0caf50bcafcd101c1ff13691.cloudfront.net (CloudFront) X-Amz-Cf-Id: vG8PfaamXmaxur05dp-SQc4gtiTH5W1Pa_HwlCRGouCUOJjOTaz87A== Length: 68167855 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 18.2M 3s 3072K ........ ........ ........ ........ ........ ........ 9% 59.1M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 42.1M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 38.6M 2s 12288K ........ ........ ........ ........ ........ ........ 23% 38.8M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 43.5M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 43.5M 1s 21504K ........ ........ ........ ........ ........ ........ 36% 43.5M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 39.9M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 39.9M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 33.7M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 39.4M 1s 36864K ........ ........ ........ ........ ........ ........ 59% 25.3M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 36.9M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 30.9M 1s 46080K ........ ........ ........ ........ ........ ........ 73% 39.4M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 36.1M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 26.0M 0s 55296K ........ ........ ........ ........ ........ ........ 87% 29.7M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 45.6M 0s 61440K ........ ........ ........ ........ ........ ........ 96% 38.7M 0s 64512K ........ ........ ........ ........ 100% 47.0M=1.8s 2016-05-09 18:33:00 (35.6 MB/s) - 'update/complete.mar' saved [68167855/68167855] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/lt/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/lt/Thunderbird 38.6.0.dmg'] --2016-05-09 18:33:02-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/lt/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70194280 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:33:03 GMT ETag: "561b1d850d4661acadaeb0ba79fe86b8" Last-Modified: Fri, 12 Feb 2016 21:48:31 GMT x-amz-replication-status: COMPLETED x-amz-version-id: Ci_3hmZ3Zr4xK0qP1hd7WyUqnopVipW5 X-Cache: Miss from cloudfront Via: 1.1 95da1452a75435200220a7075ca3893f.cloudfront.net (CloudFront) X-Amz-Cf-Id: zPY-BaQ6EtsG-txBmqJgKoQ_Fgbx2unIPt55cQu0ZjA7zYUqegNRLg== Length: 70194280 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.89M 34s 3072K ........ ........ ........ ........ ........ ........ 8% 6.95M 21s 6144K ........ ........ ........ ........ ........ ........ 13% 9.99M 15s 9216K ........ ........ ........ ........ ........ ........ 17% 12.9M 12s 12288K ........ ........ ........ ........ ........ ........ 22% 16.8M 9s 15360K ........ ........ ........ ........ ........ ........ 26% 19.0M 8s 18432K ........ ........ ........ ........ ........ ........ 31% 20.4M 7s 21504K ........ ........ ........ ........ ........ ........ 35% 26.8M 6s 24576K ........ ........ ........ ........ ........ ........ 40% 16.3M 5s 27648K ........ ........ ........ ........ ........ ........ 44% 22.4M 4s 30720K ........ ........ ........ ........ ........ ........ 49% 12.5M 4s 33792K ........ ........ ........ ........ ........ ........ 53% 13.8M 3s 36864K ........ ........ ........ ........ ........ ........ 58% 16.8M 3s 39936K ........ ........ ........ ........ ........ ........ 62% 21.7M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 24.9M 2s 46080K ........ ........ ........ ........ ........ ........ 71% 13.2M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 38.0M 1s 52224K ........ ........ ........ ........ ........ ........ 80% 34.3M 1s 55296K ........ ........ ........ ........ ........ ........ 85% 16.5M 1s 58368K ........ ........ ........ ........ ........ ........ 89% 21.7M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 28.5M 0s 64512K ........ ........ ........ ........ ........ ........ 98% 36.2M 0s 67584K ........ ....... 100% 41.5M=5.3s 2016-05-09 18:33:08 (12.7 MB/s) - 'Thunderbird 38.6.0.dmg' saved [70194280/70194280] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/lt/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/lt/Thunderbird 45.1.0.dmg'] --2016-05-09 18:33:09-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/lt/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77541773 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:33:09 GMT ETag: "991940627b1c57050ba316ff7ddbfa30" Last-Modified: Mon, 09 May 2016 22:12:45 GMT x-amz-replication-status: COMPLETED x-amz-version-id: dtnQHHX.7qOkuwRfriTxvLbz__9AKfgQ X-Cache: Miss from cloudfront Via: 1.1 6be093c16fa776bbd432bbe9bd03f6af.cloudfront.net (CloudFront) X-Amz-Cf-Id: ONzKqgiY1trIZS6RCsXgenyIwcMfPF8vUr7B_kjXeS2Tb6vI7SnVsQ== Length: 77541773 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 639K 1m54s 3072K ........ ........ ........ ........ ........ ........ 8% 3.26M 65s 6144K ........ ........ ........ ........ ........ ........ 12% 4.83M 46s 9216K ........ ........ ........ ........ ........ ........ 16% 5.96M 35s 12288K ........ ........ ........ ........ ........ ........ 20% 6.53M 29s 15360K ........ ........ ........ ........ ........ ........ 24% 9.24M 24s 18432K ........ ........ ........ ........ ........ ........ 28% 9.98M 20s 21504K ........ ........ ........ ........ ........ ........ 32% 10.1M 17s 24576K ........ ........ ........ ........ ........ ........ 36% 12.6M 15s 27648K ........ ........ ........ ........ ........ ........ 40% 11.4M 13s 30720K ........ ........ ........ ........ ........ ........ 44% 10.7M 11s 33792K ........ ........ ........ ........ ........ ........ 48% 15.6M 10s 36864K ........ ........ ........ ........ ........ ........ 52% 14.1M 8s 39936K ........ ........ ........ ........ ........ ........ 56% 12.7M 7s 43008K ........ ........ ........ ........ ........ ........ 60% 13.7M 6s 46080K ........ ........ ........ ........ ........ ........ 64% 14.9M 5s 49152K ........ ........ ........ ........ ........ ........ 68% 13.2M 5s 52224K ........ ........ ........ ........ ........ ........ 73% 13.7M 4s 55296K ........ ........ ........ ........ ........ ........ 77% 14.7M 3s 58368K ........ ........ ........ ........ ........ ........ 81% 14.6M 3s 61440K ........ ........ ........ ........ ........ ........ 85% 15.5M 2s 64512K ........ ........ ........ ........ ........ ........ 89% 14.3M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 15.5M 1s 70656K ........ ........ ........ ........ ........ ........ 97% 14.8M 0s 73728K ........ ........ ........ ....... 100% 16.5M=12s 2016-05-09 18:33:21 (6.24 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77541773/77541773] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-lt.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/lt.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/lt.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/lt.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/lt.lproj/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/wikipedia-lt.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/lt.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/lt.dic PREPARE ADD Contents/Resources/dictionaries/lt.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-lt.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/lt.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/lt.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/lt.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/lt.lproj/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/wikipedia-lt.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/lt.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/lt.dic EXECUTE ADD Contents/Resources/dictionaries/lt.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-lt.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/lt.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/lt.dic FINISH REMOVEFILE Contents/Resources/dictionaries/lt.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/lt.lproj/ non-fatal error removing directory: Contents/Resources/lt.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/wikipedia-lt.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/lt.lproj/InfoPlist.strings FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/lt.dic FINISH ADD Contents/Resources/dictionaries/lt.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/lt/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/lt/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/lt/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/lt/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/lt/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/lt/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/lt/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/lt/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/lt/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/lt/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,9d3 < remove "Contents/Resources/searchplugins/wikipedia-lt.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 58,60c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 91c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 117d108 < rmdir "Contents/Resources/searchplugins/" 123d113 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < aVo71IpSvRBJ/c5wNcmgK8I17PQ= --- > dlhcmK0tXfwbN6d5uj8AI+NmXGY= 229c229 < 91Kxa+SSpZNqoADsTX5Fww1g5Xo= --- > eSGHnltXWVWrghi08BWWmEg1bbc= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < NPe3oUe9fGixJpZDJqwMoIh7lMI= --- > LW2SFU05r6raF/C1KrJDfb/XL3M= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 395c395 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 397c397 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 401c401 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 403c403 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 405c405 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 409c409 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 446c446 < v0mWTsAzkzdBUTxWNQXRTZw/Z1w= --- > aJUR+7Kk/6mRTGVchRduTziTYi0= 450c450 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 454c454 < QE8vVHXCM+i0ELYRMCAX6eVoQ9s= --- > IEe+kMLexmwqFB/8BLosf+Bd8qo= 458c458 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,631d607 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-lt.xml < < pmdfhx3vO5RukUbIoshm+d2VLU0= < 660c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 669c645 < 86xUdgyKsKnbD1RqwSt5Io7bLgo= --- > dAcant4h5J5yQCEzL/x65ldF92w= 678c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 687c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 696c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 701c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 705c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 714c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 723c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 732c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 741c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 750c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 759c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 768c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 777c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 786c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 795c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 802c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 806c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 818c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 830c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 834c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 838c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 842c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 846c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 850c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 854c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 858c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 862c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 866c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 870c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 874c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 878c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 882c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 886c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 890c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 894c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 898c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 902c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 906c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 910c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 914c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 918c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 922c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 926c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 930c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 934c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 938c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 942c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 946c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 950c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 954c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 958c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 962c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 966c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 970c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 974c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 978c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 982c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 986c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 990c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 994c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 998c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1002c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1010c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1014c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1018c994 < aVo71IpSvRBJ/c5wNcmgK8I17PQ= --- > dlhcmK0tXfwbN6d5uj8AI+NmXGY= 1022c998 < 91Kxa+SSpZNqoADsTX5Fww1g5Xo= --- > eSGHnltXWVWrghi08BWWmEg1bbc= 1026c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1030c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1034c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1038c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1042c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1046c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1050c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1054c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1058c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1062c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1066c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1070c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1074c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1078c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1082c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1094c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1098c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1106c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1110c1086 < NPe3oUe9fGixJpZDJqwMoIh7lMI= --- > LW2SFU05r6raF/C1KrJDfb/XL3M= 1114c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1118c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1122c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1126c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1130c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1134c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1138c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1142c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1146c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1150c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1154c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1158c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1162c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1170c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1174c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1178c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1182c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1186c1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1188c1164 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1190c1166 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1192c1168 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1194c1170 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1196c1172 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1198c1174 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1200c1176 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1202c1178 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1239c1215 < v0mWTsAzkzdBUTxWNQXRTZw/Z1w= --- > aJUR+7Kk/6mRTGVchRduTziTYi0= 1243c1219 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1247c1223 < QE8vVHXCM+i0ELYRMCAX6eVoQ9s= --- > IEe+kMLexmwqFB/8BLosf+Bd8qo= 1251c1227 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1401,1424d1376 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia-lt.xml < < pmdfhx3vO5RukUbIoshm+d2VLU0= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48048750 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:34 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48048749 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:34 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48048748 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:34 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48048698 8 -rw-r--r-- 1 cltbld staff 1531 May 9 18:34 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48048697 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:34 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48048696 8 -rw-r--r-- 1 cltbld staff 2569 May 9 18:34 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48048695 8 -rw-r--r-- 1 cltbld staff 2371 May 9 18:34 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48048694 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:34 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48048693 8 -rw-r--r-- 1 cltbld staff 1347 May 9 18:34 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-lt.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:34:17-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:34:17 GMT Keep-Alive: timeout=5, max=996 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:34:17 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nb-NO/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nb-NO/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:34:17-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nb-NO/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67821325 Connection: keep-alive Date: Tue, 10 May 2016 01:10:55 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 0y_3tlf5a_STmFRzkdLUu_ILkfFDHXAo Last-Modified: Tue, 03 May 2016 16:23:16 GMT ETag: "bf8d86c3b99ca636ca193d542083ffa1" Accept-Ranges: bytes Server: AmazonS3 Age: 1403 X-Cache: Hit from cloudfront Via: 1.1 373880a309382d9266a9313233b86d25.cloudfront.net (CloudFront) X-Amz-Cf-Id: 2kdyrR30dcUqhRFjELeuzbzG0B6mM9S-dNNZ03QhaTa6ntt40_glYw== Length: 67821325 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 24.3M 3s 3072K ........ ........ ........ ........ ........ ........ 9% 78.9M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 72.7M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 58.1M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 38.5M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 47.1M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 62.7M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 49.0M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 60.4M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 43.7M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 50.6M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 58.5M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 59.9M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 37.8M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 30.9M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 47.9M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 46.5M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 50.2M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 35.0M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 41.3M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 39.6M 0s 64512K ........ ........ ........ .. 100% 37.2M=1.4s 2016-05-09 18:34:19 (45.3 MB/s) - 'update/complete.mar' saved [67821325/67821325] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/nb-NO/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/nb-NO/Thunderbird 38.6.0.dmg'] --2016-05-09 18:34:20-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/nb-NO/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69844341 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:34:21 GMT ETag: "aa755c62ff538b570b33e64e7c5cb395" Last-Modified: Fri, 12 Feb 2016 21:48:33 GMT x-amz-replication-status: COMPLETED x-amz-version-id: w_BpeiflGkRDUAEnZ9kVTGoaxlBTP3IS X-Cache: Miss from cloudfront Via: 1.1 5574699f9d8b8aad21acf2edbb25dc62.cloudfront.net (CloudFront) X-Amz-Cf-Id: YkJj4hBEVdzSVhndddaPrh7qJeeMjv0fsTpHgl61H9DQaUK7xLJaiQ== Length: 69844341 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.51M 42s 3072K ........ ........ ........ ........ ........ ........ 9% 6.23M 25s 6144K ........ ........ ........ ........ ........ ........ 13% 8.66M 18s 9216K ........ ........ ........ ........ ........ ........ 18% 10.5M 14s 12288K ........ ........ ........ ........ ........ ........ 22% 11.5M 12s 15360K ........ ........ ........ ........ ........ ........ 27% 12.2M 10s 18432K ........ ........ ........ ........ ........ ........ 31% 15.3M 8s 21504K ........ ........ ........ ........ ........ ........ 36% 15.1M 7s 24576K ........ ........ ........ ........ ........ ........ 40% 18.3M 6s 27648K ........ ........ ........ ........ ........ ........ 45% 17.8M 5s 30720K ........ ........ ........ ........ ........ ........ 49% 13.9M 5s 33792K ........ ........ ........ ........ ........ ........ 54% 20.4M 4s 36864K ........ ........ ........ ........ ........ ........ 58% 15.7M 3s 39936K ........ ........ ........ ........ ........ ........ 63% 17.1M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 14.8M 3s 46080K ........ ........ ........ ........ ........ ........ 72% 21.9M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 13.4M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 16.5M 1s 55296K ........ ........ ........ ........ ........ ........ 85% 16.3M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 15.1M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 16.1M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 16.7M 0s 67584K ........ . 100% 12.4M=6.6s 2016-05-09 18:34:28 (10.1 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69844341/69844341] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/nb-NO/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/nb-NO/Thunderbird 45.1.0.dmg'] --2016-05-09 18:34:28-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/nb-NO/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77200945 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:34:29 GMT ETag: "9f6aa27a7a9bf70aba62e4853d48b618" Last-Modified: Mon, 09 May 2016 22:35:12 GMT x-amz-replication-status: COMPLETED x-amz-version-id: QmaYLXAuXRG1YAn6tCSCQuTHGX0WJ5AN X-Cache: Miss from cloudfront Via: 1.1 296faebadd40feee8b2eb0e10d5786d2.cloudfront.net (CloudFront) X-Amz-Cf-Id: zrEA7HuuVHw0m6IAhQxZ4oQaEr-5zxkQpgoaDhuBOGQk51oNGF4ldQ== Length: 77200945 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.56M 45s 3072K ........ ........ ........ ........ ........ ........ 8% 5.49M 28s 6144K ........ ........ ........ ........ ........ ........ 12% 8.08M 20s 9216K ........ ........ ........ ........ ........ ........ 16% 10.5M 16s 12288K ........ ........ ........ ........ ........ ........ 20% 10.8M 13s 15360K ........ ........ ........ ........ ........ ........ 24% 13.7M 11s 18432K ........ ........ ........ ........ ........ ........ 28% 16.1M 10s 21504K ........ ........ ........ ........ ........ ........ 32% 17.3M 8s 24576K ........ ........ ........ ........ ........ ........ 36% 12.9M 7s 27648K ........ ........ ........ ........ ........ ........ 40% 11.6M 6s 30720K ........ ........ ........ ........ ........ ........ 44% 6.58M 6s 33792K ........ ........ ........ ........ ........ ........ 48% 8.70M 6s 36864K ........ ........ ........ ........ ........ ........ 52% 11.0M 5s 39936K ........ ........ ........ ........ ........ ........ 57% 139K 21s 43008K ........ ........ ........ ........ ........ ........ 61% 677K 20s 46080K ........ ........ ........ ........ ........ ........ 65% 6.53M 17s 49152K ........ ........ ........ ........ ........ ........ 69% 8.74M 15s 52224K ........ ........ ........ ........ ........ ........ 73% 12.6M 12s 55296K ........ ........ ........ ........ ........ ........ 77% 11.3M 10s 58368K ........ ........ ........ ........ ........ ........ 81% 14.2M 8s 61440K ........ ........ ........ ........ ........ ........ 85% 14.9M 6s 64512K ........ ........ ........ ........ ........ ........ 89% 16.1M 4s 67584K ........ ........ ........ ........ ........ ........ 93% 18.1M 2s 70656K ........ ........ ........ ........ ........ ........ 97% 17.6M 1s 73728K ........ ........ ........ . 100% 16.9M=34s 2016-05-09 18:35:03 (2.14 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77200945/77200945] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/gulesider-NO.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/nb.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/nb.lproj/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/gulesider-NO.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/nb.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/gulesider-NO.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/nb.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/nb.lproj/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/gulesider-NO.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/nb.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/gulesider-NO.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/nb.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/nb.lproj/ non-fatal error removing directory: Contents/Resources/nb.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/gulesider-NO.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/nb.lproj/InfoPlist.strings FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/nb-NO/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/nb-NO/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/nb-NO/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/nb-NO/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/nb-NO/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/nb-NO/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/nb-NO/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/nb-NO/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_6-00000/l10n/nb-NO/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_6-00000/l10n/nb-NO/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,12d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/gulesider-NO.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 61,63c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 92c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 118d106 < rmdir "Contents/Resources/searchplugins/" 124d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < HFcOAeuoSG5V1nL6/w1prtnCFmI= --- > 5Mx7YLDVnvUJAuql+T5X2z4LOY0= 221c221 < +WGylCym6a9JHVBLPWVqWyzMydk= --- > nR2iXa0luSuU1Px2viXAgA+ANRw= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < ezMHQ6WSIYqtEGLqTKzsxrWOIXI= --- > LQI6gcN22GBQLSdROIaNKNrQ5/A= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < 9Un9hLnvx9hCpZcEoJwrHGI/BlM= --- > uOZoJQNtTcn81CtQXGePZQD67Sw= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < w5uuCGlGcmZFaO7BJRkGEgkQhs0= --- > yc8LKgKLiisZneKjWg3I4bKDAws= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,635d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/gulesider-NO.xml < < aJUWKY/eTPbjXVLNZjj50g0d7Lo= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 664c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 673c637 < hcpRVOwyqYZf0hNCasryRtfuhm0= --- > Tkh/BPZ9pG7GDLL3xB+mowkk16U= 682c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 691c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 700c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 705c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 709c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 718c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 727c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 736c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 745c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 754c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 763c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 772c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 781c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 790c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 799c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 806c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 810c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 822c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 826c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 830c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 834c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 838c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 842c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 846c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 850c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 854c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 858c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 862c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 866c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 870c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 874c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 878c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 882c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 886c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 890c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 894c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 898c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 902c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 906c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 910c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 914c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 918c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 922c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 926c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 930c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 934c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 938c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 942c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 946c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 950c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 954c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 958c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 962c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 966c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 970c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 974c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 978c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 982c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 986c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 990c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 994c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 998c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1006c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1010c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1014c978 < HFcOAeuoSG5V1nL6/w1prtnCFmI= --- > 5Mx7YLDVnvUJAuql+T5X2z4LOY0= 1018c982 < +WGylCym6a9JHVBLPWVqWyzMydk= --- > nR2iXa0luSuU1Px2viXAgA+ANRw= 1022c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1026c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1030c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1034c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1038c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1042c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1046c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1050c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1054c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1058c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1062c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1066c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1070c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1074c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1078c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1090c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1094c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1102c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1106c1070 < ezMHQ6WSIYqtEGLqTKzsxrWOIXI= --- > LQI6gcN22GBQLSdROIaNKNrQ5/A= 1110c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1114c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1118c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1122c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1126c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1130c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1134c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1138c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1142c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1146c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1150c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1154c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1158c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1166c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1170c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1174c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1178c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1182c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1184c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1186c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1188c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1190c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1192c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1194c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1196c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1198c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1235c1199 < 9Un9hLnvx9hCpZcEoJwrHGI/BlM= --- > uOZoJQNtTcn81CtQXGePZQD67Sw= 1239c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1243c1207 < w5uuCGlGcmZFaO7BJRkGEgkQhs0= --- > yc8LKgKLiisZneKjWg3I4bKDAws= 1247c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1397,1432d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/gulesider-NO.xml < < aJUWKY/eTPbjXVLNZjj50g0d7Lo= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48049503 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:35 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48049502 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:35 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48049501 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:35 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48049452 8 -rw-r--r-- 1 cltbld staff 1531 May 9 18:35 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48049451 8 -rw-r--r-- 1 cltbld staff 1670 May 9 18:35 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48049450 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:35 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48049449 8 -rw-r--r-- 1 cltbld staff 2569 May 9 18:35 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48049448 8 -rw-r--r-- 1 cltbld staff 2371 May 9 18:35 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48049447 8 -rw-r--r-- 1 cltbld staff 2303 May 9 18:35 source/Thunderbird.app/Contents/Resources/searchplugins/gulesider-NO.xml 48049446 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:35 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48049445 8 -rw-r--r-- 1 cltbld staff 1338 May 9 18:35 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48049444 8 -rw-r--r-- 1 cltbld staff 1363 May 9 18:35 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:36:00-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:36:00 GMT Keep-Alive: timeout=5, max=971 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:36:00 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nl/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nl/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:36:00-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nl/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68587979 Connection: keep-alive Date: Tue, 10 May 2016 01:11:02 GMT x-amz-replication-status: COMPLETED x-amz-version-id: p8IP7XoH3.ExYLHSCQ9NnW9Ddu4JEjlY Last-Modified: Tue, 03 May 2016 15:23:56 GMT ETag: "138e4e278d027aeabbb6349ee2d8c6a5" Accept-Ranges: bytes Server: AmazonS3 Age: 1499 X-Cache: Hit from cloudfront Via: 1.1 02192a27c967e955f8c815efa939bfc8.cloudfront.net (CloudFront) X-Amz-Cf-Id: _kvjciduv7ehl7-_Ajjp7IQT-Eh0iuAH1THUrdVFYgaKVgFZRHgBoQ== Length: 68587979 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 36.7M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 49.5M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 44.5M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 54.6M 1s 12288K ........ ........ ........ ........ ........ ........ 22% 35.8M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 43.6M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 42.9M 1s 21504K ........ ........ ........ ........ ........ ........ 36% 45.2M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 26.4M 1s 27648K ........ ........ ........ ........ ........ ........ 45% 25.8M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 24.1M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 22.2M 1s 36864K ........ ........ ........ ........ ........ ........ 59% 48.5M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 29.0M 1s 43008K ........ ........ ........ ........ ........ ........ 68% 21.5M 1s 46080K ........ ........ ........ ........ ........ ........ 73% 26.9M 1s 49152K ........ ........ ........ ........ ........ ........ 77% 26.1M 0s 52224K ........ ........ ........ ........ ........ ........ 82% 30.8M 0s 55296K ........ ........ ........ ........ ........ ........ 87% 16.8M 0s 58368K ........ ........ ........ ........ ........ ........ 91% 13.7M 0s 61440K ........ ........ ........ ........ ........ ........ 96% 22.5M 0s 64512K ........ ........ ........ ........ ...... 100% 17.1M=2.3s 2016-05-09 18:36:03 (27.9 MB/s) - 'update/complete.mar' saved [68587979/68587979] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/nl/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/nl/Thunderbird 38.6.0.dmg'] --2016-05-09 18:36:04-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/nl/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70621893 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:36:05 GMT ETag: "6cbb08a3443d184987122f549bf35c02" Last-Modified: Fri, 12 Feb 2016 21:48:36 GMT x-amz-replication-status: COMPLETED x-amz-version-id: EPvb4tvA3H8KdCKDOcJLiVEnjBQHnSfk X-Cache: Miss from cloudfront Via: 1.1 6be093c16fa776bbd432bbe9bd03f6af.cloudfront.net (CloudFront) X-Amz-Cf-Id: oxeAcitc0lwI3EkvFZ7RzH9mIC6P0DrdmeZRsQvRe7OkWTbS6LYO5w== Length: 70621893 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.84M 35s 3072K ........ ........ ........ ........ ........ ........ 8% 7.09M 21s 6144K ........ ........ ........ ........ ........ ........ 13% 11.8M 15s 9216K ........ ........ ........ ........ ........ ........ 17% 12.9M 12s 12288K ........ ........ ........ ........ ........ ........ 22% 14.2M 10s 15360K ........ ........ ........ ........ ........ ........ 26% 12.2M 8s 18432K ........ ........ ........ ........ ........ ........ 31% 3.77M 8s 21504K ........ ........ ........ ........ ........ ........ 35% 2.41M 9s 24576K ........ ........ ........ ........ ........ ........ 40% 3.41M 9s 27648K ........ ........ ........ ........ ........ ........ 44% 8.17M 8s 30720K ........ ........ ........ ........ ........ ........ 48% 11.4M 7s 33792K ........ ........ ........ ........ ........ ........ 53% 14.8M 6s 36864K ........ ........ ........ ........ ........ ........ 57% 11.3M 5s 39936K ........ ........ ........ ........ ........ ........ 62% 12.9M 4s 43008K ........ ........ ........ ........ ........ ........ 66% 7.20M 4s 46080K ........ ........ ........ ........ ........ ........ 71% 10.7M 3s 49152K ........ ........ ........ ........ ........ ........ 75% 9.10M 3s 52224K ........ ........ ........ ........ ........ ........ 80% 11.2M 2s 55296K ........ ........ ........ ........ ........ ........ 84% 11.2M 2s 58368K ........ ........ ........ ........ ........ ........ 89% 11.0M 1s 61440K ........ ........ ........ ........ ........ ........ 93% 11.5M 1s 64512K ........ ........ ........ ........ ........ ........ 97% 11.4M 0s 67584K ........ ........ ..... 100% 12.0M=9.7s 2016-05-09 18:36:15 (6.93 MB/s) - 'Thunderbird 38.6.0.dmg' saved [70621893/70621893] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/nl/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/nl/Thunderbird 45.1.0.dmg'] --2016-05-09 18:36:15-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/nl/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77985640 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:36:16 GMT ETag: "5d2ba99669a222698b5b32c4c176183e" Last-Modified: Mon, 09 May 2016 20:35:54 GMT x-amz-replication-status: COMPLETED x-amz-version-id: ncCIzljxUFJ3hZk5XxusaQQQtXVk3Ozd X-Cache: Miss from cloudfront Via: 1.1 8d667b66bfb5cc8a8898a76f2ecc1d5a.cloudfront.net (CloudFront) X-Amz-Cf-Id: Jd8m4sOMGqbc0IRrD5iFMTXVaEkski_GzvLK6hri43OhXTs8sfki1A== Length: 77985640 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.30M 55s 3072K ........ ........ ........ ........ ........ ........ 8% 4.35M 34s 6144K ........ ........ ........ ........ ........ ........ 12% 5.97M 25s 9216K ........ ........ ........ ........ ........ ........ 16% 7.24M 20s 12288K ........ ........ ........ ........ ........ ........ 20% 3.66M 19s 15360K ........ ........ ........ ........ ........ ........ 24% 5.35M 17s 18432K ........ ........ ........ ........ ........ ........ 28% 7.43M 14s 21504K ........ ........ ........ ........ ........ ........ 32% 7.47M 13s 24576K ........ ........ ........ ........ ........ ........ 36% 7.56M 11s 27648K ........ ........ ........ ........ ........ ........ 40% 8.89M 10s 30720K ........ ........ ........ ........ ........ ........ 44% 7.56M 9s 33792K ........ ........ ........ ........ ........ ........ 48% 7.86M 8s 36864K ........ ........ ........ ........ ........ ........ 52% 7.43M 7s 39936K ........ ........ ........ ........ ........ ........ 56% 7.89M 6s 43008K ........ ........ ........ ........ ........ ........ 60% 7.54M 6s 46080K ........ ........ ........ ........ ........ ........ 64% 8.77M 5s 49152K ........ ........ ........ ........ ........ ........ 68% 8.02M 4s 52224K ........ ........ ........ ........ ........ ........ 72% 7.71M 4s 55296K ........ ........ ........ ........ ........ ........ 76% 7.55M 3s 58368K ........ ........ ........ ........ ........ ........ 80% 8.81M 3s 61440K ........ ........ ........ ........ ........ ........ 84% 8.00M 2s 64512K ........ ........ ........ ........ ........ ........ 88% 7.28M 1s 67584K ........ ........ ........ ........ ........ ........ 92% 8.20M 1s 70656K ........ ........ ........ ........ ........ ........ 96% 9.70M 0s 73728K ........ ........ ........ ........ ..... 100% 10.2M=12s 2016-05-09 18:36:29 (6.03 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77985640/77985640] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/nl.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/nl.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/nl.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/nl.lproj/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/nl.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/nl.dic PREPARE ADD Contents/Resources/dictionaries/nl.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/nl.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/nl.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/nl.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/nl.lproj/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/nl.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/nl.dic EXECUTE ADD Contents/Resources/dictionaries/nl.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/nl.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/nl.dic FINISH REMOVEFILE Contents/Resources/dictionaries/nl.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/nl.lproj/ non-fatal error removing directory: Contents/Resources/nl.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/nl.lproj/InfoPlist.strings FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/nl.dic FINISH ADD Contents/Resources/dictionaries/nl.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini 21,22c21,22 < CrashReporterDescriptionText2=%s ondervond een probleem en is vastgelopen.\n\nOm ons te helpen het probleem te onderzoeken en op te lossen kunt u ons een crashrapport toesturen. < CrashReporterDefault=De crashreporter wordt uitgevoerd na een crash, om het probleem te rapporteren aan de maker van de toepassing. Deze dient niet direct te worden gestart. --- > CrashReporterDescriptionText2=%s ondervond een probleem en is vastgelopen.\n\nOm ons te helpen het probleem te onderzoeken en op te lossen, kunt u ons een crashrapport toesturen. > CrashReporterDefault=De crashreporter wordt na een crash uitgevoerd om het probleem aan de maker van de toepassing te rapporteren. Deze dient niet direct te worden gestart. 25c25 < CommentGrayText=Voeg commentaar toe (commentaar is publiekelijk zichtbaar) --- > CommentGrayText=Voeg een opmerking toe (opmerkingen zijn publiekelijk zichtbaar) 29c29 < CheckIncludeURL=Het adres van de bezochte website meesturen --- > CheckIncludeURL=Het adres van de bezochte website bijvoegen diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources 76c76 < edmEwxixi7usLTwKraMK+MtaXg4= --- > afAAgF9LQ2reqBoIpigIUCJ3v5Q= 150c150 < edmEwxixi7usLTwKraMK+MtaXg4= --- > afAAgF9LQ2reqBoIpigIUCJ3v5Q= Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/nl/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/nl/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/nl/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/nl/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/nl/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/nl/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/nl/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/nl/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/nl/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/nl/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 92c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 118d108 < rmdir "Contents/Resources/searchplugins/" 124d113 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < 8HHKeBwZrgfYhy9IFl4sGcYjn6E= --- > Hl/p1wFME/VeZ35R6cjxtSIOs0Y= 229c229 < wVoPFLVW+JUYlhVaboZYlRP9Gns= --- > pnwyh+2RNdCv02HUANYI3XI1Qoo= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < +fhYUKa9K5pxHHtQug0nUFXdVSo= --- > 6R5H9xqUeue9qx8NuSDXQgQOdB8= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 395c395 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 397c397 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 401c401 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 403c403 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 405c405 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 409c409 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 446c446 < TAmxC1kL+kBL3J4aNfE/HcxIan0= --- > Y4pKXEHrAB3DwUh9US0cXAfm4Nk= 450c450 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 454c454 < gjvPxl2y9uweUcKdxe/XdgpODWU= --- > x8FHUZFVs+j/OYiKXJnFYmMiFVI= 458c458 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,635d607 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 664c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 673c645 < 2ftS86cpriHZ/pD8i1mLqRPtrAM= --- > WqEDJqpp/HqLUpeJtvp+E9IM9xI= 682c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 691c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 700c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 705c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 709c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 718c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 727c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 736c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 745c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 754c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 763c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 772c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 781c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 790c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 799c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 806c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 810c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 822c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 834c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 838c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 842c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 846c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 850c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 854c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 858c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 862c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 866c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 870c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 874c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 878c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 882c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 886c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 890c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 894c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 898c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 902c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 906c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 910c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 914c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 918c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 922c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 926c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 930c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 934c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 938c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 942c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 946c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 950c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 954c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 958c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 962c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 966c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 970c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 974c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 978c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 982c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 986c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 990c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 994c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 998c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 1002c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1006c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1014c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1018c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1022c994 < 8HHKeBwZrgfYhy9IFl4sGcYjn6E= --- > Hl/p1wFME/VeZ35R6cjxtSIOs0Y= 1026c998 < wVoPFLVW+JUYlhVaboZYlRP9Gns= --- > pnwyh+2RNdCv02HUANYI3XI1Qoo= 1030c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1034c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1038c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1042c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1046c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1050c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1054c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1058c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1062c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1066c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1070c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1074c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1078c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1082c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1086c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1098c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1102c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1110c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1114c1086 < +fhYUKa9K5pxHHtQug0nUFXdVSo= --- > 6R5H9xqUeue9qx8NuSDXQgQOdB8= 1118c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1122c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1126c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1130c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1134c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1138c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1142c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1146c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1150c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1154c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1158c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1162c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1166c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1174c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1178c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1182c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1186c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1190c1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1192c1164 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1194c1166 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1196c1168 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1198c1170 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1200c1172 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1202c1174 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1204c1176 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1206c1178 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1243c1215 < TAmxC1kL+kBL3J4aNfE/HcxIan0= --- > Y4pKXEHrAB3DwUh9US0cXAfm4Nk= 1247c1219 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1251c1223 < gjvPxl2y9uweUcKdxe/XdgpODWU= --- > x8FHUZFVs+j/OYiKXJnFYmMiFVI= 1255c1227 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1405,1432d1376 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48050259 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:37 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48050258 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:37 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48050257 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:37 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48050208 8 -rw-r--r-- 1 cltbld staff 1531 May 9 18:37 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48050207 8 -rw-r--r-- 1 cltbld staff 1670 May 9 18:37 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48050206 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:37 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48050205 8 -rw-r--r-- 1 cltbld staff 2569 May 9 18:37 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48050204 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:37 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48050203 8 -rw-r--r-- 1 cltbld staff 1338 May 9 18:37 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48050202 8 -rw-r--r-- 1 cltbld staff 1363 May 9 18:37 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:37:24-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:37:24 GMT Keep-Alive: timeout=5, max=948 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:37:25 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nn-NO/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nn-NO/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:37:25-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nn-NO/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67824882 Connection: keep-alive Date: Tue, 10 May 2016 01:11:13 GMT x-amz-replication-status: COMPLETED x-amz-version-id: UA8jChJlvEPxNMgcEBY3qFqhlkwoAahG Last-Modified: Tue, 03 May 2016 15:36:46 GMT ETag: "4bee46b8f161e75957a0a9dd297cb907" Accept-Ranges: bytes Server: AmazonS3 Age: 1573 X-Cache: Hit from cloudfront Via: 1.1 3344ddc09ccf1d185bb41add18940cc4.cloudfront.net (CloudFront) X-Amz-Cf-Id: M-JCaYPeh7sP_mirZEcSoBcI2NhQzu9vlnl14Zsfp5Wm5gbZ6KwT_A== Length: 67824882 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 28.1M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 66.5M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 62.4M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 54.7M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 56.5M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 36.6M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 65.3M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 44.3M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 53.4M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 59.6M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 45.7M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 66.4M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 55.7M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 54.3M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 48.4M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 52.8M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 50.3M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 54.7M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 50.7M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 57.7M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 62.2M 0s 64512K ........ ........ ........ .. 100% 47.7M=1.3s 2016-05-09 18:37:26 (51.4 MB/s) - 'update/complete.mar' saved [67824882/67824882] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/nn-NO/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/nn-NO/Thunderbird 38.6.0.dmg'] --2016-05-09 18:37:28-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/nn-NO/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69839288 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:37:28 GMT ETag: "5ba613965af1e0ece88f5a267772a787" Last-Modified: Fri, 12 Feb 2016 21:48:39 GMT x-amz-replication-status: COMPLETED x-amz-version-id: rtvWnm56iN0raVM.9d5suXNzZD2Nz84Z X-Cache: Miss from cloudfront Via: 1.1 2a47832c458ab2a6b20c8363f5aa35ea.cloudfront.net (CloudFront) X-Amz-Cf-Id: QpWdXKU8Y8nz0P1HiZ12RrPN1rfIyl-Z6mGqIbGorfKt0JS9vBfZMg== Length: 69839288 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.44M 44s 3072K ........ ........ ........ ........ ........ ........ 9% 6.08M 26s 6144K ........ ........ ........ ........ ........ ........ 13% 9.40M 19s 9216K ........ ........ ........ ........ ........ ........ 18% 12.6M 14s 12288K ........ ........ ........ ........ ........ ........ 22% 7.72M 12s 15360K ........ ........ ........ ........ ........ ........ 27% 10.9M 10s 18432K ........ ........ ........ ........ ........ ........ 31% 8.81M 9s 21504K ........ ........ ........ ........ ........ ........ 36% 8.70M 8s 24576K ........ ........ ........ ........ ........ ........ 40% 9.47M 7s 27648K ........ ........ ........ ........ ........ ........ 45% 8.87M 6s 30720K ........ ........ ........ ........ ........ ........ 49% 8.78M 6s 33792K ........ ........ ........ ........ ........ ........ 54% 9.39M 5s 36864K ........ ........ ........ ........ ........ ........ 58% 9.54M 4s 39936K ........ ........ ........ ........ ........ ........ 63% 8.31M 4s 43008K ........ ........ ........ ........ ........ ........ 67% 9.40M 3s 46080K ........ ........ ........ ........ ........ ........ 72% 9.47M 3s 49152K ........ ........ ........ ........ ........ ........ 76% 9.22M 2s 52224K ........ ........ ........ ........ ........ ........ 81% 8.27M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 7.58M 1s 58368K ........ ........ ........ ........ ........ ........ 90% 9.47M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 7.87M 1s 64512K ........ ........ ........ ........ ........ ........ 99% 7.44M 0s 67584K ........ . 100% 6.99M=9.4s 2016-05-09 18:37:38 (7.10 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69839288/69839288] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/nn-NO/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/nn-NO/Thunderbird 45.1.0.dmg'] --2016-05-09 18:37:38-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/nn-NO/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77203966 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:37:39 GMT ETag: "2ccd2cfde244e7dd66a60d23ab878fca" Last-Modified: Mon, 09 May 2016 20:58:57 GMT x-amz-replication-status: COMPLETED x-amz-version-id: qkIx0NeGJvenv6.3qXhRyDDXoEuGOlid X-Cache: Miss from cloudfront Via: 1.1 ff09df097f823b2834408d17e9779d62.cloudfront.net (CloudFront) X-Amz-Cf-Id: 88jtK8yYm8SJ3svusgL1zCFhu6VubEiOeiAxaWY0Uz3qn9MVvhtZqQ== Length: 77203966 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.58M 45s 3072K ........ ........ ........ ........ ........ ........ 8% 5.83M 27s 6144K ........ ........ ........ ........ ........ ........ 12% 7.04M 20s 9216K ........ ........ ........ ........ ........ ........ 16% 8.73M 16s 12288K ........ ........ ........ ........ ........ ........ 20% 10.9M 14s 15360K ........ ........ ........ ........ ........ ........ 24% 12.0M 11s 18432K ........ ........ ........ ........ ........ ........ 28% 7.60M 10s 21504K ........ ........ ........ ........ ........ ........ 32% 7.07M 9s 24576K ........ ........ ........ ........ ........ ........ 36% 11.0M 8s 27648K ........ ........ ........ ........ ........ ........ 40% 11.6M 7s 30720K ........ ........ ........ ........ ........ ........ 44% 12.4M 7s 33792K ........ ........ ........ ........ ........ ........ 48% 13.0M 6s 36864K ........ ........ ........ ........ ........ ........ 52% 12.3M 5s 39936K ........ ........ ........ ........ ........ ........ 57% 13.4M 5s 43008K ........ ........ ........ ........ ........ ........ 61% 14.5M 4s 46080K ........ ........ ........ ........ ........ ........ 65% 13.4M 3s 49152K ........ ........ ........ ........ ........ ........ 69% 12.6M 3s 52224K ........ ........ ........ ........ ........ ........ 73% 13.7M 3s 55296K ........ ........ ........ ........ ........ ........ 77% 13.4M 2s 58368K ........ ........ ........ ........ ........ ........ 81% 13.6M 2s 61440K ........ ........ ........ ........ ........ ........ 85% 13.9M 1s 64512K ........ ........ ........ ........ ........ ........ 89% 12.6M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 14.0M 1s 70656K ........ ........ ........ ........ ........ ........ 97% 14.0M 0s 73728K ........ ........ ........ .. 100% 12.7M=8.3s 2016-05-09 18:37:48 (8.82 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77203966/77203966] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/gulesider-NO.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/nn.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/nn.lproj/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/gulesider-NO.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/nn.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/gulesider-NO.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/nn.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/nn.lproj/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/gulesider-NO.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/nn.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/gulesider-NO.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/nn.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/nn.lproj/ non-fatal error removing directory: Contents/Resources/nn.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/gulesider-NO.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/nn.lproj/InfoPlist.strings FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/nn-NO/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/nn-NO/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/nn-NO/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/nn-NO/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/nn-NO/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/nn-NO/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/nn-NO/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/nn-NO/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/nn-NO/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/nn-NO/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,11d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/gulesider-NO.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 60,62c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 91c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 117d106 < rmdir "Contents/Resources/searchplugins/" 123d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < uk6wMi7Z2LSR1yBm0vBx/HFMCSg= --- > C4J4lM8+cl5u03cFM66xgrXxl+o= 221c221 < ndg0c7OTKxyPby34O9ekTnaLsl0= --- > Z7L7P/7DdnZlb7h2S3pY2ny6zsE= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < fD2jSa5KuulygOVxC5JgZpB1tJg= --- > rzXwo4qr/TPru2P78jx5TUmg1qw= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 438c438 < Uvv787uXV/WkqPoXfOj2dTEtaO0= --- > uAPKXzfeq6L7WHyTPclrr4kv8Uk= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < JOI32psnB+DTpFmaMReB1YKG2EE= --- > 73mPtUw+VulD5DZpdTu3lxDn01Q= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,631d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/gulesider-NO.xml < < aJUWKY/eTPbjXVLNZjj50g0d7Lo= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 660c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 669c637 < QBF5hoBuo9lgVDOuPk/n2omUrO8= --- > kedVeoCARN3DZWgWs1Df4ZOMaXo= 678c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 687c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 696c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 701c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 705c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 714c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 723c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 732c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 741c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 750c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 759c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 768c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 777c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 786c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 795c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 802c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 806c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 818c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 822c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 826c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 830c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 834c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 838c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 842c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 846c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 850c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 854c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 858c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 862c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 866c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 870c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 874c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 878c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 882c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 886c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 890c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 894c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 898c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 902c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 906c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 910c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 914c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 918c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 922c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 926c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 930c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 934c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 938c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 942c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 946c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 950c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 954c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 958c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 962c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 966c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 970c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 974c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 978c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 982c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 986c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 990c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 994c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1002c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1006c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1010c978 < uk6wMi7Z2LSR1yBm0vBx/HFMCSg= --- > C4J4lM8+cl5u03cFM66xgrXxl+o= 1014c982 < ndg0c7OTKxyPby34O9ekTnaLsl0= --- > Z7L7P/7DdnZlb7h2S3pY2ny6zsE= 1018c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1022c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1026c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1030c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1034c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1038c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1042c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1046c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1050c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1054c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1058c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1062c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1066c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1070c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1074c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1086c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1090c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1098c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1102c1070 < fD2jSa5KuulygOVxC5JgZpB1tJg= --- > rzXwo4qr/TPru2P78jx5TUmg1qw= 1106c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1110c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1114c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1118c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1122c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1126c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1130c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1134c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1138c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1142c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1146c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1150c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1154c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1162c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1166c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1170c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1174c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1178c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1180c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1182c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1184c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1186c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1188c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1190c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1192c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1194c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1231c1199 < Uvv787uXV/WkqPoXfOj2dTEtaO0= --- > uAPKXzfeq6L7WHyTPclrr4kv8Uk= 1235c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1239c1207 < JOI32psnB+DTpFmaMReB1YKG2EE= --- > 73mPtUw+VulD5DZpdTu3lxDn01Q= 1243c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1393,1424d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/gulesider-NO.xml < < aJUWKY/eTPbjXVLNZjj50g0d7Lo= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48051010 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48051009 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48051008 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:38 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48050959 8 -rw-r--r-- 1 cltbld staff 1531 May 9 18:38 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48050958 8 -rw-r--r-- 1 cltbld staff 1670 May 9 18:38 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48050957 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:38 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48050956 8 -rw-r--r-- 1 cltbld staff 2569 May 9 18:38 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48050955 8 -rw-r--r-- 1 cltbld staff 2303 May 9 18:38 source/Thunderbird.app/Contents/Resources/searchplugins/gulesider-NO.xml 48050954 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:38 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48050953 8 -rw-r--r-- 1 cltbld staff 1338 May 9 18:38 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48050952 8 -rw-r--r-- 1 cltbld staff 1363 May 9 18:38 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:38:43-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:38:43 GMT Keep-Alive: timeout=5, max=975 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 51.8M=0s 2016-05-09 18:38:43 (51.8 MB/s) - 'update.xml' saved [598/598] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pa-IN/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pa-IN/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:38:44-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pa-IN/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67914865 Connection: keep-alive Date: Tue, 10 May 2016 01:11:21 GMT x-amz-replication-status: COMPLETED x-amz-version-id: op7kvx0dxjZlY7QFwEf9iDHNDjiAuHKV Last-Modified: Tue, 03 May 2016 15:49:31 GMT ETag: "cf9ad078901ca04e22323fb3a7c49337" Accept-Ranges: bytes Server: AmazonS3 Age: 1643 X-Cache: Hit from cloudfront Via: 1.1 9767e262e4af15c8d83a726bb0f44fa5.cloudfront.net (CloudFront) X-Amz-Cf-Id: C-9O4Uo4nfcOiTXcGzqcVMFVEg_YLPkIsGrmwEWQHFsMgaWcI-2hdw== Length: 67914865 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 36.7M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 65.8M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 71.9M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 67.8M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 68.6M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 55.6M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 38.9M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 69.1M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 62.4M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 68.7M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 57.6M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 72.0M 0s 36864K ........ ........ ........ ........ ........ ........ 60% 44.4M 0s 39936K ........ ........ ........ ........ ........ ........ 64% 52.3M 0s 43008K ........ ........ ........ ........ ........ ........ 69% 69.1M 0s 46080K ........ ........ ........ ........ ........ ........ 74% 43.7M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 63.9M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 67.3M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 50.4M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 71.2M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 54.4M 0s 64512K ........ ........ ........ .... 100% 66.0M=1.1s 2016-05-09 18:38:45 (57.4 MB/s) - 'update/complete.mar' saved [67914865/67914865] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/pa-IN/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/pa-IN/Thunderbird 38.6.0.dmg'] --2016-05-09 18:38:46-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/pa-IN/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 69931598 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:38:47 GMT ETag: "5ef059c47ae1c9044448caeca30bda66" Last-Modified: Fri, 12 Feb 2016 21:48:42 GMT x-amz-replication-status: COMPLETED x-amz-version-id: VfnMp2ZizJ3w4YS5PW0ApDKjA9206Fm_ X-Cache: Miss from cloudfront Via: 1.1 8e86372eaaa62fc64b70e7bcde725dd9.cloudfront.net (CloudFront) X-Amz-Cf-Id: N_tlRWJ_JfwQJv-6j6kiGlN1k-cfuHuLjCzfFpcwfEot3poTrd4IqQ== Length: 69931598 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.42M 45s 3072K ........ ........ ........ ........ ........ ........ 8% 4.97M 27s 6144K ........ ........ ........ ........ ........ ........ 13% 8.55M 20s 9216K ........ ........ ........ ........ ........ ........ 17% 8.45M 16s 12288K ........ ........ ........ ........ ........ ........ 22% 12.0M 13s 15360K ........ ........ ........ ........ ........ ........ 26% 9.92M 11s 18432K ........ ........ ........ ........ ........ ........ 31% 13.4M 9s 21504K ........ ........ ........ ........ ........ ........ 35% 14.6M 8s 24576K ........ ........ ........ ........ ........ ........ 40% 15.5M 7s 27648K ........ ........ ........ ........ ........ ........ 44% 8.93M 6s 30720K ........ ........ ........ ........ ........ ........ 49% 20.3M 5s 33792K ........ ........ ........ ........ ........ ........ 53% 8.35M 5s 36864K ........ ........ ........ ........ ........ ........ 58% 12.4M 4s 39936K ........ ........ ........ ........ ........ ........ 62% 9.72M 4s 43008K ........ ........ ........ ........ ........ ........ 67% 12.7M 3s 46080K ........ ........ ........ ........ ........ ........ 71% 8.23M 3s 49152K ........ ........ ........ ........ ........ ........ 76% 7.29M 2s 52224K ........ ........ ........ ........ ........ ........ 80% 8.67M 2s 55296K ........ ........ ........ ........ ........ ........ 85% 7.39M 1s 58368K ........ ........ ........ ........ ........ ........ 89% 7.37M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 6.06M 1s 64512K ........ ........ ........ ........ ........ ........ 98% 7.39M 0s 67584K ........ ... 100% 6.52M=9.2s 2016-05-09 18:38:56 (7.27 MB/s) - 'Thunderbird 38.6.0.dmg' saved [69931598/69931598] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/pa-IN/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/pa-IN/Thunderbird 45.1.0.dmg'] --2016-05-09 18:38:56-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/pa-IN/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77309471 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:38:57 GMT ETag: "6268aea32a321a37432e55b5013a5c93" Last-Modified: Mon, 09 May 2016 21:21:42 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 6stVy1.CnonEALkFZzY85aK2eyezuJYc X-Cache: Miss from cloudfront Via: 1.1 81871f1c889cc44b6c25e3ef722a3801.cloudfront.net (CloudFront) X-Amz-Cf-Id: DwrSoDqT0_KHR2TdHT0tqIugF9ChrOHstL5XM8zx4D02oZJ5wq87Tg== Length: 77309471 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.07M 66s 3072K ........ ........ ........ ........ ........ ........ 8% 3.36M 42s 6144K ........ ........ ........ ........ ........ ........ 12% 4.99M 31s 9216K ........ ........ ........ ........ ........ ........ 16% 6.06M 25s 12288K ........ ........ ........ ........ ........ ........ 20% 7.46M 20s 15360K ........ ........ ........ ........ ........ ........ 24% 9.19M 17s 18432K ........ ........ ........ ........ ........ ........ 28% 9.39M 15s 21504K ........ ........ ........ ........ ........ ........ 32% 10.9M 13s 24576K ........ ........ ........ ........ ........ ........ 36% 11.0M 11s 27648K ........ ........ ........ ........ ........ ........ 40% 9.14M 10s 30720K ........ ........ ........ ........ ........ ........ 44% 15.7M 9s 33792K ........ ........ ........ ........ ........ ........ 48% 14.6M 7s 36864K ........ ........ ........ ........ ........ ........ 52% 12.2M 7s 39936K ........ ........ ........ ........ ........ ........ 56% 12.1M 6s 43008K ........ ........ ........ ........ ........ ........ 61% 13.4M 5s 46080K ........ ........ ........ ........ ........ ........ 65% 8.56M 4s 49152K ........ ........ ........ ........ ........ ........ 69% 17.4M 4s 52224K ........ ........ ........ ........ ........ ........ 73% 12.8M 3s 55296K ........ ........ ........ ........ ........ ........ 77% 12.3M 3s 58368K ........ ........ ........ ........ ........ ........ 81% 11.7M 2s 61440K ........ ........ ........ ........ ........ ........ 85% 13.3M 2s 64512K ........ ........ ........ ........ ........ ........ 89% 10.9M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 12.3M 1s 70656K ........ ........ ........ ........ ........ ........ 97% 11.8M 0s 73728K ........ ........ ........ ... 100% 13.6M=10s 2016-05-09 18:39:07 (7.23 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77309471/77309471] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/pa.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/pa.lproj/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/pa.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/pa.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/pa.lproj/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/pa.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/pa.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/pa.lproj/ non-fatal error removing directory: Contents/Resources/pa.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/pa.lproj/InfoPlist.strings FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 36 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pa-IN/calendar/lightning-l10n.js" --- > //@line 36 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pa-IN/calendar/lightning-l10n.js" 3c3 < //@line 38 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pa-IN/calendar/lightning-l10n.js" --- > //@line 38 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pa-IN/calendar/lightning-l10n.js" 5c5 < //@line 41 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pa-IN/calendar/lightning-l10n.js" --- > //@line 41 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pa-IN/calendar/lightning-l10n.js" 8c8 < //@line 44 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pa-IN/calendar/lightning-l10n.js" --- > //@line 44 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pa-IN/calendar/lightning-l10n.js" 19c19 < //@line 55 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pa-IN/calendar/lightning-l10n.js" --- > //@line 55 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pa-IN/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c81 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d106 < rmdir "Contents/Resources/searchplugins/" 122d111 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 29c29 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 33c33 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 37c37 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 41c41 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 45c45 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 49c49 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 53c53 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 57c57 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 61c61 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 65c65 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 69c69 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 73c73 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 77c77 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 81c81 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 85c85 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 89c89 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 93c93 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 97c97 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 101c101 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 105c105 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 109c109 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 113c113 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 117c117 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 121c121 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 125c125 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 129c129 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 133c133 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 137c137 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 141c141 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 145c145 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 149c149 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 153c153 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 157c157 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 161c161 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 165c165 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 169c169 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 173c173 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 177c177 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 181c181 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 185c185 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 189c189 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 193c193 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 197c197 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 201c201 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 209c209 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 213c213 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 217c217 < V+NHgAjLfBf+DsnCXKcAM84A8c0= --- > X/34ANwnqprBVlPi9gNrlQe4Ab4= 221c221 < mZ2KrCRIPQe2HFnHjRyfGUIezYg= --- > SuHf8LYVtkPncbDOIFWsTjVl9zs= 225c225 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 229c229 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 233c233 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 237c237 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 241c241 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 245c245 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 249c249 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 253c253 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 257c257 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 261c261 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 265c265 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 269c269 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 273c273 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 277c277 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 281c281 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 293c293 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 297c297 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 305c305 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 309c309 < 2d7bQy9x97OrJFsu4ztg3hWbfTo= --- > 8WrgfVveybK73AG2cYT0fBpRS1s= 313c313 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 317c317 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 321c321 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 325c325 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 329c329 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 333c333 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 337c337 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 341c341 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 345c345 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 349c349 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 353c353 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 357c357 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 361c361 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 369c369 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 373c373 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 377c377 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 381c381 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 385c385 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 387c387 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 389c389 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 391c391 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 393c393 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 395c395 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 397c397 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 401c401 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 429c429 < 09FnzkVSSfn/mxiiHUcptUhqi5g= --- > OCnIVm4nd19kwqU8FQvcxz5icPA= 442c442 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 446c446 < SCqsHAgHuGNlKyYKqgP0MMa1L1I= --- > f5D1DBQT65V8qCOazmM7EANgw4U= 450c450 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 600,627d599 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 656c628 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c637 < jXrNfFWvVRUqnQ+zAGIybxTL6nM= --- > 1Er/xl6wHbRqZfl2jdPgpoANpDU= 674c646 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c655 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c664 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c669 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c673 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c682 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c691 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c700 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c709 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c718 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c727 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c736 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c745 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c754 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c763 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c770 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c774 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c786 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 818c790 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 822c794 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 826c798 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 830c802 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 834c806 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 838c810 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 842c814 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 846c818 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 850c822 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 854c826 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 858c830 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 862c834 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 866c838 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 870c842 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 874c846 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 878c850 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 882c854 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 886c858 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 890c862 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 894c866 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 898c870 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 902c874 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 906c878 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 910c882 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 914c886 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 918c890 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 922c894 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 926c898 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 930c902 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 934c906 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 938c910 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 942c914 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 946c918 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 950c922 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 954c926 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 958c930 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 962c934 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 966c938 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 970c942 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 974c946 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 978c950 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 982c954 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 986c958 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 990c962 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 998c970 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1002c974 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1006c978 < V+NHgAjLfBf+DsnCXKcAM84A8c0= --- > X/34ANwnqprBVlPi9gNrlQe4Ab4= 1010c982 < mZ2KrCRIPQe2HFnHjRyfGUIezYg= --- > SuHf8LYVtkPncbDOIFWsTjVl9zs= 1014c986 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1018c990 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1022c994 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1026c998 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1030c1002 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1034c1006 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1038c1010 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1042c1014 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1046c1018 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1050c1022 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1054c1026 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1058c1030 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1062c1034 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1066c1038 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1070c1042 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1082c1054 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1086c1058 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1094c1066 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1098c1070 < 2d7bQy9x97OrJFsu4ztg3hWbfTo= --- > 8WrgfVveybK73AG2cYT0fBpRS1s= 1102c1074 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1106c1078 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1110c1082 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1114c1086 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1118c1090 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1122c1094 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1126c1098 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1130c1102 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1134c1106 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1138c1110 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1142c1114 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1146c1118 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1150c1122 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1158c1130 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1162c1134 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1166c1138 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1170c1142 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1174c1146 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1176c1148 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1178c1150 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1180c1152 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1182c1154 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1184c1156 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1186c1158 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1188c1160 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1190c1162 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1218c1190 < 09FnzkVSSfn/mxiiHUcptUhqi5g= --- > OCnIVm4nd19kwqU8FQvcxz5icPA= 1231c1203 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1235c1207 < SCqsHAgHuGNlKyYKqgP0MMa1L1I= --- > f5D1DBQT65V8qCOazmM7EANgw4U= 1239c1211 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1389,1416d1360 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48051757 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:39 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48051756 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:39 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48051755 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:39 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48051706 8 -rw-r--r-- 1 cltbld staff 1531 May 9 18:39 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48051705 8 -rw-r--r-- 1 cltbld staff 1670 May 9 18:39 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48051704 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:39 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48051703 8 -rw-r--r-- 1 cltbld staff 2569 May 9 18:39 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48051702 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:39 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48051701 8 -rw-r--r-- 1 cltbld staff 1338 May 9 18:39 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48051700 8 -rw-r--r-- 1 cltbld staff 1363 May 9 18:39 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:40:03-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:40:03 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:40:03 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pl/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pl/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:40:03-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pl/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68928768 Connection: keep-alive Date: Tue, 10 May 2016 01:11:30 GMT x-amz-replication-status: COMPLETED x-amz-version-id: _4DGG0itxab.CJIEpmkz8GWQ0sojRsyw Last-Modified: Tue, 03 May 2016 16:04:25 GMT ETag: "5ae81f6f058b65849c1eb9e35561dccf" Accept-Ranges: bytes Server: AmazonS3 Age: 1714 X-Cache: Hit from cloudfront Via: 1.1 5574699f9d8b8aad21acf2edbb25dc62.cloudfront.net (CloudFront) X-Amz-Cf-Id: b-GzfPvAg0Xpwny0XsDceJffi61gIzr_BD-GP3AZpT1YSZh2UtR-yw== Length: 68928768 (66M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 42.8M 1s 3072K ........ ........ ........ ........ ........ ........ 9% 59.1M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 50.2M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 49.9M 1s 12288K ........ ........ ........ ........ ........ ........ 22% 50.0M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 26.4M 1s 18432K ........ ........ ........ ........ ........ ........ 31% 107M 1s 21504K ........ ........ ........ ........ ........ ........ 36% 46.5M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 45.3M 1s 27648K ........ ........ ........ ........ ........ ........ 45% 49.6M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 46.2M 1s 33792K ........ ........ ........ ........ ........ ........ 54% 49.6M 1s 36864K ........ ........ ........ ........ ........ ........ 59% 28.8M 1s 39936K ........ ........ ........ ........ ........ ........ 63% 44.1M 1s 43008K ........ ........ ........ ........ ........ ........ 68% 42.1M 0s 46080K ........ ........ ........ ........ ........ ........ 73% 62.7M 0s 49152K ........ ........ ........ ........ ........ ........ 77% 50.3M 0s 52224K ........ ........ ........ ........ ........ ........ 82% 39.6M 0s 55296K ........ ........ ........ ........ ........ ........ 86% 46.4M 0s 58368K ........ ........ ........ ........ ........ ........ 91% 46.2M 0s 61440K ........ ........ ........ ........ ........ ........ 95% 43.8M 0s 64512K ........ ........ ........ ........ ........ ... 100% 38.9M=1.5s 2016-05-09 18:40:04 (45.2 MB/s) - 'update/complete.mar' saved [68928768/68928768] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/pl/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/pl/Thunderbird 38.6.0.dmg'] --2016-05-09 18:40:06-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/pl/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70943172 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:40:07 GMT ETag: "afb7326c3307a283c9ffa3e48814c28c" Last-Modified: Fri, 12 Feb 2016 21:48:46 GMT x-amz-replication-status: COMPLETED x-amz-version-id: e4B7TyoBuHyfvVKxp58avrqD7XDmiVJN X-Cache: Miss from cloudfront Via: 1.1 2a47832c458ab2a6b20c8363f5aa35ea.cloudfront.net (CloudFront) X-Amz-Cf-Id: 8xfNLqHcjz6-DZqX9mBsRTWRzQ5Yy7YdoEiDZ9pcN2k4eD8tbKbYJA== Length: 70943172 (68M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.86M 35s 3072K ........ ........ ........ ........ ........ ........ 8% 8.89M 20s 6144K ........ ........ ........ ........ ........ ........ 13% 13.0M 14s 9216K ........ ........ ........ ........ ........ ........ 17% 18.4M 11s 12288K ........ ........ ........ ........ ........ ........ 22% 21.8M 9s 15360K ........ ........ ........ ........ ........ ........ 26% 10.3M 8s 18432K ........ ........ ........ ........ ........ ........ 31% 112M 6s 21504K ........ ........ ........ ........ ........ ........ 35% 29.0M 5s 24576K ........ ........ ........ ........ ........ ........ 39% 30.5M 5s 27648K ........ ........ ........ ........ ........ ........ 44% 39.1M 4s 30720K ........ ........ ........ ........ ........ ........ 48% 28.5M 3s 33792K ........ ........ ........ ........ ........ ........ 53% 34.7M 3s 36864K ........ ........ ........ ........ ........ ........ 57% 31.7M 2s 39936K ........ ........ ........ ........ ........ ........ 62% 33.7M 2s 43008K ........ ........ ........ ........ ........ ........ 66% 30.0M 2s 46080K ........ ........ ........ ........ ........ ........ 70% 40.5M 1s 49152K ........ ........ ........ ........ ........ ........ 75% 40.2M 1s 52224K ........ ........ ........ ........ ........ ........ 79% 39.2M 1s 55296K ........ ........ ........ ........ ........ ........ 84% 32.3M 1s 58368K ........ ........ ........ ........ ........ ........ 88% 39.4M 1s 61440K ........ ........ ........ ........ ........ ........ 93% 32.8M 0s 64512K ........ ........ ........ ........ ........ ........ 97% 41.1M 0s 67584K ........ ........ ........ .. 100% 40.7M=4.1s 2016-05-09 18:40:11 (16.3 MB/s) - 'Thunderbird 38.6.0.dmg' saved [70943172/70943172] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/pl/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/pl/Thunderbird 45.1.0.dmg'] --2016-05-09 18:40:12-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/pl/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 78245648 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:40:13 GMT ETag: "47da48b4c6d45287229ca444c811e1f8" Last-Modified: Mon, 09 May 2016 21:44:23 GMT x-amz-replication-status: COMPLETED x-amz-version-id: uLm6OWx8rMTYHSp9ROosFQJkDMvTG06b X-Cache: Miss from cloudfront Via: 1.1 f0ef92e52918ab5129ebd66f2f633cbb.cloudfront.net (CloudFront) X-Amz-Cf-Id: qqR7pEjTl0Zi_z0RgSik_1kCzdqZZ4Wpbu96pHLyXkvlEtIDSzH2jA== Length: 78245648 (75M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.22M 59s 3072K ........ ........ ........ ........ ........ ........ 8% 2.77M 40s 6144K ........ ........ ........ ........ ........ ........ 12% 3.06M 33s 9216K ........ ........ ........ ........ ........ ........ 16% 3.33M 28s 12288K ........ ........ ........ ........ ........ ........ 20% 3.27M 25s 15360K ........ ........ ........ ........ ........ ........ 24% 3.36M 23s 18432K ........ ........ ........ ........ ........ ........ 28% 3.36M 21s 21504K ........ ........ ........ ........ ........ ........ 32% 3.32M 19s 24576K ........ ........ ........ ........ ........ ........ 36% 4.29M 17s 27648K ........ ........ ........ ........ ........ ........ 40% 4.37M 15s 30720K ........ ........ ........ ........ ........ ........ 44% 4.99M 14s 33792K ........ ........ ........ ........ ........ ........ 48% 5.66M 12s 36864K ........ ........ ........ ........ ........ ........ 52% 5.21M 11s 39936K ........ ........ ........ ........ ........ ........ 56% 5.05M 10s 43008K ........ ........ ........ ........ ........ ........ 60% 5.10M 9s 46080K ........ ........ ........ ........ ........ ........ 64% 5.70M 8s 49152K ........ ........ ........ ........ ........ ........ 68% 5.10M 7s 52224K ........ ........ ........ ........ ........ ........ 72% 5.87M 6s 55296K ........ ........ ........ ........ ........ ........ 76% 5.16M 5s 58368K ........ ........ ........ ........ ........ ........ 80% 5.06M 4s 61440K ........ ........ ........ ........ ........ ........ 84% 5.95M 3s 64512K ........ ........ ........ ........ ........ ........ 88% 7.12M 2s 67584K ........ ........ ........ ........ ........ ........ 92% 7.25M 1s 70656K ........ ........ ........ ........ ........ ........ 96% 8.22M 1s 73728K ........ ........ ........ ........ ........ . 100% 8.95M=18s 2016-05-09 18:40:31 (4.12 MB/s) - 'Thunderbird 45.1.0.dmg' saved [78245648/78245648] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/wolnelektury-pl.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-pl.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/pwn-pl.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/merlin-pl.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/allegro-pl.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/pl.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/pl.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/pl.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/pl.lproj/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/wolnelektury-pl.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia-pl.xml PREPARE ADD Contents/Resources/searchplugins/pwn-pl.xml PREPARE ADD Contents/Resources/searchplugins/merlin-pl.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/allegro-pl.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/pl.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/pl.dic PREPARE ADD Contents/Resources/dictionaries/pl.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/wolnelektury-pl.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-pl.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/pwn-pl.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/merlin-pl.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/allegro-pl.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/pl.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/pl.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/pl.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/pl.lproj/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/wolnelektury-pl.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia-pl.xml EXECUTE ADD Contents/Resources/searchplugins/pwn-pl.xml EXECUTE ADD Contents/Resources/searchplugins/merlin-pl.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/allegro-pl.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/pl.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/pl.dic EXECUTE ADD Contents/Resources/dictionaries/pl.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/wolnelektury-pl.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-pl.xml FINISH REMOVEFILE Contents/Resources/searchplugins/pwn-pl.xml FINISH REMOVEFILE Contents/Resources/searchplugins/merlin-pl.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/allegro-pl.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/pl.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/pl.dic FINISH REMOVEFILE Contents/Resources/dictionaries/pl.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/pl.lproj/ non-fatal error removing directory: Contents/Resources/pl.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/wolnelektury-pl.xml FINISH ADD Contents/Resources/searchplugins/wikipedia-pl.xml FINISH ADD Contents/Resources/searchplugins/pwn-pl.xml FINISH ADD Contents/Resources/searchplugins/merlin-pl.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/allegro-pl.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/pl.lproj/InfoPlist.strings FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/pl.dic FINISH ADD Contents/Resources/dictionaries/pl.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pl/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pl/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pl/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pl/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pl/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pl/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pl/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pl/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pl/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pl/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,9d3 < remove "Contents/Resources/searchplugins/wolnelektury-pl.xml" < remove "Contents/Resources/searchplugins/wikipedia-pl.xml" < remove "Contents/Resources/searchplugins/pwn-pl.xml" < remove "Contents/Resources/searchplugins/merlin-pl.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/allegro-pl.xml" 58,60c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 91c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 117d108 < rmdir "Contents/Resources/searchplugins/" 123d113 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < nm401xkazOuDnLAD9CfcW5+jOWA= --- > P7qVq13ZpWDdYcKfFXFWy46Oh44= 229c229 < tiyUX+GfFOqgBq4xqlUNlUXL3kI= --- > 6ecRj2SACcULPr9TZCqvP2VpPUY= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < uwaJcAeIZpOEPUajnLpJWX7NobA= --- > wy5zB+rqrBZmyLP6B/M5Gh5/OjM= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 395c395 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 397c397 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 401c401 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 403c403 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 405c405 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 409c409 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 437c437 < HIFO5uiWHrcGHuBmTlyk1Ug9t7k= --- > pDfWR1OaeTyYvwx/GSeuq3cM9FI= 450c450 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 454c454 < DU5cSvwE9JKwGQfwh5orZ3wtmJk= --- > /yzXKiPcjcIAto1Zzb6yn04btFo= 458c458 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,631d607 < Resources/searchplugins/allegro-pl.xml < < lDeG6q+EKb03MtH/5fzlkrOwoL0= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/merlin-pl.xml < < ZPR7OTpGz0jdKPdH1aXMFFteq+o= < < Resources/searchplugins/pwn-pl.xml < < RxgYjVC4cSQ1hH8GsFgZTlUHq5o= < < Resources/searchplugins/wikipedia-pl.xml < < A86eyrp+i+4/JkohWS6oamTuq0U= < < Resources/searchplugins/wolnelektury-pl.xml < < QbHQ9xCGtCzMrDLOGuRJceNaTEA= < 660c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 669c645 < IN3BEzZ1j4eeRs37AmDQdnJGm9Q= --- > sZRywl7JDkxSWibX3yWRfXzCSXk= 678c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 687c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 696c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 701c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 705c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 714c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 723c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 732c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 741c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 750c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 759c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 768c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 777c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 786c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 795c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 802c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 806c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 818c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 830c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 834c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 838c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 842c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 846c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 850c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 854c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 858c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 862c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 866c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 870c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 874c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 878c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 882c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 886c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 890c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 894c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 898c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 902c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 906c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 910c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 914c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 918c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 922c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 926c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 930c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 934c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 938c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 942c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 946c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 950c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 954c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 958c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 962c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 966c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 970c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 974c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 978c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 982c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 986c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 990c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 994c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 998c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1002c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1010c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1014c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1018c994 < nm401xkazOuDnLAD9CfcW5+jOWA= --- > P7qVq13ZpWDdYcKfFXFWy46Oh44= 1022c998 < tiyUX+GfFOqgBq4xqlUNlUXL3kI= --- > 6ecRj2SACcULPr9TZCqvP2VpPUY= 1026c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1030c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1034c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1038c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1042c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1046c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1050c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1054c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1058c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1062c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1066c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1070c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1074c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1078c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1082c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1094c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1098c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1106c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1110c1086 < uwaJcAeIZpOEPUajnLpJWX7NobA= --- > wy5zB+rqrBZmyLP6B/M5Gh5/OjM= 1114c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1118c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1122c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1126c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1130c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1134c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1138c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1142c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1146c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1150c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1154c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1158c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1162c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1170c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1174c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1178c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1182c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1186c1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1188c1164 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1190c1166 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1192c1168 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1194c1170 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1196c1172 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1198c1174 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1200c1176 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1202c1178 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1230c1206 < HIFO5uiWHrcGHuBmTlyk1Ug9t7k= --- > pDfWR1OaeTyYvwx/GSeuq3cM9FI= 1243c1219 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1247c1223 < DU5cSvwE9JKwGQfwh5orZ3wtmJk= --- > /yzXKiPcjcIAto1Zzb6yn04btFo= 1251c1227 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1401,1424d1376 < Resources/searchplugins/allegro-pl.xml < < lDeG6q+EKb03MtH/5fzlkrOwoL0= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/merlin-pl.xml < < ZPR7OTpGz0jdKPdH1aXMFFteq+o= < < Resources/searchplugins/pwn-pl.xml < < RxgYjVC4cSQ1hH8GsFgZTlUHq5o= < < Resources/searchplugins/wikipedia-pl.xml < < A86eyrp+i+4/JkohWS6oamTuq0U= < < Resources/searchplugins/wolnelektury-pl.xml < < QbHQ9xCGtCzMrDLOGuRJceNaTEA= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48052509 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:41 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48052508 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:41 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48052507 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:41 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48052458 8 -rw-r--r-- 1 cltbld staff 2261 May 9 18:41 source/Thunderbird.app/Contents/Resources/searchplugins/allegro-pl.xml 48052457 8 -rw-r--r-- 1 cltbld staff 2371 May 9 18:41 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48052456 8 -rw-r--r-- 1 cltbld staff 1179 May 9 18:41 source/Thunderbird.app/Contents/Resources/searchplugins/merlin-pl.xml 48052455 8 -rw-r--r-- 1 cltbld staff 2066 May 9 18:41 source/Thunderbird.app/Contents/Resources/searchplugins/pwn-pl.xml 48052454 24 -rw-r--r-- 1 cltbld staff 9353 May 9 18:41 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-pl.xml 48052453 8 -rw-r--r-- 1 cltbld staff 1238 May 9 18:41 source/Thunderbird.app/Contents/Resources/searchplugins/wolnelektury-pl.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:41:27-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:41:27 GMT Keep-Alive: timeout=5, max=979 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:41:27 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-BR/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-BR/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:41:28-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-BR/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68004536 Connection: keep-alive Date: Tue, 10 May 2016 01:11:39 GMT x-amz-replication-status: COMPLETED x-amz-version-id: LDl9aEPEwnyzs4iskhP.EZgQ5qyUglxl Last-Modified: Tue, 03 May 2016 16:19:52 GMT ETag: "a390809d923f95ae64947e233ebac94d" Accept-Ranges: bytes Server: AmazonS3 Age: 1790 X-Cache: Hit from cloudfront Via: 1.1 96255a5b0caf50bcafcd101c1ff13691.cloudfront.net (CloudFront) X-Amz-Cf-Id: BnzB46DuzYazQWGo7ZIUm8bh3wlW7jM6rDmxEMHApjgM4_rgAFzp2w== Length: 68004536 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 18.1M 3s 3072K ........ ........ ........ ........ ........ ........ 9% 47.5M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 35.2M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 32.5M 2s 12288K ........ ........ ........ ........ ........ ........ 23% 40.2M 2s 15360K ........ ........ ........ ........ ........ ........ 27% 45.4M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 15.7M 2s 21504K ........ ........ ........ ........ ........ ........ 37% 53.9M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 15.3M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 109M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 33.9M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 45.0M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 31.3M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 37.3M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 30.4M 1s 46080K ........ ........ ........ ........ ........ ........ 74% 35.5M 1s 49152K ........ ........ ........ ........ ........ ........ 78% 36.7M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 45.8M 0s 55296K ........ ........ ........ ........ ........ ........ 87% 39.2M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 42.8M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 33.0M 0s 64512K ........ ........ ........ ..... 100% 30.9M=2.0s 2016-05-09 18:41:30 (32.8 MB/s) - 'update/complete.mar' saved [68004536/68004536] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/pt-BR/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/pt-BR/Thunderbird 38.6.0.dmg'] --2016-05-09 18:41:32-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/pt-BR/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70029546 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:41:32 GMT ETag: "02132ccc2e960b8cd90d1d29b8bbe372" Last-Modified: Fri, 12 Feb 2016 21:48:48 GMT x-amz-replication-status: COMPLETED x-amz-version-id: SBowWkJGuiGzbUqaCQEvkufbMGOPgwrX X-Cache: Miss from cloudfront Via: 1.1 aa89533ad2ec5e0edba466c9920bd000.cloudfront.net (CloudFront) X-Amz-Cf-Id: TKpUjH69J5pvKZN7dwjTwqqVuBs9roPVS_y2VHeq_D-86mItwu5eiw== Length: 70029546 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.54M 41s 3072K ........ ........ ........ ........ ........ ........ 8% 5.15M 26s 6144K ........ ........ ........ ........ ........ ........ 13% 7.54M 19s 9216K ........ ........ ........ ........ ........ ........ 17% 10.7M 15s 12288K ........ ........ ........ ........ ........ ........ 22% 13.1M 12s 15360K ........ ........ ........ ........ ........ ........ 26% 15.1M 10s 18432K ........ ........ ........ ........ ........ ........ 31% 16.0M 8s 21504K ........ ........ ........ ........ ........ ........ 35% 18.8M 7s 24576K ........ ........ ........ ........ ........ ........ 40% 23.0M 6s 27648K ........ ........ ........ ........ ........ ........ 44% 23.9M 5s 30720K ........ ........ ........ ........ ........ ........ 49% 19.6M 4s 33792K ........ ........ ........ ........ ........ ........ 53% 12.8M 4s 36864K ........ ........ ........ ........ ........ ........ 58% 27.2M 3s 39936K ........ ........ ........ ........ ........ ........ 62% 48.3M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 69.9M 2s 46080K ........ ........ ........ ........ ........ ........ 71% 48.6M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 33.1M 2s 52224K ........ ........ ........ ........ ........ ........ 80% 26.9M 1s 55296K ........ ........ ........ ........ ........ ........ 85% 31.0M 1s 58368K ........ ........ ........ ........ ........ ........ 89% 31.5M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 28.4M 0s 64512K ........ ........ ........ ........ ........ ........ 98% 18.1M 0s 67584K ........ .... 100% 21.6M=5.6s 2016-05-09 18:41:38 (11.9 MB/s) - 'Thunderbird 38.6.0.dmg' saved [70029546/70029546] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/pt-BR/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/pt-BR/Thunderbird 45.1.0.dmg'] --2016-05-09 18:41:38-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/pt-BR/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77385602 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:41:39 GMT ETag: "07ed07f2a1ff41c6ab78d659a6d264ba" Last-Modified: Mon, 09 May 2016 22:06:22 GMT x-amz-replication-status: COMPLETED x-amz-version-id: gLphqUUM9rnT4v6_s0Gz.Ro7onaFMKBC X-Cache: Miss from cloudfront Via: 1.1 95da1452a75435200220a7075ca3893f.cloudfront.net (CloudFront) X-Amz-Cf-Id: ksLftHSfzRKcbREDcnEI1C88T-ejBysUsfn1ZGuk3CrPVgrAu16oYg== Length: 77385602 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.58M 45s 3072K ........ ........ ........ ........ ........ ........ 8% 5.55M 28s 6144K ........ ........ ........ ........ ........ ........ 12% 7.93M 20s 9216K ........ ........ ........ ........ ........ ........ 16% 9.47M 16s 12288K ........ ........ ........ ........ ........ ........ 20% 12.4M 13s 15360K ........ ........ ........ ........ ........ ........ 24% 15.0M 11s 18432K ........ ........ ........ ........ ........ ........ 28% 18.5M 9s 21504K ........ ........ ........ ........ ........ ........ 32% 16.4M 8s 24576K ........ ........ ........ ........ ........ ........ 36% 19.5M 7s 27648K ........ ........ ........ ........ ........ ........ 40% 14.8M 6s 30720K ........ ........ ........ ........ ........ ........ 44% 11.8M 6s 33792K ........ ........ ........ ........ ........ ........ 48% 9.27M 5s 36864K ........ ........ ........ ........ ........ ........ 52% 10.6M 5s 39936K ........ ........ ........ ........ ........ ........ 56% 13.6M 4s 43008K ........ ........ ........ ........ ........ ........ 60% 13.9M 4s 46080K ........ ........ ........ ........ ........ ........ 65% 14.1M 3s 49152K ........ ........ ........ ........ ........ ........ 69% 19.3M 3s 52224K ........ ........ ........ ........ ........ ........ 73% 21.1M 2s 55296K ........ ........ ........ ........ ........ ........ 77% 15.5M 2s 58368K ........ ........ ........ ........ ........ ........ 81% 22.6M 1s 61440K ........ ........ ........ ........ ........ ........ 85% 21.6M 1s 64512K ........ ........ ........ ........ ........ ........ 89% 23.8M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 15.7M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 21.9M 0s 73728K ........ ........ ........ .... 100% 23.3M=7.1s 2016-05-09 18:41:46 (10.4 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77385602/77385602] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/twitter.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/eBay.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/bing.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/pt.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/pt-BR.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/pt-BR.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/pt.lproj/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/yahoo.xml PREPARE ADD Contents/Resources/searchplugins/wikipedia.xml PREPARE ADD Contents/Resources/searchplugins/twitter.xml PREPARE ADD Contents/Resources/searchplugins/eBay.xml PREPARE ADD Contents/Resources/searchplugins/bing.xml PREPARE ADD Contents/Resources/searchplugins/aol-web-search.xml PREPARE ADD Contents/Resources/searchplugins/amazondotcom.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/pt.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/pt-BR.dic PREPARE ADD Contents/Resources/dictionaries/pt-BR.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/yahoo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/twitter.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/eBay.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/bing.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/pt.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/pt-BR.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/pt-BR.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/pt.lproj/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/yahoo.xml EXECUTE ADD Contents/Resources/searchplugins/wikipedia.xml EXECUTE ADD Contents/Resources/searchplugins/twitter.xml EXECUTE ADD Contents/Resources/searchplugins/eBay.xml EXECUTE ADD Contents/Resources/searchplugins/bing.xml EXECUTE ADD Contents/Resources/searchplugins/aol-web-search.xml EXECUTE ADD Contents/Resources/searchplugins/amazondotcom.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/pt.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/pt-BR.dic EXECUTE ADD Contents/Resources/dictionaries/pt-BR.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/yahoo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia.xml FINISH REMOVEFILE Contents/Resources/searchplugins/twitter.xml FINISH REMOVEFILE Contents/Resources/searchplugins/eBay.xml FINISH REMOVEFILE Contents/Resources/searchplugins/bing.xml FINISH REMOVEFILE Contents/Resources/searchplugins/aol-web-search.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazondotcom.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/pt.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/pt-BR.dic FINISH REMOVEFILE Contents/Resources/dictionaries/pt-BR.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/pt.lproj/ non-fatal error removing directory: Contents/Resources/pt.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/yahoo.xml FINISH ADD Contents/Resources/searchplugins/wikipedia.xml FINISH ADD Contents/Resources/searchplugins/twitter.xml FINISH ADD Contents/Resources/searchplugins/eBay.xml FINISH ADD Contents/Resources/searchplugins/bing.xml FINISH ADD Contents/Resources/searchplugins/aol-web-search.xml FINISH ADD Contents/Resources/searchplugins/amazondotcom.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/pt.lproj/InfoPlist.strings FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/pt-BR.dic FINISH ADD Contents/Resources/dictionaries/pt-BR.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini 47c47 < ErrorExtraFileExists=The application didn't leave an application data file. --- > ErrorExtraFileExists=O aplicativo não deixou um arquivo de dados. 50c50 < ErrorDumpFileExists=The application did not leave a crash dump file. --- > ErrorDumpFileExists=O aplicativo não deixou um arquivo dump. diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources 76c76 < a5POcAsSkF7kF38nwLwt4PVUGhM= --- > OfZWwCM5Biz2DhVHHQEqfHtydQs= 150c150 < a5POcAsSkF7kF38nwLwt4PVUGhM= --- > OfZWwCM5Biz2DhVHHQEqfHtydQs= Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/dictionaries/pt-BR.dic target/Thunderbird.app/Contents/Resources/dictionaries/pt-BR.dic 1c1 < 40452 --- > 40821 87c87 < abertura/pER --- > abertura/phER 95a96 > abiogênese/p 326c327 < acatar/XYPLMDNv --- > acatar/XYPLDMNvS 338c339 < acelerar/XYPLScMDnBR --- > acelerar/XYPLDMBNWcnRS 419a421,422 > acolitar/XYPL > acólito/fp 430c433 < acontecer/XYPLM --- > acontecer/XYPLMS 493a497 > acumpliciar/XYPL 564c568 < adiantar/XYPLMDNW --- > adiantar/XYPLDMBNW 643a648 > adulterino/fp 648c653 < aduzir/ZYL --- > aduzir/ZYLc 748a754 > aerobarco/p 758a765 > Aerolíneas 845a853 > afoguear/ZYPL 1102a1111 > Alana 1287a1297 > alho-poró 1306a1317 > alienatório/fp 1336a1348 > Allende 1355c1367 < alocagem/p --- > alocagem/pR 1372c1384 < aloprar/XYPLBWc --- > aloprar/XYPLDBWc 1385a1398 > alquilar/XYPLDcn 1392a1406 > altanaria/f 1447a1462 > alvar/p 1493c1508 < amamentar/XYPLcD --- > amamentar/XYPLDcn 1531a1547 > amásio/fp 1553a1570 > ambiência/p 1589a1607 > americanófilo/fp 1654c1672,1673 < amordaçar/XYPL --- > amorável/pm > amordaçar/XYPLM 1757a1777 > ancho 1858a1879 > anglicista/p 1895a1917,1918 > animaçãozinha > animaçõezinhas 1899d1921 < animado/fplhs 1906c1928 < animar/XYPLDBNcnvRS --- > animar/XYPLDBNWcnvRS 1917d1938 < Aniston 2190d2210 < antitético/fpH 2354a2375 > apiário/p 2392a2414 > Apolônio 2527a2550 > Aquaplay 2544a2568 > aquilatar/XYPL 2585a2610 > Araruama 2599c2624 < árbitro/px --- > árbitro/fpx 2727c2752 < armamentista/p --- > armamentista/pS 2764d2788 < Arpoador 2861c2885 < arrítmico --- > arrítmico/fpA 2863c2887 < arrivista --- > arrivista/p 2949a2974 > artroscopia/p 2993a3019 > asinino/fp 3091c3117 < assintótico/fp --- > assintótico/fpH 3098a3125 > assistivo/fp 3118c3145 < assossegar/XYPL --- > assossegar/XYPLDS 3135a3163 > Astra 3169a3198 > ataraxia/p 3190a3220 > atêm 3201a3232 > atenho-me 3208a3240 > aterosclerose/pA 3229c3261,3262 < atinar/XYPL --- > atinar/XYPLcS > atinente/p 3239c3272,3276 < ativar/XYPLDcnRSI --- > ativar/XYPLDMcnRSI > atividade-fim > atividade-meio > atividades-fim > atividades-meio 3243d3279 < Atlântico 3279a3316 > atrabiliário/fp 3294d3330 < atratividade/p 3329c3365,3366 < atuarial/p --- > atuarial/pm > atuário/p 3331a3369 > atucanar/XYPL 3419a3458 > austeridade/pA 3421c3460 < austero/fpid --- > austero/fpi 3437a3477 > autoaceitar/XYPLc 3457a3498 > autocarregar/XYPLM 3542a3584,3585 > autogolpe/p > autogoverno/p 3558a3602 > autolimitar/XYPLc 3611c3655 < autoritário/fdp --- > autoritário/fpdH 3616a3661 > autorreferencial/p 3622a3668 > autorregularizar/XYPLDc 3624a3671 > autorreparar/XYPLcv 3630a3678 > autossabotar/XYPLD 3639a3688,3690 > autotrofia/pi > autotrófico/fp > autótrofo/fp 3733a3785 > AVG 3806c3858 < avoado/fp --- > avoar/XYPL 3889a3942 > baba-ovo/p 3920d3972 < bacharelando 3922a3975 > bacharelesco/fp 4007c4060 < baitola/ph --- > baitola/phG 4134c4187 < bandeira/ph --- > bandeira/phx 4195a4249 > baratinar/XYPL 4306a4361 > baseado/pl 4309a4365 > BASF 4314a4371 > basilar/p 4368c4425 < bater/XYPLMDN --- > bater/XYPLDMNWc 4456c4513 < beco/p --- > beco/pl 4491c4548 < Beirute --- > beirute/p 4498a4556 > beleguim/p 4629,4630c4687 < beneficente/p < beneficiado --- > beneficente/ps 4727c4784 < besta/pGh --- > besta/phmG 4791c4848 < bicameral/p --- > bicameral/pi 4899a4957 > binarismo/p 4920a4979 > biogenético/fp 4934c4993 < biomedicina --- > biomedicina/p 4957c5016 < biparental/p --- > biparental/pd 4977a5037 > birracial/p 5034c5094 < bizarria --- > bizarria/p 5056a5117 > Blatter 5086a5148 > bluesman 5221a5284 > bolchevizar/XYPLcn 5267a5331 > bombeabilidade/p 5387c5451 < borrifar/XYPLDM --- > borrifar/XYPLDMW 5575,5576c5639 < brilho/plA < brilhoso/fp --- > brilho/plwA 5654a5718 > brumário 5695a5760 > bucomaxilofacial/p 5720a5786 > bugueiro/fp 5748c5814 < bullying --- > bullying/A 5781c5847,5848 < burguês/fplhiA --- > burguesão/fp > burguês/fplhisA 5785a5853 > burnout 5787a5856 > burocratês 5826a5896 > BuzzFeed 5921a5992,5993 > caça-fantasmas > Caça-Fantasmas 5926a5999 > caça-palavra/p 5947c6020 < cacharel --- > cacharréu/p 5966a6040 > cacimba/ph 5983a6058 > cadaverina/p 6012c6087 < cães-guias --- > cães-guia/p 6023c6098 < cafetão/p --- > cafetão/px 6026c6101 < cafetina/p --- > cafetina/px 6061d6135 < câimbra/p 6088a6163 > cala-boca 6132a6208,6209 > caldeiraria/p > caldeireiro/fp 6232d6308 < camaroteiro 6243c6319 < cambiar/XYPL --- > cambiar/XYPLnR 6264a6341 > came/p 6345a6423 > canastríssimo/fp 6407c6485 < canhoto/fplhG --- > canhoto/fplhiG 6615c6693 < carbonizar/XYPLcDv --- > carbonizar/XYPLDcnvS 6642a6721 > cardiopulmonar/p 6646a6726 > cardioversão/p 6653a6734 > carenado/fp 6666c6747 < carga/p --- > carga/pEOS 6760c6841 < carótida --- > carótida/p 6773c6854 < carrancudo/fp --- > carrancudo/fplh 6777a6859 > carrara/p 6778a6861,6862 > carraspana/p > carreado/fp 6782,6783c6866 < carregado/fpsE < carregar/XYPLDMWcvRS --- > carregar/XYPLDMNWcvERS 6878c6961 < casar/XYPLSMvW --- > casar/XYPLDMWvRS 6962a7046 > catadura/p 7018c7102,7103 < cateter/pi --- > cateterismo/pE > cateter/p 7022a7108 > catiça/p 7233c7319 < centelha --- > centelha/ph 7259c7345 < centro/ptl --- > centro/pitl 7262,7263c7348 < centuplicadamente < centuplicar/XYPL --- > centuplicar/XYPLB 7294c7379 < cerimonial/pt --- > cerimonial/pmt 7323a7409 > cervídeo/fp 7389a7476 > chambre/p 7403a7491 > chanca/p 7494c7582 < checar/XYPLD --- > checar/XYPLDR 7521a7610 > cheião/fp 7579a7669 > chinelagem/p 7844a7935 > Cinemark 7875a7967 > cinzelar/XYPLMD 7942a8035 > cisplatino/fp 7980c8073 < civilizar/XYPLcDvB --- > civilizar/XYPLDBNWcv 7985a8079 > Clair 8049d8142 < claviculado 8051a8145 > claviculário/p 8108c8202 < clínico/fpE --- > clínico/fpEu 8167d8260 < CNT 8169a8263 > CNT/x 8273a8368 > codirigir/XYPL 8302a8398 > coestrelar/XYPL 8388a8485 > colendo/fp 8469a8567 > colunistazinho/fp 8571a8670 > comicidade/p 8600c8699 < comodista --- > comodista/p 8689a8789 > compliance 8764c8864 < comprobatório/fp --- > comprobatório/fpH 8797c8897 < computador/pl --- > computador/plE 8824a8925 > Concacaf 8849a8951 > concertação/p 8888a8991 > concórdia/p 8896a9000 > concretude/p 8921a9026 > condestável/p 8946c9051 < conectar/XYPLSR --- > conectar/XYPLvFSR 9123a9229 > consentâneo/fp 9137d9242 < conservado/fps 9139,9141c9244,9245 < conservadorismo/p < conserva/p < conservar/XYPLWnv --- > conserva/ph > conservar/XYPLNWnv 9274c9378 < consulente --- > consulente/p 9295c9399 < consumo/ptiPL --- > consumo/pitAPL 9314c9418 < contaminar/XYPLcDvSn --- > contaminar/XYPLDcnvAS 9326a9431 > contemporaneamente 9553c9658 < contrato/uplE --- > contrato/upltE 9694d9798 < convidado/fps 9696c9800 < convidar/XYPLDS --- > convidar/XYPLDNWS 9769a9874 > coonestar/XYPL 9883a9989 > Corona 9920c10026 < correção/p --- > correção/pF 10015c10121 < corromper/XYPLMD --- > corromper/XYPLDMv 10019c10125 < corrosivo/fpA --- > corrosivo/fpdA 10074c10180 < cosmopolita/ip --- > cosmopolita/piA 10086d10191 < Costa 10183c10288 < cozer/XYPLMD --- > cozer/XYPLDME 10185c10290 < cozinhar/XYPLv --- > cozinhar/XYPLvE 10206a10312 > cranioencefálico/fp 10209a10316 > craquear/ZYPLM 10220c10327 < cravar/XYPLcD --- > cravar/XYPLDWc 10227c10334 < cream --- > cream/a 10291c10398 < criado/fp --- > criado/fpx 10301c10408 < criar/XYPLDcvR --- > criar/XYPLDWcvR 10387a10495 > crômico/fp 10409a10518 > CrossFit 10559a10669 > curimba/p 10592a10703 > cusco/p 10632a10744 > CVT/a 10650a10763 > dachshund 10764a10878 > data-base 10765a10880 > datacenter/a 10766a10882 > data-limite 10768a10885 > datas-base/p 10769a10887 > datas-limite/p 10784c10902,10905 < d'Ãvila --- > d'Ãvila/! > d’Ãvila > D'Ãvila/! > D’Ãvila 10857a10979 > decíduo/fp 10883a11006 > déco 10969a11093 > defeso/p 11026c11150 < degelo --- > degelo/p 11116,11117c11240,11241 < demagogia/p < demagógico/fp --- > demagogia/pi > demagógico/fpH 11178a11303,11304 > demultiplexagem/p > demultiplexar/XYPLDc 11240c11366 < depenar/XYPL --- > depenar/XYPLD 11300a11427 > dermato/! 11307c11434 < dermocosmético/p --- > dermocosmético/fp 11331d11457 < desacatar/XYPLM 11347a11474 > deságua 11350a11478 > deságuam 11396d11523 < desassossegar/XYPLD 11403d11529 < desatinar/XYPLc 11529d11654 < descarga/p 11531a11657 > descarrego/p 11538a11665 > descenso/p 11675,11676c11802,11803 < desesperador/fpH < desesperar/XYPLBNn --- > desesperadoramente > desesperar/XYPLDBNn 11693d11819 < desfigurar/XYPLcDv 11911d12036 < desrespeitar/XYPLD 11913d12037 < desrespeitoso/pmf 12064a12189 > detergência/p 12201a12327 > devocional/p 12254c12380 < diálise --- > diálise/p 12290a12417 > Dick 12303d12429 < Dieckmann 12528c12654 < discrição --- > discrição/pI 12531c12657 < discriminar/XYPLcDnvBA --- > discriminar/XYPLDBcnvAI 12533c12659 < discriminatório/fp --- > discriminatório/fpI 12563a12690,12691 > dismorfia/pr > dismorfo/fp 12670c12798 < distintivo/fp --- > distintivo/fpm 12678d12805 < distraidamente 12682c12809 < distribuir/KPLcDv --- > distribuir/KPLDcvRu 12684a12812 > distritão/p 12685a12814 > distrofia/p 12704a12834 > diurese/p 12710c12840 < diva/ph --- > diva/phw 12737a12868 > divinal/p 13016c13147 < doutor/fp --- > doutor/fpl 13036a13168 > dracma/p 13087d13218 < Drupal 13205a13337 > ECG 13247a13380 > econômico-social/p 13263a13397 > ECU/p 13277c13411 < EDGE --- > Edge 13337a13472 > EEG 13350a13486 > Éfeso 13396c13532,13533 < Einstein --- > Einstein/EO > einsteiniano/fpE 13461a13599 > eletrocardiografia/pqr 13469c13607 < eletroeletrônico/p --- > eletroeletrônico/fp 13600c13738 < embalar/XYPLDNWES --- > embalar/XYPLDNWERS 13653a13792 > embornal/p 13810c13949 < empoeirar/XYPLS --- > empoeirar/XYPLMS 13823a13963 > empregaço/p 13833a13974 > empresa-fantasma 13839,13840c13980,13982 < emprestar/XYPLDvN < empréstimo/p --- > empresas-fantasma/p > emprestar/XYPLDNvR > empréstimo/pR 13864c14006 < encabulado/fp --- > encabular/XYPLS 13945a14088 > encimado/fp 14042c14185 < endotérmico --- > endotérmico/fp 14126c14269 < engavetar/XYPLMS --- > engavetar/XYPLDMS 14137c14280 < engessar/XYPLDM --- > engessar/XYPLDMS 14602c14745 < equinocial --- > equinocial/p 14648a14792 > erê/p 14655a14800 > ergometria/pr 14754c14899 < escalonar/XYPLRMD --- > escalonar/XYPLDMRS 14794a14940 > escarpa/p 14815a14962 > escoimado/fp 14858c15005 < escravagista/p --- > escravagista/pA 14881a15029 > escrotão/fp 14888a15037 > escudar/XYPL 14904c15053 < escuridão --- > escuridão/p 14943a15093 > esgar/p 15039c15189 < espaçar/XYPLMB --- > espaçar/XYPLDMB 15041c15191 < espacial/p --- > espacial/pdm 15056a15207 > España 15069a15221 > esparrela/p 15130a15283 > esperneio/p 15191a15345 > espojar/XYPL 15221d15374 < espremedela/p 15318a15472 > estamento/p 15363a15518 > estatina/p 15367a15523,15524 > estatólatra/p > estatolatria/p 15409c15566 < estereotipar/XYPL --- > estereotipar/XYPLDc 15496a15654 > estolar/XYPL 15591c15749 < estrutural/pmitO --- > estrutural/pmituO 15595d15752 < estudadamente 15599c15756 < estudar/XYPLRnW --- > estudar/XYPLBWnR 15606c15763 < estultície/p --- > estultícia/p 15647a15805 > Etevaldo 15768d15925 < Evernote 15789c15946 < evolutivo/fp --- > evolutivo/fpm 15863,15864c16020,16021 < execução/pR < executar/XYPLnvR --- > execução/pIR > executar/XYPLWnvR 16012a16170 > expositório/fp 16078a16237 > extraditório/fp 16090a16250 > extraparlamentar/p 16091a16252 > extrapauta/p 16168c16329 < facciosismo/p --- > faccioso/fpid 16306d16466 < fanzaço/fp 16326a16487 > farfalhar/XYPL 16339a16501 > farmacista/p 16362a16525 > far-se-iam 16437a16601 > fãzaço/fp 16452c16616 < Febem --- > Febem/x 16534c16698 < Femen --- > Femen/x 16566d16729 < Fergie 16614a16778 > Ferrorama 16634c16798 < fervo/p --- > fervo/pl 16733c16897 < figurar/XYPLcnvB --- > figurar/XYPLDMBcnvS 16788c16952 < filtragem/p --- > filtragem/pE 16850c17014 < fiscal/pmdti --- > fiscal/pmdtix 17031a17196 > fluorcarbono/p 17107a17273 > folgadão/fp 17157a17324 > forame/p 17207c17374,17375 < formosura --- > formosura/p > formulaico/fp 17213,17214d17380 < fornaça < fornaceiro 17346a17513 > Fragoso 17372c17539 < franco-atirador/p --- > franco-atirador/fp 17405a17573 > fraseologia/p 17442a17611 > fremente/p 17451c17620,17621 < frente/pt --- > frente/ph > frentista/px 17478a17649 > fricote/p 17974a18146 > gauche 17994c18166 < gay/pA --- > gay/pxA 18054a18227 > genésico/fp 18092a18266 > gentrificar/XYPLc 18183c18357 < getulista/p --- > getulista/pxA 18191a18366 > gianduia/p 18256a18432 > girocóptero/p 18332a18509 > gloss 18440a18618 > górgona/p 18477c18655 < governadoria/p --- > governadoria/pV 18545d18722 < Gramsci 18624d18800 < Greasemonkey 18644c18820 < greve/ptO --- > greve/pitO 18670a18847 > groove 18835d19011 < Gwen 18922a19099 > hangaragem/p 18939a19117 > Hare 18945d19122 < harmonicamente 18957a19135 > hashi/p 19033a19212 > hebreia/p 19116a19296 > hemodinâmico/fp 19121a19302 > hemoptise/p 19136a19318 > Henry 19157d19338 < Herchcovitch 19172a19354 > hermeneuta/p 19193c19375 < heroína/p --- > heroína/pxA 19196a19379 > heroizinho/p 19214a19398,19399 > heterotrofia/pi > heterotrófico/fp 19250a19436 > hidrofílico/fp 19253c19439 < hidrogenar/XYPLc --- > hidrogenar/XYPLcS 19264a19451 > hidrossanitário/fp 19328a19516 > hiperidrose/p 19334a19523 > hiperpigmentação/p 19352d19540 < HiPhone/p 19391a19580 > hipotenso/fp 19416a19606,19607 > historicismo/p > historicista/p 19424a19616 > hitchcockiano/fp 19470a19663 > homeotérmico/fp 19557c19750 < horrorizar/XYPL --- > horrorizar/XYPLn 19563d19755 < hortaliceira 19672a19865 > humoristazinho/fp 19916c20109 < IMDB --- > IMDb 19942c20135 < iminente/p --- > iminente/pm 19967c20160 < impacto/pA --- > impacto/pAE 19982c20175 < impeachment/aE --- > impeachment/aAE 19991a20185 > impedanciometria/p 20045c20239 < implantar/XYPLcR --- > implantar/XYPLcvR 20113a20308 > ímprobo/fp 20115d20309 < improducente 20164a20359 > imunodeficiente/p 20264c20459 < incêndio/pA --- > incêndio/pAO 20400a20596 > incoordenável/p 20430a20627 > incurado/fp 20435c20632 < incurso --- > incurso/fp 20478c20675 < indexar/XYPLDcv --- > indexar/XYPLDcvRS 20509a20707 > indiozinho/p 20517,20520d20714 < indiscrição/p < indiscriminação < indiscriminado/mfp < indiscriminável 20730a20925 > infracionário/fp 20858c21053 < inquisitivo/fp --- > inquisitivo/fpm 20904c21099,21100 < insocial --- > ínsito/fp > insocial/p 20927,20928c21123,21124 < inspetor/fpu < inspetor-geral --- > inspetor/fpux > inspetor-geral/x 20936c21132 < instabilizar/XYPL --- > instabilizar/XYPLc 21014a21211 > insubmergível/p 21039a21237 > insurrecional/p 21041,21043d21238 < insuspeição < insuspeitado/fp < insuspeito/fp 21080a21276 > intendente/p 21111,21113c21307,21308 < intercomunicação < intercomunicador/p < interconectado/fp --- > intercomunicar/XYPLDc > interconectar/XYPL 21431d21625 < inverdade/p 21479a21674 > iodado/fp 21507a21703 > ippon 21599a21796 > irresignado/fp 21849a22047 > Janot 21859a22058 > Jaque 21974a22174 > Jivago 22021a22222 > Johann 22062a22264 > jornalistazinho/fp 22088d22289 < Jovovich 22202a22404 > junkie/p 22347d22548 < Kidman 22394d22594 < Knightley 22413a22614 > Krishna 22456a22658 > lacanismo/p 22481a22684,22685 > lactato/p > lactente/p 22643c22847 < laranja/ph --- > laranja/phG 22741c22945 < lavatório --- > lavatório/p 22811a23016 > leggings 22853a23059 > leitorado/p 22855d23060 < Leitte 22941a23147 > Lesbos 23151c23357 < linear/pmdM --- > linear/pmdMu 23193a23400,23401 > lipoproteico/fp > lipoproteína/p 23202c23410 < liquidez --- > liquidez/I 23204c23412 < líquido/fp --- > líquido/fpI 23231a23440 > liteira/p 23270a23480 > livresco/fp 23310a23521 > lockout/a 23318a23530 > locus 23357a23570 > lomba/p 23364a23578 > Lombroso 23461a23676 > Lubrax 23545a23761 > lupanar/p 23558a23775 > lusófilo/fp 23592a23810 > LVII 23628a23847 > macarthista/p 23692a23912 > mad 23704c23924 < madrasta/p --- > madrasta/px 23731c23951 < máfia/p --- > máfia/pA 23787a24008 > Mahatma 23839a24061 > Málaga 24029c24251 < mamada/py --- > mamada/phy 24058a24281 > mancal/p 24072c24295 < mandachuva/p --- > mandachuva/px 24080c24303 < mandato/p --- > mandato/pl 24081a24305,24306 > mandatos-tampão/p > mandato-tampão 24172c24397 < manta/p --- > manta/ph 24304a24530 > marafo/p 24462a24689,24690 > marmoreio/p > marmóreo/fp 24465c24693 < marmorizar/XYPL --- > marmorizar/XYPLc 24495a24724 > marsala 24560a24790,24791 > massoterapeuta/p > massoterapia/p 24564a24796 > MasterChef 24671a24904 > maxilofacial/p 24677d24909 < Maxthon 24685a24918 > mazorca/p 24697a24931 > MDB 24735a24970 > Medellín 24740d24974 < MediaFire 24756d24989 < medicina 24757a24991 > medicina/p 24842a25077 > megastore/p 24952d25186 < mel/lw 24962c25196,25197 < membrana/p --- > mel/plw > membrana/pw 24971d25205 < memoriar/XYPL 24976c25210 < ménage --- > ménage/p 25041a25276 > mentirada/p 25199c25434 < meter/XYPLDW --- > meter/XYPLDWc 25203a25439 > metila/p 25318a25555 > microfilmado/fp 25343a25581 > micropigmentação/p 25394c25632 < Milão --- > milão/p 25651a25890 > mitral/p 25689a25929 > Möbius 25690a25931 > Moby 25732c25973 < modéstia --- > modéstia/pI 25814c26055 < moldar/XYPLcDv --- > moldar/XYPLDcvR 25871a26113,26114 > monetarização/pS > monetarizado/fpS 25889c26132 < monja/p --- > monja/px 25901a26145 > monocomando/p 25912a26157 > monofásico/fp 25966a26212 > montanhas-russas 25984a26231 > monturo/p 26011a26259 > morbidade/p 26288a26537 > multiparental/pd 26294c26543,26544 < multiplexado/p --- > multiplexagem/p > multiplexar/XYPLDc 26367a26618 > murmurinho/p 26441c26692 < nacional/pdmitAF --- > nacional/pdimtuAF 26444d26694 < NaCl 26478a26729 > Naná 26486d26736 < Nanini 26534a26785 > narval/p 26623a26875 > Neco 26631c26883 < necrosar/XYPLM --- > necrosar/XYPLMn 26682a26935 > negrada/p 26713,26714c26966 < neocolonialismo/p < neocolonialista --- > neocolonial/pti 26715a26968 > neoconstitucional/pi 26716a26970 > neofascismo/p 26744a26999 > nerdismo/p 26800a27056 > neuro/p 26949c27205 < nobre/pm --- > nobre/pms 26963a27220 > Noely 27058a27316 > nouveau 27134c27392 < nutricionista/p --- > nutricionista/px 27244c27502 < obsessor --- > obsessor/fp 27253a27512 > obstetriz/p 27489,27490c27748 < ofuscante/pA < ofuscar/XYPLMcv --- > ofuscar/XYPLDMcnvA 27497d27754 < Ohana 27570a27828 > oloroso/fp 27660c27918 < operar/XYPLcnv --- > operar/XYPLcnvE 27670a27929 > opiniãozinha 27712c27971 < orbital/p --- > orbital/pu 27719a27979 > ordálio/p 27792a28053 > orofacial/p 27797a28059 > orquidófilo/fp 27805a28068 > ortoépia/p 27819c28082 < orwelliano/fp --- > orwelliano/fpm 27868a28132 > otaku/p 27890a28155 > Ottawa 27978a28244 > oximetria/p 28017a28284 > pacoteiro/fp 28033c28300 < padrasto --- > padrasto/px 28101c28368 < palatável/p --- > palatável/pI 28185a28453 > Pan-Americano/p 28330a28599,28600 > parafilia/p > parafílico/fp 28380a28651 > paranista/px 28408a28680 > parça/px! 28543a28816 > passadão/fp 28569d28841 < passiva/p 28572c28844 < passivo/pfmd --- > passivo/fpimd 28611a28884,28885 > patela/p > patelar/p 28769a29044 > pechar/XYPL 28831a29107 > pedra-sabão 28834,28835c29110 < pedreira/p < pedreiro/p --- > pedreiro/fpx 28836a29112 > pedrona/p 28873c29149 < pelado/fplhGx --- > pelado/fplhsGx 29045a29322 > percuciente/p 29049a29327,29328 > percussivo/fpR > percutâneo/fp 29107a29387 > perfundir/XYPL 29111a29392 > perfusão/p 29135c29416 < periguete/ph --- > periguete/phx 29138a29420 > perinatal/p 29151a29434 > Periscope 29156a29440,29441 > peritoneal > peritônio/p 29191c29476 < pernoca/p --- > pernoca/ph 29194a29480 > pernosticismo/p 29253c29539 < personalismo/p --- > personalismo/pI 29255c29541 < personalista/p --- > personalista/pI 29287a29574 > pervasivo/fp 29349c29636 < pestífero --- > pestífero/p 29376a29664 > Petri 29491a29780 > pig/a 29860a30150 > pluricelular/p 29950a30241,30242 > podólatra/p > podolatria/p 30004c30296 < policial/px --- > policial/pAx 30066a30359 > político-ideológico/fp 30072c30365 < politizar/XYPLDcnRS --- > politizar/XYPLDcnvRS 30090c30383 < poluir/KPLDSNnv --- > poluir/KPLDNnvAS 30163a30457 > poperô/p 30175c30469 < populismo/p --- > populismo/pA 30478a30773,30774 > precordial/p > precórdio/p 30547c30843 < prejulgar/XYPLM --- > prejulgar/XYPLDMn 30589,30590c30885 < prenome < prenomeação --- > prenome/p 30600c30895 < preparar/XYPLDcNS --- > preparar/XYPLDNcES 30609a30905 > preposicionado/fp 30808a31105 > priápico/fp 30829c31126 < primeira-ministra/x --- > primeira-ministra/xV 30835,30836c31132,31133 < primeiro-ministro/x < primeiros-ministros/x --- > primeiro-ministro/xV > primeiros-ministros/xV 30898c31195 < probatório/pf --- > probatório/fpH 30918c31215 < processo/p --- > processo/pl 30953c31250 < producente --- > producente/pI 31045a31343 > proibição/pit 31049c31347 < proibir/YPLcDN --- > proibir/YPLDNW 31053a31352 > pró-impeachment 31065d31363 < prole 31066a31365 > prole/p 31104c31403 < pronto/fpmlhs --- > pronto/fplhmsE 31121a31421 > propeno 31156a31457,31458 > pró-reitor/fp > pró-reitoria/p 31171a31474 > prosódico/fp 31175c31478 < prospectivo/fp --- > prospectivo/fpm 31314,31315c31617 < provincianismo/p < provinciano/fpi --- > provinciano/fpim 31348a31651 > provocadoramente 31475a31779 > publicizar/XYPLc 31506a31811 > pudu/p 31535a31841 > pulley 31554a31861 > puncionar/XYPL 31574c31881 < punk/pa --- > punk/paO 31583a31891 > purezinho/p 31639a31948 > putrescina/p 31695a32005 > quadrigêmeo/fp 31718c32028 < qualificar/XYPLDNcnvEFRS --- > qualificar/XYPLDNcnvEFRSu 31775a32086 > quebradura/p 31789a32101 > queijada/ph 31932c32244 < quintal/p --- > quintal/pl 31952a32265 > quirela/ph 32039d32351 < Radeon 32043a32356 > radiância/p 32157a32471 > ranúnculo/p 32216a32531 > raspa/ph 32263a32579 > Rdio 32291c32607 < realities --- > realities/x 32351c32667 < rebuscar/XYPL --- > rebuscar/XYPLDM 32360d32675 < recambiar/XYPL 32364,32365d32678 < recargar/XYPL < recasar/XYPL 32388a32702 > recém-chamado/fp 32418a32733 > recém-importado/fp 32436a32752 > recender/XYPL 32451c32767 < rechear/ZYPL --- > rechear/ZYPLNW 32500c32816 < recorde/pt --- > recorde/ptx 32524a32841 > recursão/p 32541c32858 < rede/puL --- > rede/phuL 32556,32557d32872 < redinha/p < redistribuir/KPLc 32629c32944 < reforma/phiA --- > reforma/phiAEO 32652c32967 < refúgio/p --- > refúgio/px 32681a32997 > regimão/p 32684c33000 < regime/pO --- > regime/plO 32727a33044 > regulativo/fp 32779c33096 < relator/fpxV --- > relator/fpuxV 32943a33261 > renguear/ZYPL 32988d33305 < repercussivo 33052c33369 < reprimir/XYPLDv --- > reprimir/XYPLDNWv 33106c33423 < resenha/p --- > resenha/pt 33108c33425 < reserva/pthE --- > reserva/phtEx 33111a33429 > reservona/p 33156c33474 < respeitar/XYPLDnBN --- > respeitar/XYPLDBNnS 33159c33477 < respeitoso/fpm --- > respeitoso/fpmS 33229a33548 > restritor/fp 33309a33629 > retiro/p 33331,33332d33650 < retomar/XYPL < retoque/p 33336c33654 < retorno/p --- > retorno/plA 33360,33361c33678 < retroatividade/p < retroativo/fdmp --- > retroativo/fpdmI 33421,33422d33737 < revenda < revendedeira 33592a33908 > RIAA 33606,33607c33922 < ribeira/ph < ribeiro/pl --- > ribeiro/fplh 33608a33924 > ribombar/XYLn 33636c33952 < rifa/p --- > rifa/ph 33673c33989 < ripa --- > ripa/ph 33680c33996 < risca/p --- > risca/ph 33685c34001 < risonho/fp --- > risonho/fpm 33687c34003 < risoto/fp --- > risoto/pl 33707c34023 < Rivelino --- > Rivellino 33763a34080,34081 > rockabillies > rockabilly 33849a34168 > rola-bosta/p 33909a34229 > ronda/pht 33911d34230 < ronda/t 33978c34297 < roteiro/pl --- > roteiro/plE 33984c34303 < rotor/p --- > rotor/pE 34001c34320 < roupeiro/p --- > roupeiro/fp 34003d34321 < Rousey 34004a34323 > rousseauniano/fp 34137c34456 < sabatina/p --- > sabatina/pEO 34211,34212c34530,34531 < sacerdote/p < sacerdotisa/p --- > sacerdote/px > sacerdotisa/px 34283a34603 > sagital/p 34332a34653 > salesiano/fp 34347c34668 < salinizar/XYLPcS --- > salinizar/XYLPDcS 34371c34692 < salsicha/p --- > salsicha/ph 34408a34730 > sambiquira/p 34512a34835 > Sapopemba 34517c34840 < Saquarema --- > saquarema/p 34534a34858 > sarça/p 34622a34947 > sazonalizar/XYPLcS 34687a35013,35014 > sebastianismo/p > sebastianista/p 34713c35040 < secretária-geral/x --- > secretária-geral/xV 34762d35088 < Seedorf 34791d35116 < segurado/p 34927c35252 < senador/fpx --- > senador/fplx 35017c35342 < sequenciar/XYPLM --- > sequenciar/XYPLDM 35096a35422 > serrátil/a 35097a35424 > serrilha/p 35102a35430 > sérum/p 35165a35494,35495 > setor-chave > setores-chave 35234d35563 < Shogun 35281a35611 > sifão/p 35307a35638 > silagem/p 35450c35781 < sinistro/fmps --- > sinistro/fpims 35558a35890 > slackline/p 35696a36029 > socioafetivo/fp 35746c36079 < sofrer/XYPLMDv --- > sofrer/XYPLDMBv 35773c36106 < soldar/XYPLD --- > soldar/XYPLDvR 35812c36145 < soltura --- > soltura/p 35891a36225 > sopesar/XYPL 35944c36278 < sorver/XYPL --- > sorver/XYPLD 35952c36286 < sossegar/XYPLDB --- > sossegar/XYPLDBNW 36008d36341 < Spawn 36082d36414 < Stefani 36115a36448 > Stratocaster 36174c36507 < sublevação/p --- > sublevar/XYPLcn 36178d36510 < sublinear/p 36238d36569 < subterminal 36241d36571 < subtipo/p 36245d36574 < suburbano/fp 36390a36720 > Sundance 36398a36729 > superacostumado/fp 36399a36731 > superanimar/XYPLc 36416a36749 > superdetalhado/fpm 36421a36755 > supereconômico/fp 36431a36766 > superestrutura/p 36453a36789 > superimposição/p 36462a36799 > superlongo/fp 36467a36805 > superministério/p 36505d36842 < Supla 36510c36847 < suplente/p --- > suplente/px 36515d36851 < Suplicy 36539c36875 < surdez --- > surdez/p 36544d36879 < Surface 36552d36886 < Surita 36582d36915 < SUSE 36587c36920 < suspeição/p --- > suspeição/pI 36589,36590c36922,36923 < suspeito/fps < suspeitoso/pm --- > suspeito/fpsI > suspeitoso/fpm 36672c37005 < sutil/pm --- > sutil/pdm 36793a37127 > talho/p 36981c37315 < taxidermia/p --- > taxidermia/pt 37036c37370 < teclar/XYPL --- > teclar/XYPLD 37080a37415 > telecobrança/p 37101a37437 > Telegram 37123a37460 > teletipo/pt 37176c37513 < temporal/pdm --- > temporal/pdIm 37197a37535 > tenente-aviador 37199a37538 > tenentes-aviadores 37217c37556 < tensionar/XYPLDMn --- > tensionar/XYPLDMnE 37304c37643 < terminal/p --- > terminal/pdu 37317a37657 > termografia/pq 37319c37659 < termonuclear --- > termonuclear/p 37374a37715 > testagem/p 37465a37807 > Thoreau 37534a37877 > timidíssimo/fp 37543a37887 > timpânico/fp 37581c37925 < tipo/pl --- > tipo/plu 37626a37971 > titulagem/p 37665c38010 < toalheiro --- > toalheiro/p 37715c38060 < tomar/XYPLMD --- > tomar/XYPLDMR 37731a38077 > Tomorrowland 37779c38125 < toque/p --- > toque/pWR 37805a38152,38153 > toroidal/p > toroide/p 37968c38316 < trama/pu --- > trama/phu 38004c38352 < transa/p --- > transa/ph 38014a38363 > transcodificar/XYPLDc 38016a38366 > transcraniano/fp 38099c38449 < transplante/p --- > transplante/pEO 38286c38636 < triangular/pdcD --- > triangular/pXYPLDcd 38299c38649 < tribunal/p --- > tribunal/pl 38321c38671 < trienal --- > trienal/p 38341a38692 > trilionésimo/fp 38420a38772 > trombadão/fp 38428a38781 > trombo/p 38429a38783 > trombótico/fpA 38439a38794 > tropegamente 38448a38804 > troponina/p 38459c38815 < trouxa/ph --- > trouxa/phG 38580a38937 > turbodiesel 38647a39005 > Uber 38752a39111 > umami 38794c39153 < unicameral/p --- > unicameral/pi 38826a39186 > Univali 38853c39213 < urbano/fpdits --- > urbano/fpditsu 38982a39343 > vaguidão/p 39026a39388 > Valesca 39058c39420 < valor/pl --- > valor/plA 39125a39488 > variômetro/p 39139c39502 < vascularizar/XYPLc --- > vascularizar/XYPLcR 39177a39541 > Vectra 39181a39546 > védico/fp 39245c39610 < venda/pOEh --- > venda/phEOR 39248c39613,39614 < vender/XYPLDMvR --- > vendedor/fpx > vender/XYPLMvR 39317,39318c39683,39684 < verdadeiro/pfms < verdade/p --- > verdadeiro/fpmsI > verdade/pI 39360a39727 > VeriSign 39368a39736 > vermiforme/p 39406c39774 < vertiginoso/pmf --- > vertiginoso/fpmA 39419a39788 > Vespúcio 39486a39856 > Vibranium 39816c40186 < vitaminar/XYPLc --- > vitaminar/XYPLcR 39818d40187 < vitaminizar/XYPL 39906c40275 < voar/XYLDP --- > voar/XYLPD 39917c40286 < vocal/px --- > vocal/pmx 40005a40375 > VPS 40139d40508 < Wilker 40220a40590 > Xenofonte 40304c40674 < yakisoba --- > yakisoba/p 40429,40430c40799 < zonzear/ZYL < zonzo/p --- > zonzo/fp 40443a40813 > zulu/p 40446d40815 < Zune/p diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pt-BR/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pt-BR/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pt-BR/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pt-BR/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pt-BR/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pt-BR/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pt-BR/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pt-BR/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pt-BR/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pt-BR/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,10d3 < remove "Contents/Resources/searchplugins/yahoo.xml" < remove "Contents/Resources/searchplugins/wikipedia.xml" < remove "Contents/Resources/searchplugins/twitter.xml" < remove "Contents/Resources/searchplugins/eBay.xml" < remove "Contents/Resources/searchplugins/bing.xml" < remove "Contents/Resources/searchplugins/aol-web-search.xml" < remove "Contents/Resources/searchplugins/amazondotcom.xml" 59,61c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 92c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 118d108 < rmdir "Contents/Resources/searchplugins/" 124d113 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 33c33 < umKwob9YG+x70hm9M2xY19kkjYo= --- > NwlMMIqNQM0M6BB7MbLViUSHfA8= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < kZTViUEwDf5JUBzzz4y8qkCxjIY= --- > FzaaCi/amlkTiOwYSNOUjyVaAzo= 229c229 < F+dh2injO9NV2a1/dXeDdB2a68A= --- > VPCItjHF+mIuufDWUmFVCLWzeLo= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < Bj3mF6XJjsHsSGw+ORTs2UPGWS4= --- > L92SkAhTI4HZSFk0SGxQdUeGpbY= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 395c395 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 397c397 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 401c401 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 403c403 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 405c405 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 409c409 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 437c437 < /VdUMfbJbuBYp1hJ+aT9AaZmLeE= --- > a8uwdkh9ibDcklCfvibnv/3btwM= 441c441 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 445c445 < 1/jHLbwERek+DTUkzMTp8eMk11s= --- > 00rAp1tCBgpn9ZmmPOFPLxzEE+Q= 458c458 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,635d607 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < 664c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 673c645 < BP7YFLWdJibTyMJ+iLKVetvET7g= --- > QvsRW7pb1wTP4/WE/mrQHYPRlt4= 682c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 691c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 700c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 705c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 709c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 718c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 727c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 736c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 745c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 754c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 763c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 772c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 781c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 790c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 799c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 806c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 810c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 822c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 830c802 < umKwob9YG+x70hm9M2xY19kkjYo= --- > NwlMMIqNQM0M6BB7MbLViUSHfA8= 834c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 838c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 842c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 846c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 850c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 854c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 858c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 862c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 866c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 870c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 874c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 878c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 882c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 886c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 890c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 894c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 898c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 902c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 906c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 910c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 914c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 918c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 922c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 926c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 930c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 934c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 938c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 942c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 946c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 950c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 954c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 958c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 962c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 966c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 970c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 974c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 978c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 982c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 986c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 990c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 994c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 998c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 1002c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 1006c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1014c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1018c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1022c994 < kZTViUEwDf5JUBzzz4y8qkCxjIY= --- > FzaaCi/amlkTiOwYSNOUjyVaAzo= 1026c998 < F+dh2injO9NV2a1/dXeDdB2a68A= --- > VPCItjHF+mIuufDWUmFVCLWzeLo= 1030c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1034c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1038c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1042c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1046c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1050c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1054c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1058c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1062c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1066c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1070c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1074c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1078c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1082c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1086c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1098c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1102c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1110c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1114c1086 < Bj3mF6XJjsHsSGw+ORTs2UPGWS4= --- > L92SkAhTI4HZSFk0SGxQdUeGpbY= 1118c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1122c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1126c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1130c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1134c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1138c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1142c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1146c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1150c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1154c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1158c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1162c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1166c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1174c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1178c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1182c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1186c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1190c1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1192c1164 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1194c1166 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1196c1168 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1198c1170 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1200c1172 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1202c1174 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1204c1176 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1206c1178 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1234c1206 < /VdUMfbJbuBYp1hJ+aT9AaZmLeE= --- > a8uwdkh9ibDcklCfvibnv/3btwM= 1238c1210 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1242c1214 < 1/jHLbwERek+DTUkzMTp8eMk11s= --- > 00rAp1tCBgpn9ZmmPOFPLxzEE+Q= 1255c1227 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1405,1432d1376 < Resources/searchplugins/amazondotcom.xml < < SGF5QJ8O/5e/YpPwwGNbahBtPbc= < < Resources/searchplugins/aol-web-search.xml < < gEpWVJIDMBEIbOHyTtAJyQKeZtU= < < Resources/searchplugins/bing.xml < < 0q+uzJ0+BvFA0OFcRUtM+tdfsos= < < Resources/searchplugins/eBay.xml < < sG5WMSgMuEIts2nuQFSvtLcMhcE= < < Resources/searchplugins/twitter.xml < < T/V1D0vx6aFvhbysZuxFnXoS5II= < < Resources/searchplugins/wikipedia.xml < < nBs9pJqHTZC5FrWA8JaNWhU4dTE= < < Resources/searchplugins/yahoo.xml < < nYy64HAocq3oQHpLnogbY7s4sL8= < Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48053268 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:42 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48053267 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:42 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48053266 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:42 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48053217 8 -rw-r--r-- 1 cltbld staff 1531 May 9 18:42 source/Thunderbird.app/Contents/Resources/searchplugins/amazondotcom.xml 48053216 8 -rw-r--r-- 1 cltbld staff 1670 May 9 18:42 source/Thunderbird.app/Contents/Resources/searchplugins/aol-web-search.xml 48053215 8 -rw-r--r-- 1 cltbld staff 2453 May 9 18:42 source/Thunderbird.app/Contents/Resources/searchplugins/bing.xml 48053214 8 -rw-r--r-- 1 cltbld staff 2569 May 9 18:42 source/Thunderbird.app/Contents/Resources/searchplugins/eBay.xml 48053213 8 -rw-r--r-- 1 cltbld staff 899 May 9 18:42 source/Thunderbird.app/Contents/Resources/searchplugins/twitter.xml 48053212 8 -rw-r--r-- 1 cltbld staff 1338 May 9 18:42 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia.xml 48053211 8 -rw-r--r-- 1 cltbld staff 1363 May 9 18:42 source/Thunderbird.app/Contents/Resources/searchplugins/yahoo.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:42:42-- https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.45, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:42:42 GMT Keep-Alive: timeout=5, max=974 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:42:42 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-PT/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-PT/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:42:42-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-PT/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68017307 Connection: keep-alive Date: Tue, 10 May 2016 01:11:48 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 0Dq_uGQqupWE8Q_J2SHQe4sJ8O_xilB7 Last-Modified: Tue, 03 May 2016 16:32:54 GMT ETag: "c0d933301fb591f732e3b5a6a60fd6b0" Accept-Ranges: bytes Server: AmazonS3 Age: 1855 X-Cache: Hit from cloudfront Via: 1.1 978198446b6fdba8a499c04f84a3a7e6.cloudfront.net (CloudFront) X-Amz-Cf-Id: 9v_D5zVjy5raB_gHayQ-25WfBmc2epymyaKzAilnVVTx9wduMSKbfg== Length: 68017307 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 22.8M 3s 3072K ........ ........ ........ ........ ........ ........ 9% 21.3M 3s 6144K ........ ........ ........ ........ ........ ........ 13% 28.1M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 22.6M 2s 12288K ........ ........ ........ ........ ........ ........ 23% 42.0M 2s 15360K ........ ........ ........ ........ ........ ........ 27% 23.8M 2s 18432K ........ ........ ........ ........ ........ ........ 32% 51.5M 2s 21504K ........ ........ ........ ........ ........ ........ 36% 42.3M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 41.8M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 49.6M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 39.3M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 48.1M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 43.6M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 43.2M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 40.6M 1s 46080K ........ ........ ........ ........ ........ ........ 73% 51.1M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 39.5M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 51.6M 0s 55296K ........ ........ ........ ........ ........ ........ 87% 57.0M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 42.0M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 37.1M 0s 64512K ........ ........ ........ ..... 100% 25.6M=1.8s 2016-05-09 18:42:44 (36.2 MB/s) - 'update/complete.mar' saved [68017307/68017307] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/pt-PT/Thunderbird 38.6.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 38.6.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/pt-PT/Thunderbird 38.6.0.dmg'] --2016-05-09 18:42:46-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/releases/38.6.0/mac/pt-PT/Thunderbird%2038.6.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 70053120 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:42:46 GMT ETag: "434b417c6266b092962d0e705ae6171d" Last-Modified: Fri, 12 Feb 2016 21:48:53 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 33qi1FX8jHyKuPzGr05JmADQYzHe3UCm X-Cache: Miss from cloudfront Via: 1.1 1c6cc78b8ca6319854350cf7a741a470.cloudfront.net (CloudFront) X-Amz-Cf-Id: jkc8s1n1VWKB9X6IttW0Y9Ra__GaW-WIFrXqgK2u7gGzXgmmftOLqw== Length: 70053120 (67M) [application/x-apple-diskimage] Saving to: 'Thunderbird 38.6.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.57M 41s 3072K ........ ........ ........ ........ ........ ........ 8% 5.94M 24s 6144K ........ ........ ........ ........ ........ ........ 13% 9.97M 17s 9216K ........ ........ ........ ........ ........ ........ 17% 12.6M 13s 12288K ........ ........ ........ ........ ........ ........ 22% 14.9M 11s 15360K ........ ........ ........ ........ ........ ........ 26% 16.4M 9s 18432K ........ ........ ........ ........ ........ ........ 31% 18.7M 8s 21504K ........ ........ ........ ........ ........ ........ 35% 19.2M 7s 24576K ........ ........ ........ ........ ........ ........ 40% 18.4M 6s 27648K ........ ........ ........ ........ ........ ........ 44% 21.7M 5s 30720K ........ ........ ........ ........ ........ ........ 49% 16.2M 4s 33792K ........ ........ ........ ........ ........ ........ 53% 10.7M 4s 36864K ........ ........ ........ ........ ........ ........ 58% 10.5M 3s 39936K ........ ........ ........ ........ ........ ........ 62% 13.7M 3s 43008K ........ ........ ........ ........ ........ ........ 67% 18.1M 2s 46080K ........ ........ ........ ........ ........ ........ 71% 19.4M 2s 49152K ........ ........ ........ ........ ........ ........ 76% 16.1M 2s 52224K ........ ........ ........ ........ ........ ........ 80% 20.6M 1s 55296K ........ ........ ........ ........ ........ ........ 85% 19.4M 1s 58368K ........ ........ ........ ........ ........ ........ 89% 18.3M 1s 61440K ........ ........ ........ ........ ........ ........ 94% 19.6M 0s 64512K ........ ........ ........ ........ ........ ........ 98% 19.8M 0s 67584K ........ .... 100% 15.4M=6.3s 2016-05-09 18:42:53 (10.7 MB/s) - 'Thunderbird 38.6.0.dmg' saved [70053120/70053120] Downloading 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/pt-PT/Thunderbird 45.1.0.dmg' and placing in cache... Executing: ['wget', '-O', 'Thunderbird 45.1.0.dmg', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/pt-PT/Thunderbird 45.1.0.dmg'] --2016-05-09 18:42:53-- http://archive.mozilla.org/pub/mozilla.org/thunderbird/candidates/45.1.0-candidates/build3/mac/pt-PT/Thunderbird%2045.1.0.dmg Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/x-apple-diskimage Content-Length: 77407401 Connection: keep-alive Accept-Ranges: bytes Date: Tue, 10 May 2016 01:42:54 GMT ETag: "193704b1e728b2ac821505f002698e25" Last-Modified: Mon, 09 May 2016 22:32:48 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 1mflvJSFxxUOzeEE59rkrpO9Ljuk89qu X-Cache: Miss from cloudfront Via: 1.1 ff09df097f823b2834408d17e9779d62.cloudfront.net (CloudFront) X-Amz-Cf-Id: 35JlcXQhYP8hUX2EUFMUJZdlVLqE4RqwwsUjfxUBHyETSa8T-FlBSw== Length: 77407401 (74M) [application/x-apple-diskimage] Saving to: 'Thunderbird 45.1.0.dmg' 0K ........ ........ ........ ........ ........ ........ 4% 1.56M 45s 3072K ........ ........ ........ ........ ........ ........ 8% 6.26M 27s 6144K ........ ........ ........ ........ ........ ........ 12% 9.98M 19s 9216K ........ ........ ........ ........ ........ ........ 16% 11.7M 15s 12288K ........ ........ ........ ........ ........ ........ 20% 12.9M 13s 15360K ........ ........ ........ ........ ........ ........ 24% 16.8M 10s 18432K ........ ........ ........ ........ ........ ........ 28% 15.3M 9s 21504K ........ ........ ........ ........ ........ ........ 32% 18.4M 8s 24576K ........ ........ ........ ........ ........ ........ 36% 17.4M 7s 27648K ........ ........ ........ ........ ........ ........ 40% 18.1M 6s 30720K ........ ........ ........ ........ ........ ........ 44% 19.4M 5s 33792K ........ ........ ........ ........ ........ ........ 48% 27.2M 5s 36864K ........ ........ ........ ........ ........ ........ 52% 35.2M 4s 39936K ........ ........ ........ ........ ........ ........ 56% 17.5M 3s 43008K ........ ........ ........ ........ ........ ........ 60% 26.1M 3s 46080K ........ ........ ........ ........ ........ ........ 65% 32.9M 3s 49152K ........ ........ ........ ........ ........ ........ 69% 21.8M 2s 52224K ........ ........ ........ ........ ........ ........ 73% 15.7M 2s 55296K ........ ........ ........ ........ ........ ........ 77% 4.96M 2s 58368K ........ ........ ........ ........ ........ ........ 81% 6.04M 1s 61440K ........ ........ ........ ........ ........ ........ 85% 8.73M 1s 64512K ........ ........ ........ ........ ........ ........ 89% 10.9M 1s 67584K ........ ........ ........ ........ ........ ........ 93% 12.7M 0s 70656K ........ ........ ........ ........ ........ ........ 97% 15.8M 0s 73728K ........ ........ ........ ..... 100% 10.3M=7.4s 2016-05-09 18:43:01 (9.91 MB/s) - 'Thunderbird 45.1.0.dmg' saved [77407401/77407401] installing downloads/Thunderbird 38.6.0.dmg "disk3" unmounted. "disk3" ejected. installing downloads/Thunderbird 45.1.0.dmg "disk3" unmounted. "disk3" ejected. PATCH DIRECTORY ../../update INSTALLATION DIRECTORY . WORKING DIRECTORY . UPDATE TYPE complete PREPARE REMOVEFILE Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Resources/updater.ini PREPARE REMOVEFILE Contents/Resources/thunderbird.icns PREPARE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ptpt.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/sapo.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/priberam.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/google.xml PREPARE REMOVEFILE Contents/Resources/searchplugins/amazon-en-GB.xml PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/rowResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/move.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/help.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/colResize.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/cell.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowS.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png PREPARE REMOVEFILE Contents/Resources/res/cursors/arrowN.png PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/Resources/removed-files PREPARE REMOVEFILE Contents/Resources/pt.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Resources/precomplete PREPARE REMOVEFILE Contents/Resources/platform.ini PREPARE REMOVEFILE Contents/Resources/omni.ja PREPARE REMOVEFILE Contents/Resources/isp/rss.rdf PREPARE REMOVEFILE Contents/Resources/isp/SpamPal.sfd PREPARE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd PREPARE REMOVEFILE Contents/Resources/isp/POPFile.sfd PREPARE REMOVEFILE Contents/Resources/isp/DSPAM.sfd PREPARE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE REMOVEFILE Contents/Resources/dictionaries/pt_PT.dic PREPARE REMOVEFILE Contents/Resources/dictionaries/pt_PT.aff PREPARE REMOVEFILE Contents/Resources/dependentlibs.list PREPARE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat PREPARE REMOVEFILE Contents/Resources/blocklist.xml PREPARE REMOVEFILE Contents/Resources/application.ini PREPARE REMOVEFILE Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/thunderbird-bin PREPARE REMOVEFILE Contents/MacOS/thunderbird PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/libsoftokn3.dylib PREPARE REMOVEFILE Contents/MacOS/libprldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib PREPARE REMOVEFILE Contents/MacOS/libnssdbm3.dylib PREPARE REMOVEFILE Contents/MacOS/libnssckbi.dylib PREPARE REMOVEFILE Contents/MacOS/libnss3.dylib PREPARE REMOVEFILE Contents/MacOS/libmozglue.dylib PREPARE REMOVEFILE Contents/MacOS/libmozalloc.dylib PREPARE REMOVEFILE Contents/MacOS/libldif60.dylib PREPARE REMOVEFILE Contents/MacOS/libldap60.dylib PREPARE REMOVEFILE Contents/MacOS/libfreebl3.dylib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE REMOVEFILE Contents/MacOS/XUL PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE REMOVEFILE Contents/Info.plist PREPARE REMOVEDIR Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Resources/searchplugins/ PREPARE REMOVEDIR Contents/Resources/res/cursors/ PREPARE REMOVEDIR Contents/Resources/res/MainMenu.nib/ PREPARE REMOVEDIR Contents/Resources/res/ PREPARE REMOVEDIR Contents/Resources/pt.lproj/ PREPARE REMOVEDIR Contents/Resources/isp/ PREPARE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ PREPARE REMOVEDIR Contents/Resources/extensions/ PREPARE REMOVEDIR Contents/Resources/dictionaries/ PREPARE REMOVEDIR Contents/Resources/defaults/pref/ PREPARE REMOVEDIR Contents/Resources/defaults/messenger/ PREPARE REMOVEDIR Contents/Resources/defaults/ PREPARE REMOVEDIR Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/updater.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/updater.app/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/plugin-container.app/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ PREPARE REMOVEDIR Contents/MacOS/crashreporter.app/ PREPARE REMOVEDIR Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ PREPARE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ PREPARE REMOVEDIR Contents/Library/Spotlight/ PREPARE REMOVEDIR Contents/Library/ PREPARE REMOVEDIR Contents/ PREPARE ADD Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Resources/updater.ini PREPARE ADD Contents/Resources/thunderbird.icns PREPARE ADD Contents/Resources/searchplugins/wikipedia-ptpt.xml PREPARE ADD Contents/Resources/searchplugins/sapo.xml PREPARE ADD Contents/Resources/searchplugins/priberam.xml PREPARE ADD Contents/Resources/searchplugins/google.xml PREPARE ADD Contents/Resources/searchplugins/amazon-en-GB.xml PREPARE ADD Contents/Resources/res/cursors/zoomOut@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomOut.png PREPARE ADD Contents/Resources/res/cursors/zoomIn@2x.png PREPARE ADD Contents/Resources/res/cursors/zoomIn.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam@2x.png PREPARE ADD Contents/Resources/res/cursors/vtIBeam.png PREPARE ADD Contents/Resources/res/cursors/sizeSW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSW.png PREPARE ADD Contents/Resources/res/cursors/sizeSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNWSE.png PREPARE ADD Contents/Resources/res/cursors/sizeNW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNW.png PREPARE ADD Contents/Resources/res/cursors/sizeNS@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNS.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNESW.png PREPARE ADD Contents/Resources/res/cursors/sizeNE@2x.png PREPARE ADD Contents/Resources/res/cursors/sizeNE.png PREPARE ADD Contents/Resources/res/cursors/rowResize@2x.png PREPARE ADD Contents/Resources/res/cursors/rowResize.png PREPARE ADD Contents/Resources/res/cursors/move@2x.png PREPARE ADD Contents/Resources/res/cursors/move.png PREPARE ADD Contents/Resources/res/cursors/help@2x.png PREPARE ADD Contents/Resources/res/cursors/help.png PREPARE ADD Contents/Resources/res/cursors/colResize@2x.png PREPARE ADD Contents/Resources/res/cursors/colResize.png PREPARE ADD Contents/Resources/res/cursors/cell@2x.png PREPARE ADD Contents/Resources/res/cursors/cell.png PREPARE ADD Contents/Resources/res/cursors/arrowS@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowS.png PREPARE ADD Contents/Resources/res/cursors/arrowN@2x.png PREPARE ADD Contents/Resources/res/cursors/arrowN.png PREPARE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/info.nib PREPARE ADD Contents/Resources/res/MainMenu.nib/classes.nib PREPARE ADD Contents/Resources/removed-files PREPARE ADD Contents/Resources/pt.lproj/InfoPlist.strings PREPARE ADD Contents/Resources/precomplete PREPARE ADD Contents/Resources/platform.ini PREPARE ADD Contents/Resources/omni.ja PREPARE ADD Contents/Resources/isp/rss.rdf PREPARE ADD Contents/Resources/isp/SpamPal.sfd PREPARE ADD Contents/Resources/isp/SpamAssassin.sfd PREPARE ADD Contents/Resources/isp/POPFile.sfd PREPARE ADD Contents/Resources/isp/DSPAM.sfd PREPARE ADD Contents/Resources/isp/Bogofilter.sfd PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png PREPARE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js PREPARE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini PREPARE ADD Contents/Resources/dictionaries/pt_PT.dic PREPARE ADD Contents/Resources/dictionaries/pt_PT.aff PREPARE ADD Contents/Resources/dependentlibs.list PREPARE ADD Contents/Resources/defaults/messenger/mailViews.dat PREPARE ADD Contents/Resources/blocklist.xml PREPARE ADD Contents/Resources/application.ini PREPARE ADD Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/updater.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/updater.app/Contents/MacOS/updater PREPARE ADD Contents/MacOS/updater.app/Contents/Info.plist PREPARE ADD Contents/MacOS/thunderbird-bin PREPARE ADD Contents/MacOS/thunderbird PREPARE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container PREPARE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist PREPARE ADD Contents/MacOS/libsoftokn3.dylib PREPARE ADD Contents/MacOS/libprldap60.dylib PREPARE ADD Contents/MacOS/libplugin_child_interpose.dylib PREPARE ADD Contents/MacOS/libnssdbm3.dylib PREPARE ADD Contents/MacOS/libnssckbi.dylib PREPARE ADD Contents/MacOS/libnss3.dylib PREPARE ADD Contents/MacOS/libmozglue.dylib PREPARE ADD Contents/MacOS/libmozalloc.dylib PREPARE ADD Contents/MacOS/libldif60.dylib PREPARE ADD Contents/MacOS/libldap60.dylib PREPARE ADD Contents/MacOS/libfreebl3.dylib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo PREPARE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter PREPARE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist PREPARE ADD Contents/MacOS/XUL PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport PREPARE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist PREPARE ADD Contents/Info.plist EXECUTE REMOVEFILE Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Resources/updater.ini EXECUTE REMOVEFILE Contents/Resources/thunderbird.icns EXECUTE REMOVEFILE Contents/Resources/searchplugins/wikipedia-ptpt.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/sapo.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/priberam.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/google.xml EXECUTE REMOVEFILE Contents/Resources/searchplugins/amazon-en-GB.xml EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomOut.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/zoomIn.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/sizeNE.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/rowResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/move.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/help.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/colResize.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/cell.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowS.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png EXECUTE REMOVEFILE Contents/Resources/res/cursors/arrowN.png EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/Resources/removed-files EXECUTE REMOVEFILE Contents/Resources/pt.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Resources/precomplete EXECUTE REMOVEFILE Contents/Resources/platform.ini EXECUTE REMOVEFILE Contents/Resources/omni.ja EXECUTE REMOVEFILE Contents/Resources/isp/rss.rdf EXECUTE REMOVEFILE Contents/Resources/isp/SpamPal.sfd EXECUTE REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd EXECUTE REMOVEFILE Contents/Resources/isp/POPFile.sfd EXECUTE REMOVEFILE Contents/Resources/isp/DSPAM.sfd EXECUTE REMOVEFILE Contents/Resources/isp/Bogofilter.sfd EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE REMOVEFILE Contents/Resources/dictionaries/pt_PT.dic EXECUTE REMOVEFILE Contents/Resources/dictionaries/pt_PT.aff EXECUTE REMOVEFILE Contents/Resources/dependentlibs.list EXECUTE REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat EXECUTE REMOVEFILE Contents/Resources/blocklist.xml EXECUTE REMOVEFILE Contents/Resources/application.ini EXECUTE REMOVEFILE Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/thunderbird-bin EXECUTE REMOVEFILE Contents/MacOS/thunderbird EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/libsoftokn3.dylib EXECUTE REMOVEFILE Contents/MacOS/libprldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssdbm3.dylib EXECUTE REMOVEFILE Contents/MacOS/libnssckbi.dylib EXECUTE REMOVEFILE Contents/MacOS/libnss3.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozglue.dylib EXECUTE REMOVEFILE Contents/MacOS/libmozalloc.dylib EXECUTE REMOVEFILE Contents/MacOS/libldif60.dylib EXECUTE REMOVEFILE Contents/MacOS/libldap60.dylib EXECUTE REMOVEFILE Contents/MacOS/libfreebl3.dylib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE REMOVEFILE Contents/MacOS/XUL EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE REMOVEFILE Contents/Info.plist EXECUTE REMOVEDIR Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Resources/searchplugins/ EXECUTE REMOVEDIR Contents/Resources/res/cursors/ EXECUTE REMOVEDIR Contents/Resources/res/MainMenu.nib/ EXECUTE REMOVEDIR Contents/Resources/res/ EXECUTE REMOVEDIR Contents/Resources/pt.lproj/ EXECUTE REMOVEDIR Contents/Resources/isp/ EXECUTE REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ EXECUTE REMOVEDIR Contents/Resources/extensions/ EXECUTE REMOVEDIR Contents/Resources/dictionaries/ EXECUTE REMOVEDIR Contents/Resources/defaults/pref/ EXECUTE REMOVEDIR Contents/Resources/defaults/messenger/ EXECUTE REMOVEDIR Contents/Resources/defaults/ EXECUTE REMOVEDIR Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/updater.app/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/plugin-container.app/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ EXECUTE REMOVEDIR Contents/MacOS/crashreporter.app/ EXECUTE REMOVEDIR Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ EXECUTE REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ EXECUTE REMOVEDIR Contents/Library/Spotlight/ EXECUTE REMOVEDIR Contents/Library/ EXECUTE REMOVEDIR Contents/ EXECUTE ADD Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Resources/updater.ini EXECUTE ADD Contents/Resources/thunderbird.icns EXECUTE ADD Contents/Resources/searchplugins/wikipedia-ptpt.xml EXECUTE ADD Contents/Resources/searchplugins/sapo.xml EXECUTE ADD Contents/Resources/searchplugins/priberam.xml EXECUTE ADD Contents/Resources/searchplugins/google.xml EXECUTE ADD Contents/Resources/searchplugins/amazon-en-GB.xml EXECUTE ADD Contents/Resources/res/cursors/zoomOut@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomOut.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn@2x.png EXECUTE ADD Contents/Resources/res/cursors/zoomIn.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam@2x.png EXECUTE ADD Contents/Resources/res/cursors/vtIBeam.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSW.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNWSE.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNS.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNESW.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE@2x.png EXECUTE ADD Contents/Resources/res/cursors/sizeNE.png EXECUTE ADD Contents/Resources/res/cursors/rowResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/rowResize.png EXECUTE ADD Contents/Resources/res/cursors/move@2x.png EXECUTE ADD Contents/Resources/res/cursors/move.png EXECUTE ADD Contents/Resources/res/cursors/help@2x.png EXECUTE ADD Contents/Resources/res/cursors/help.png EXECUTE ADD Contents/Resources/res/cursors/colResize@2x.png EXECUTE ADD Contents/Resources/res/cursors/colResize.png EXECUTE ADD Contents/Resources/res/cursors/cell@2x.png EXECUTE ADD Contents/Resources/res/cursors/cell.png EXECUTE ADD Contents/Resources/res/cursors/arrowS@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowS.png EXECUTE ADD Contents/Resources/res/cursors/arrowN@2x.png EXECUTE ADD Contents/Resources/res/cursors/arrowN.png EXECUTE ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/info.nib EXECUTE ADD Contents/Resources/res/MainMenu.nib/classes.nib EXECUTE ADD Contents/Resources/removed-files EXECUTE ADD Contents/Resources/pt.lproj/InfoPlist.strings EXECUTE ADD Contents/Resources/precomplete EXECUTE ADD Contents/Resources/platform.ini EXECUTE ADD Contents/Resources/omni.ja EXECUTE ADD Contents/Resources/isp/rss.rdf EXECUTE ADD Contents/Resources/isp/SpamPal.sfd EXECUTE ADD Contents/Resources/isp/SpamAssassin.sfd EXECUTE ADD Contents/Resources/isp/POPFile.sfd EXECUTE ADD Contents/Resources/isp/DSPAM.sfd EXECUTE ADD Contents/Resources/isp/Bogofilter.sfd EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png EXECUTE ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js EXECUTE ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini EXECUTE ADD Contents/Resources/dictionaries/pt_PT.dic EXECUTE ADD Contents/Resources/dictionaries/pt_PT.aff EXECUTE ADD Contents/Resources/dependentlibs.list EXECUTE ADD Contents/Resources/defaults/messenger/mailViews.dat EXECUTE ADD Contents/Resources/blocklist.xml EXECUTE ADD Contents/Resources/application.ini EXECUTE ADD Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/updater.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/updater.app/Contents/MacOS/updater EXECUTE ADD Contents/MacOS/updater.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/thunderbird-bin EXECUTE ADD Contents/MacOS/thunderbird EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container EXECUTE ADD Contents/MacOS/plugin-container.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/libsoftokn3.dylib EXECUTE ADD Contents/MacOS/libprldap60.dylib EXECUTE ADD Contents/MacOS/libplugin_child_interpose.dylib EXECUTE ADD Contents/MacOS/libnssdbm3.dylib EXECUTE ADD Contents/MacOS/libnssckbi.dylib EXECUTE ADD Contents/MacOS/libnss3.dylib EXECUTE ADD Contents/MacOS/libmozglue.dylib EXECUTE ADD Contents/MacOS/libmozalloc.dylib EXECUTE ADD Contents/MacOS/libldif60.dylib EXECUTE ADD Contents/MacOS/libldap60.dylib EXECUTE ADD Contents/MacOS/libfreebl3.dylib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter EXECUTE ADD Contents/MacOS/crashreporter.app/Contents/Info.plist EXECUTE ADD Contents/MacOS/XUL EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport EXECUTE ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist EXECUTE ADD Contents/Info.plist FINISH REMOVEFILE Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Resources/updater.ini FINISH REMOVEFILE Contents/Resources/thunderbird.icns FINISH REMOVEFILE Contents/Resources/searchplugins/wikipedia-ptpt.xml FINISH REMOVEFILE Contents/Resources/searchplugins/sapo.xml FINISH REMOVEFILE Contents/Resources/searchplugins/priberam.xml FINISH REMOVEFILE Contents/Resources/searchplugins/google.xml FINISH REMOVEFILE Contents/Resources/searchplugins/amazon-en-GB.xml FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomOut.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/zoomIn.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/vtIBeam.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNWSE.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNS.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNESW.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/sizeNE.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/rowResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/move@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/move.png FINISH REMOVEFILE Contents/Resources/res/cursors/help@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/help.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/colResize.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/cell.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowS.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN@2x.png FINISH REMOVEFILE Contents/Resources/res/cursors/arrowN.png FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/Resources/res/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/Resources/removed-files FINISH REMOVEFILE Contents/Resources/pt.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Resources/precomplete FINISH REMOVEFILE Contents/Resources/platform.ini FINISH REMOVEFILE Contents/Resources/omni.ja FINISH REMOVEFILE Contents/Resources/isp/rss.rdf FINISH REMOVEFILE Contents/Resources/isp/SpamPal.sfd FINISH REMOVEFILE Contents/Resources/isp/SpamAssassin.sfd FINISH REMOVEFILE Contents/Resources/isp/POPFile.sfd FINISH REMOVEFILE Contents/Resources/isp/DSPAM.sfd FINISH REMOVEFILE Contents/Resources/isp/Bogofilter.sfd FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH REMOVEFILE Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH REMOVEFILE Contents/Resources/dictionaries/pt_PT.dic FINISH REMOVEFILE Contents/Resources/dictionaries/pt_PT.aff FINISH REMOVEFILE Contents/Resources/dependentlibs.list FINISH REMOVEFILE Contents/Resources/defaults/messenger/mailViews.dat FINISH REMOVEFILE Contents/Resources/blocklist.xml FINISH REMOVEFILE Contents/Resources/application.ini FINISH REMOVEFILE Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/MacOS/updater FINISH REMOVEFILE Contents/MacOS/updater.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/thunderbird-bin FINISH REMOVEFILE Contents/MacOS/thunderbird FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH REMOVEFILE Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/libsoftokn3.dylib FINISH REMOVEFILE Contents/MacOS/libprldap60.dylib FINISH REMOVEFILE Contents/MacOS/libplugin_child_interpose.dylib FINISH REMOVEFILE Contents/MacOS/libnssdbm3.dylib FINISH REMOVEFILE Contents/MacOS/libnssckbi.dylib FINISH REMOVEFILE Contents/MacOS/libnss3.dylib FINISH REMOVEFILE Contents/MacOS/libmozglue.dylib FINISH REMOVEFILE Contents/MacOS/libmozalloc.dylib FINISH REMOVEFILE Contents/MacOS/libldif60.dylib FINISH REMOVEFILE Contents/MacOS/libldap60.dylib FINISH REMOVEFILE Contents/MacOS/libfreebl3.dylib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH REMOVEFILE Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH REMOVEFILE Contents/MacOS/XUL FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH REMOVEFILE Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH REMOVEFILE Contents/Info.plist FINISH REMOVEDIR Contents/_CodeSignature/ non-fatal error removing directory: Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/searchplugins/ non-fatal error removing directory: Contents/Resources/searchplugins/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/cursors/ non-fatal error removing directory: Contents/Resources/res/cursors/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/MainMenu.nib/ non-fatal error removing directory: Contents/Resources/res/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/res/ non-fatal error removing directory: Contents/Resources/res/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/pt.lproj/ non-fatal error removing directory: Contents/Resources/pt.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/isp/ non-fatal error removing directory: Contents/Resources/isp/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ non-fatal error removing directory: Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/extensions/ non-fatal error removing directory: Contents/Resources/extensions/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/dictionaries/ non-fatal error removing directory: Contents/Resources/dictionaries/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/pref/ non-fatal error removing directory: Contents/Resources/defaults/pref/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/messenger/ non-fatal error removing directory: Contents/Resources/defaults/messenger/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/defaults/ non-fatal error removing directory: Contents/Resources/defaults/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Resources/ non-fatal error removing directory: Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/Contents/ non-fatal error removing directory: Contents/MacOS/updater.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/updater.app/ non-fatal error removing directory: Contents/MacOS/updater.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/Contents/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/plugin-container.app/ non-fatal error removing directory: Contents/MacOS/plugin-container.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/_CodeSignature/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/Resources/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/Contents/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/crashreporter.app/ non-fatal error removing directory: Contents/MacOS/crashreporter.app/, rv: 0, err: 66 FINISH REMOVEDIR Contents/MacOS/ non-fatal error removing directory: Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/Contents/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/Contents/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/thunderbird.mdimporter/ non-fatal error removing directory: Contents/Library/Spotlight/thunderbird.mdimporter/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/Spotlight/ non-fatal error removing directory: Contents/Library/Spotlight/, rv: 0, err: 66 FINISH REMOVEDIR Contents/Library/ non-fatal error removing directory: Contents/Library/, rv: 0, err: 66 FINISH REMOVEDIR Contents/ non-fatal error removing directory: Contents/, rv: 0, err: 66 FINISH ADD Contents/_CodeSignature/CodeResources FINISH ADD Contents/Resources/updater.ini FINISH ADD Contents/Resources/thunderbird.icns FINISH ADD Contents/Resources/searchplugins/wikipedia-ptpt.xml FINISH ADD Contents/Resources/searchplugins/sapo.xml FINISH ADD Contents/Resources/searchplugins/priberam.xml FINISH ADD Contents/Resources/searchplugins/google.xml FINISH ADD Contents/Resources/searchplugins/amazon-en-GB.xml FINISH ADD Contents/Resources/res/cursors/zoomOut@2x.png FINISH ADD Contents/Resources/res/cursors/zoomOut.png FINISH ADD Contents/Resources/res/cursors/zoomIn@2x.png FINISH ADD Contents/Resources/res/cursors/zoomIn.png FINISH ADD Contents/Resources/res/cursors/vtIBeam@2x.png FINISH ADD Contents/Resources/res/cursors/vtIBeam.png FINISH ADD Contents/Resources/res/cursors/sizeSW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSW.png FINISH ADD Contents/Resources/res/cursors/sizeSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeSE.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNWSE.png FINISH ADD Contents/Resources/res/cursors/sizeNW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNW.png FINISH ADD Contents/Resources/res/cursors/sizeNS@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNS.png FINISH ADD Contents/Resources/res/cursors/sizeNESW@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNESW.png FINISH ADD Contents/Resources/res/cursors/sizeNE@2x.png FINISH ADD Contents/Resources/res/cursors/sizeNE.png FINISH ADD Contents/Resources/res/cursors/rowResize@2x.png FINISH ADD Contents/Resources/res/cursors/rowResize.png FINISH ADD Contents/Resources/res/cursors/move@2x.png FINISH ADD Contents/Resources/res/cursors/move.png FINISH ADD Contents/Resources/res/cursors/help@2x.png FINISH ADD Contents/Resources/res/cursors/help.png FINISH ADD Contents/Resources/res/cursors/colResize@2x.png FINISH ADD Contents/Resources/res/cursors/colResize.png FINISH ADD Contents/Resources/res/cursors/cell@2x.png FINISH ADD Contents/Resources/res/cursors/cell.png FINISH ADD Contents/Resources/res/cursors/arrowS@2x.png FINISH ADD Contents/Resources/res/cursors/arrowS.png FINISH ADD Contents/Resources/res/cursors/arrowN@2x.png FINISH ADD Contents/Resources/res/cursors/arrowN.png FINISH ADD Contents/Resources/res/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/Resources/res/MainMenu.nib/info.nib FINISH ADD Contents/Resources/res/MainMenu.nib/classes.nib FINISH ADD Contents/Resources/removed-files FINISH ADD Contents/Resources/pt.lproj/InfoPlist.strings FINISH ADD Contents/Resources/precomplete FINISH ADD Contents/Resources/platform.ini FINISH ADD Contents/Resources/omni.ja FINISH ADD Contents/Resources/isp/rss.rdf FINISH ADD Contents/Resources/isp/SpamPal.sfd FINISH ADD Contents/Resources/isp/SpamAssassin.sfd FINISH ADD Contents/Resources/isp/POPFile.sfd FINISH ADD Contents/Resources/isp/DSPAM.sfd FINISH ADD Contents/Resources/isp/Bogofilter.sfd FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png FINISH ADD Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageHelpers.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libical-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/icaljs-manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/components.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js FINISH ADD Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini FINISH ADD Contents/Resources/dictionaries/pt_PT.dic FINISH ADD Contents/Resources/dictionaries/pt_PT.aff FINISH ADD Contents/Resources/dependentlibs.list FINISH ADD Contents/Resources/defaults/messenger/mailViews.dat FINISH ADD Contents/Resources/blocklist.xml FINISH ADD Contents/Resources/application.ini FINISH ADD Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/updater.app/Contents/Resources/updater.icns FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/updater.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/updater.app/Contents/PkgInfo FINISH ADD Contents/MacOS/updater.app/Contents/MacOS/updater FINISH ADD Contents/MacOS/updater.app/Contents/Info.plist FINISH ADD Contents/MacOS/thunderbird-bin FINISH ADD Contents/MacOS/thunderbird FINISH ADD Contents/MacOS/plugin-container.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/plugin-container.app/Contents/PkgInfo FINISH ADD Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container FINISH ADD Contents/MacOS/plugin-container.app/Contents/Info.plist FINISH ADD Contents/MacOS/libsoftokn3.dylib FINISH ADD Contents/MacOS/libprldap60.dylib FINISH ADD Contents/MacOS/libplugin_child_interpose.dylib FINISH ADD Contents/MacOS/libnssdbm3.dylib FINISH ADD Contents/MacOS/libnssckbi.dylib FINISH ADD Contents/MacOS/libnss3.dylib FINISH ADD Contents/MacOS/libmozglue.dylib FINISH ADD Contents/MacOS/libmozalloc.dylib FINISH ADD Contents/MacOS/libldif60.dylib FINISH ADD Contents/MacOS/libldap60.dylib FINISH ADD Contents/MacOS/libfreebl3.dylib FINISH ADD Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.icns FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenuRTL.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib FINISH ADD Contents/MacOS/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/MacOS/crashreporter.app/Contents/PkgInfo FINISH ADD Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter FINISH ADD Contents/MacOS/crashreporter.app/Contents/Info.plist FINISH ADD Contents/MacOS/XUL FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/_CodeSignature/CodeResources FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/schema.xml FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/schema.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Resources/English.lproj/InfoPlist.strings FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport FINISH ADD Contents/Library/Spotlight/thunderbird.mdimporter/Contents/Info.plist FINISH ADD Contents/Info.plist succeeded calling QuitProgressUI diff -r source/Thunderbird.app/Contents/Info.plist target/Thunderbird.app/Contents/Info.plist 10c10 < Thunderbird 38.8.0 --- > Thunderbird 45.1.0 22c22 < 38.8.0 --- > 45.1.0 26c26 < 38.8.0 --- > 45.1.0 Binary files source/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport and target/Thunderbird.app/Contents/Library/Spotlight/thunderbird.mdimporter/Contents/MacOS/thunderbird-mdimport differ Binary files source/Thunderbird.app/Contents/MacOS/XUL and target/Thunderbird.app/Contents/MacOS/XUL differ Binary files source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter and target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/MacOS/crashreporter differ diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/Resources/crashreporter.ini 4d3 < 12c11 < CrashReporterTitle=Relator de Falhas --- > CrashReporterTitle=Relator de falhas 14c13 < CrashReporterVendorTitle=Relator de Falhas do %s --- > CrashReporterVendorTitle=Relator de falhas da %s 16c15 < CrashReporterErrorText=A aplicação teve um problema e falhou.\n\nInfelizmente o relator de falhas não consegue submeter o relatório desta falha.\n\nDetalhes: %s --- > CrashReporterErrorText=A aplicação teve um problema e falhou.\n\nInfelizmente, o relator de falhas não consegue submeter o relatório desta falha.\n\nDetalhes: %s 18c17 < CrashReporterProductErrorText2=O %s teve um problema e falhou.\n\nInfelizmente o relator de falhas não consegue submeter o relatório desta falha.\n\nDetalhes: %s --- > CrashReporterProductErrorText2=O %s teve um problema e falhou.\n\nInfelizmente o relator de falhas não consegue submeter um relatório de falha.\n\nDetalhes: %s 21,22c20,21 < CrashReporterDescriptionText2=O %s teve um problema e falhou.\n\nPara nos ajudar a diagnosticar e reparar a falha, pode-nos enviar um relatório de erro. < CrashReporterDefault=Esta aplicação é executada após uma falha para reportar o problema ao fabricante da aplicação. Não pode ser executada directamente. --- > CrashReporterDescriptionText2=O %s teve um problema e falhou.\n\nPara nos ajudar a diagnosticar e reparar a falha, pode enviar-nos um relatório de falha. > CrashReporterDefault=Esta aplicação é executada após uma falha para reportar o problema ao fabricante da aplicação. Não pode ser executada diretamente. 24,25c23,24 < ViewReportTitle=Conteúdo do Relatório < CommentGrayText=Adicione um comentário. Nota: O comentários são visíveis publicamente --- > ViewReportTitle=Conteúdo do relatório > CommentGrayText=Adicione um comentário (os comentários são visíveis publicamente) 28c27 < CheckSendReport=Diga à %s sobre esta falha para que a possam reparar --- > CheckSendReport=Informar a %s sobre esta falha para que a possam resolver 31,32c30,31 < EmailGrayText=Introduza aqui o seu endereço de correio < ReportPreSubmit2=O relatório da falha irá ser submetido antes de sair ou reiniciar. --- > EmailGrayText=Digite o seu endereço de email aqui > ReportPreSubmit2=O seu relatório de falha irá ser submetido antes de sair ou reiniciar. 36c35 < ReportResubmit=A re-enviar o relatório que anteriormente falhou o envio… --- > ReportResubmit=A reenviar o relatório que não foi enviado anteriormente… 43d41 < 49c47 < ErrorExtraFileExists=A aplicação não deixou um ficheiro de dados da aplicação. --- > ErrorExtraFileExists=A aplicação não deixou um ficheiro de dados. 52,53c50,51 < ErrorDumpFileExists=A aplicação não deixou um ficheiro dump da falha. < ErrorDumpFileMove=Não foi possível mover o dump do erro. --- > ErrorDumpFileExists=A aplicação não deixou um ficheiro dump de falha. > ErrorDumpFileMove=Não foi possível mover o dump da falha. 57c55 < ErrorCreateDumpDir=Não foi possível criar a directoria dump. --- > ErrorCreateDumpDir=Não foi possível criar o diretório dump. 59,60c57 < ErrorEndOfLife=A versão do %s que está a utilizar já não é suportada. Os relatórios de falhas já não são aceites para esta versão. Considere em actualizar para uma versão suportada. < --- > ErrorEndOfLife=A versão do %s que está a utilizar já não é suportada. Os relatórios de falhas já não são aceites para esta versão. Considere a atualização para uma versão suportada. diff -r source/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/MacOS/crashreporter.app/Contents/_CodeSignature/CodeResources 76c76 < MJHjUZcJAAnVviG8acqDC22pxbo= --- > DdCHUjL46yyhAOq18+SPMlC3MeI= 150c150 < MJHjUZcJAAnVviG8acqDC22pxbo= --- > DdCHUjL46yyhAOq18+SPMlC3MeI= Binary files source/Thunderbird.app/Contents/MacOS/libfreebl3.dylib and target/Thunderbird.app/Contents/MacOS/libfreebl3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldap60.dylib and target/Thunderbird.app/Contents/MacOS/libldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libldif60.dylib and target/Thunderbird.app/Contents/MacOS/libldif60.dylib differ Only in target/Thunderbird.app/Contents/MacOS: liblgpllibs.dylib Only in source/Thunderbird.app/Contents/MacOS: libmozalloc.dylib Binary files source/Thunderbird.app/Contents/MacOS/libmozglue.dylib and target/Thunderbird.app/Contents/MacOS/libmozglue.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnss3.dylib and target/Thunderbird.app/Contents/MacOS/libnss3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssckbi.dylib and target/Thunderbird.app/Contents/MacOS/libnssckbi.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib and target/Thunderbird.app/Contents/MacOS/libnssdbm3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib and target/Thunderbird.app/Contents/MacOS/libplugin_child_interpose.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libprldap60.dylib and target/Thunderbird.app/Contents/MacOS/libprldap60.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib and target/Thunderbird.app/Contents/MacOS/libsoftokn3.dylib differ Binary files source/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container and target/Thunderbird.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird and target/Thunderbird.app/Contents/MacOS/thunderbird differ Binary files source/Thunderbird.app/Contents/MacOS/thunderbird-bin and target/Thunderbird.app/Contents/MacOS/thunderbird-bin differ Binary files source/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater and target/Thunderbird.app/Contents/MacOS/updater.app/Contents/MacOS/updater differ diff -r source/Thunderbird.app/Contents/Resources/application.ini target/Thunderbird.app/Contents/Resources/application.ini 8,11c8,11 < Version=38.8.0 < BuildID=20160503054940 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > Version=45.1.0 > BuildID=20160509110721 > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc039a7862b42641ed8309d5147bb2 15,16c15,16 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 23c23 < ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=38.8.0&buildid=20160503054940 --- > ServerURL=https://crash-reports.mozilla.com/submit?id={3550f703-e582-4d05-9a08-453d09bdfdc6}&version=45.1.0&buildid=20160509110721 diff -r source/Thunderbird.app/Contents/Resources/blocklist.xml target/Thunderbird.app/Contents/Resources/blocklist.xml 2c2 < --- > 455c455 < --- > 1401a1402,1407 > > > > > > 1867a1874,1879 > > > > > > 2019a2032,2037 > > > > > > 2269c2287 < --- > 3066c3084 < All 0x8086 FEATURE_HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL --- > All 0x8086 HARDWARE_VIDEO_DECODING BLOCKED_DRIVER_VERSION 10.18.10.3947 EQUAL diff -r source/Thunderbird.app/Contents/Resources/dependentlibs.list target/Thunderbird.app/Contents/Resources/dependentlibs.list 1,2d0 < libmozglue.dylib < libnss3.dylib 4a3,4 > libmozglue.dylib > libnss3.dylib 6c6 < libmozalloc.dylib --- > liblgpllibs.dylib diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/app.ini 11,12c11,12 < Version=4.0.8 < BuildID=20160503054940 --- > Version=4.7.1 > BuildID=20160509110721 14,15c14,15 < SourceRepository=https://hg.mozilla.org/releases/comm-esr38 < SourceStamp=52b3cf378da6 --- > SourceRepository=https://hg.mozilla.org/releases/comm-esr45 > SourceStamp=586a7759f7cc 21,22c21,22 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 < SourceStamp=e612dadc1a46 --- > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 25,26c25,26 < MinVersion=38.8.0 < MaxVersion=38.8.0 --- > MinVersion=45.1.0 > MaxVersion=45.1.0 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarm.js 9,11c9,11 < const ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; < const ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; < const ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; --- > var ALARM_RELATED_ABSOLUTE = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE; > var ALARM_RELATED_START = Components.interfaces.calIAlarm.ALARM_RELATED_START; > var ALARM_RELATED_END = Components.interfaces.calIAlarm.ALARM_RELATED_END; 21,22c21,22 < const calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); < const calAlarmInterfaces = [Components.interfaces.calIAlarm]; --- > var calAlarmClassID = Components.ID("{b8db7c7f-c168-4e11-becb-f26c1c4f5f8f}"); > var calAlarmInterfaces = [Components.interfaces.calIAlarm]; 619a620,629 > function getItemBundleStringName(aPrefix) { > if (!aItem || isEvent(aItem)) { > return aPrefix + "Event"; > } else if (isToDo(aItem)) { > return aPrefix + "Task"; > } else { > return aPrefix; > } > } > 627,635d636 < function getItemBundleStringName(aPrefix) { < if (!aItem || isEvent(aItem)) { < return aPrefix + "Event"; < } else if (isToDo(aItem)) { < return aPrefix + "Task"; < } else { < return aPrefix; < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmMonitor.js 27,28c27,28 < const calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); < const calAlarmMonitorInterfaces = [ --- > var calAlarmMonitorClassID = Components.ID("{4b7ae030-ed79-11d9-8cd6-0800200c9a66}"); > var calAlarmMonitorInterfaces = [ 121c121,122 < if (!calAlarmWindow && !this.mWindowOpening) { --- > if (!calAlarmWindow && (!this.mWindowOpening || > this.mWindowOpening.closed)) { 173c174,180 < onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) {} --- > onAlarmsLoaded: function cAM_onAlarmsLoaded(aCalendar) { > // the alarm dialog won't close while alarms are loading, check again now > let calAlarmWindow = peekAlarmWindow(); > if (calAlarmWindow && this.mAlarms.length == 0) { > calAlarmWindow.closeIfEmpty(); > } > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAlarmService.js 13,15c13,15 < const kHoursBetweenUpdates = 6; < const kSleepMonitorInterval = 60000; < const kSleepMonitorTolerance = 1000; --- > var kHoursBetweenUpdates = 6; > var kSleepMonitorInterval = 60000; > var kSleepMonitorTolerance = 1000; 104,105c104,105 < const calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); < const calAlarmServiceInterfaces = [ --- > var calAlarmServiceClassID = Components.ID("{7a9200dd-6a64-4fff-a798-c5802186e2cc}"); > var calAlarmServiceInterfaces = [ 483a484 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 485a487,488 > batchCount: 0, > results: false, 497c500 < }, function onReject(aReason) { --- > }, (aReason) => { 498a502,503 > this.alarmService.mLoadedCalendars[aCalendar.id] = true; > this.alarmService.mObservers.notify("onAlarmsLoaded", [aCalendar]); 499a505,509 > > // if no results were returned we still need to resolve the promise > if (!this.results) { > this.addRemovePromise.resolve(); > } 507a518,520 > this.batchCount++; > this.results = true; > 515,516c528,531 < }, function completed() { < promise.resolve(); --- > }, () => { > if (--this.batchCount <= 0) { > promise.resolve(); > } 529a545 > this.mLoadedCalendars[calendar.id] = false; 530a547,549 > } else { > this.mLoadedCalendars[calendar.id] = true; > this.mObservers.notify("onAlarmsLoaded", [calendar]); 536c555 < // Purge out all alarm timers belonging to the refreshed/loaded calendar: --- > // Purge out all alarm timers belonging to the refreshed/loaded calendars 539,540c558,562 < // Purge out all alarms from dialog belonging to the refreshed/loaded calendar: < this.mObservers.notify("onRemoveAlarmsByCalendar", aCalendars); --- > // Purge out all alarms from dialog belonging to the refreshed/loaded calendars > for (let calendar of aCalendars) { > this.mLoadedCalendars[calendar.id] = false; > this.mObservers.notify("onRemoveAlarmsByCalendar", [calendar]); > } 558a581,587 > }, > > get isLoading() { > for (let calId in this.mLoadedCalendars) { > if (!this.mLoadedCalendars[calId]) return true; > } > return false; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttachment.js 17,18c17,18 < const calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); < const calAttachmentInterfaces = [Components.interfaces.calIAttachment]; --- > var calAttachmentClassID = Components.ID("{5f76b352-ab75-4c2b-82c9-9206dbbf8571}"); > var calAttachmentInterfaces = [Components.interfaces.calIAttachment]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calAttendee.js 14,15c14,15 < const calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); < const calAttendeeInterfaces = [Components.interfaces.calIAttendee]; --- > var calAttendeeClassID = Components.ID("{5c8dcaa3-170c-4a73-8142-d531156f664d}"); > var calAttendeeInterfaces = [Components.interfaces.calIAttendee]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCachedCalendar.js 10,12c10,12 < const calICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var calICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 14c14,15 < let gNoOpListener = { --- > var gNoOpListener = { > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 57a59 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIObserver]), 226a229 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 244a248 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 262a267 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 337a343 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 435c441 < this_.playbackOfflineItems(function() emptyQueue(aStatus)); --- > this_.playbackOfflineItems(() => emptyQueue(aStatus)); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarManager.js 11,14c11,14 < const REGISTRY_BRANCH = "calendar.registry."; < const DB_SCHEMA_VERSION = 10; < const MAX_INT = Math.pow(2, 31) - 1; < const MIN_INT = -MAX_INT; --- > var REGISTRY_BRANCH = "calendar.registry."; > var DB_SCHEMA_VERSION = 10; > var MAX_INT = Math.pow(2, 31) - 1; > var MIN_INT = -MAX_INT; 22,23c22,23 < const calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); < const calCalendarManagerInterfaces = [ --- > var calCalendarManagerClassID = Components.ID("{f42585e7-e736-4600-985d-9624c1c51992}"); > var calCalendarManagerInterfaces = [ 39,41c39,41 < get networkCalendarCount() this.mNetworkCalendarCount, < get readOnlyCalendarCount() this.mReadonlyCalendarCount, < get calendarCount() this.mCalendarCount, --- > get networkCalendarCount() { return this.mNetworkCalendarCount; }, > get readOnlyCalendarCount() { return this.mReadonlyCalendarCount; }, > get calendarCount() { return this.mCalendarCount; }, 128,129c128,129 < let escapedName = calendar.name.replace('\\', '\\\\', 'g') < .replace('"','\\"', 'g'); --- > let escapedName = calendar.name.replace(/\\/g, '\\\\') > .replace(/\"/g, '\\"'); 153c153 < if (calUAString && ua.indexOf(calUAString) < 0) { --- > if (calUAString && !ua.includes(calUAString)) { 455c455 < return; --- > return null; 761,763c761,763 < addObserver: function(aObserver) this.mObservers.add(aObserver), < removeObserver: function(aObserver) this.mObservers.remove(aObserver), < notifyObservers: function(functionName, args) this.mObservers.notify(functionName, args), --- > addObserver: function(aObserver) { return this.mObservers.add(aObserver); }, > removeObserver: function(aObserver) { return this.mObservers.remove(aObserver); }, > notifyObservers: function(functionName, args) { return this.mObservers.notify(functionName, args); }, 766,768c766,768 < addCalendarObserver: function(aObserver) this.mCalendarObservers.add(aObserver), < removeCalendarObserver: function(aObserver) this.mCalendarObservers.remove(aObserver), < notifyCalendarObservers: function(functionName, args) this.mCalendarObservers.notify(functionName, args) --- > addCalendarObserver: function(aObserver) { return this.mCalendarObservers.add(aObserver); }, > removeCalendarObserver: function(aObserver) { return this.mCalendarObservers.remove(aObserver); }, > notifyCalendarObservers: function(functionName, args) { return this.mCalendarObservers.notify(functionName, args); } 799,804c799,804 < onStartBatch: function() this.calMgr.notifyCalendarObservers("onStartBatch", arguments), < onEndBatch: function() this.calMgr.notifyCalendarObservers("onEndBatch", arguments), < onLoad: function(calendar) this.calMgr.notifyCalendarObservers("onLoad", arguments), < onAddItem: function(aItem) this.calMgr.notifyCalendarObservers("onAddItem", arguments), < onModifyItem: function(aNewItem, aOldItem) this.calMgr.notifyCalendarObservers("onModifyItem", arguments), < onDeleteItem: function(aDeletedItem) this.calMgr.notifyCalendarObservers("onDeleteItem", arguments), --- > onStartBatch: function() { return this.calMgr.notifyCalendarObservers("onStartBatch", arguments); }, > onEndBatch: function() { return this.calMgr.notifyCalendarObservers("onEndBatch", arguments); }, > onLoad: function(calendar) { return this.calMgr.notifyCalendarObservers("onLoad", arguments); }, > onAddItem: function(aItem) { return this.calMgr.notifyCalendarObservers("onAddItem", arguments); }, > onModifyItem: function(aNewItem, aOldItem) { return this.calMgr.notifyCalendarObservers("onModifyItem", arguments); }, > onDeleteItem: function(aDeletedItem) { return this.calMgr.notifyCalendarObservers("onDeleteItem", arguments); }, 958,962c958 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); < if (!isSerious) { < WARN(summary); < } else { < // Write error to console. --- > if (aErrNo == calIErrors.MODIFICATION_FAILED) { 963a960,964 > this.announceParamBlock(paramBlock); > } else { > cal.WARN(summary); > } > }, 965,1010c966,982 < // silently don't do anything if this message already has < // been announced without being acknowledged. < if (this.announcedMessages.some( < function(element, index, array) { < return equalMessage(paramBlock, element); < })) { < return; < } < < // this message hasn't been announced recently, remember the < // details of the message for future reference. < this.announcedMessages.push(paramBlock); < < // Display in prompt window. < var promptWindow = < Services.ww.openWindow < (null, "chrome://calendar/content/calendar-error-prompt.xul", < "_blank", "chrome,dialog=yes,alwaysRaised=yes", < paramBlock); < // Will remove paramBlock from announced messages when < // promptWindow is closed. (Closing fires unloaded event, but < // promptWindow is also unloaded [to clean it?] before loading, < // so wait for detected load event before detecting unload event < // that signifies user closed this prompt window.) < var observer = this; < function awaitLoad(event) { < // #2 loaded, remove load listener < promptWindow.removeEventListener("load", awaitLoad, false); < function awaitUnload(event) { < // #4 unloaded (user closed prompt window), < // remove paramBlock and unload listener. < try { < // remove the message that has been shown from < // the list of all announced messages. < observer.announcedMessages = < observer.announcedMessages.filter(function(msg) { < return !equalMessage(msg, paramBlock); < }); < promptWindow.removeEventListener("unload", awaitUnload, < false); < } catch (e) { < Components.utils.reportError(e); < } < } < // #3 add unload listener (wait for user to close promptWindow) < promptWindow.addEventListener("unload", awaitUnload, false); --- > announceParamBlock: function(paramBlock) { > function awaitLoad(event) { > promptWindow.removeEventListener("load", awaitLoad, false); > promptWindow.addEventListener("unload", awaitUnload, false); > } > let awaitUnload = (event) => { > promptWindow.removeEventListener("unload", awaitUnload, false); > // unloaded (user closed prompt window), > // remove paramBlock and unload listener. > try { > // remove the message that has been shown from > // the list of all announced messages. > this.announcedMessages = this.announcedMessages.filter((msg) => { > return !equalMessage(msg, paramBlock); > }); > } catch (e) { > Components.utils.reportError(e); 1012,1013c984,989 < // #1 add load listener < promptWindow.addEventListener("load", awaitLoad, false); --- > }; > > // silently don't do anything if this message already has been > // announced without being acknowledged. > if (this.announcedMessages.some(equalMessage.bind(null, paramBlock))) { > return; 1014a991,1004 > > // this message hasn't been announced recently, remember the details of > // the message for future reference. > this.announcedMessages.push(paramBlock); > > // Will remove paramBlock from announced messages when promptWindow is > // closed. (Closing fires unloaded event, but promptWindow is also > // unloaded [to clean it?] before loading, so wait for detected load > // event before detecting unload event that signifies user closed this > // prompt window.) > let promptUrl = "chrome://calendar/content/calendar-error-prompt.xul"; > let features = "chrome,dialog=yes,alwaysRaised=yes"; > let promptWindow = Services.ww.openWindow(null, promptUrl, "_blank", features, paramBlock); > promptWindow.addEventListener("load", awaitLoad, false); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calCalendarSearchService.js 51,52c51,52 < const calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); < const calCalendarSearchServiceInterfaces = [ --- > var calCalendarSearchServiceClassID = Components.ID("{f5f743cd-8997-428e-bc1b-644e73f61203}"); > var calCalendarSearchServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTime.js 9c9 < const UNIX_TIME_TO_PRTIME = 1000000; --- > var UNIX_TIME_TO_PRTIME = 1000000; 16,17c16,17 < const calDateTimeInterfaces = [Components.interfaces.calIDateTime]; < const calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); --- > var calDateTimeInterfaces = [Components.interfaces.calIDateTime]; > var calDateTimeClassID = Components.ID("{36783242-ec94-4d8a-9248-d2679edd55b9}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDateTime(this.innerObject.clone()), --- > makeImmutable: function () { this.isMutable = false; }, > clone: function() { return new calDateTime(this.innerObject.clone()); }, 35,36c35,36 < get nativeTime() this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME, < set nativeTime(val) this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME), --- > get nativeTime() { return this.innerObject.toUnixTime() * UNIX_TIME_TO_PRTIME; }, > set nativeTime(val) { this.innerObject.fromUnixTime(val / UNIX_TIME_TO_PRTIME); }, 38,39c38,39 < get year() this.innerObject.year, < set year(val) this.innerObject.year = val, --- > get year() { return this.innerObject.year; }, > set year(val) { this.innerObject.year = val; }, 41,42c41,42 < get month() this.innerObject.month - 1, < set month(val) this.innerObject.month = val + 1, --- > get month() { return this.innerObject.month - 1; }, > set month(val) { this.innerObject.month = val + 1; }, 44,45c44,45 < get day() this.innerObject.day, < set day(val) this.innerObject.day = val, --- > get day() { return this.innerObject.day; }, > set day(val) { this.innerObject.day = val; }, 47,48c47,48 < get hour() this.innerObject.hour, < set hour(val) this.innerObject.hour = val, --- > get hour() { return this.innerObject.hour; }, > set hour(val) { this.innerObject.hour = val; }, 50,51c50,51 < get minute() this.innerObject.minute, < set minute(val) this.innerObject.minute = val, --- > get minute() { return this.innerObject.minute; }, > set minute(val) { this.innerObject.minute = val; }, 53,54c53,54 < get second() this.innerObject.second, < set second(val) this.innerObject.second = val, --- > get second() { return this.innerObject.second; }, > set second(val) { this.innerObject.second = val; }, 56,57c56,57 < get timezone() new calICALJSTimezone(this.innerObject.zone), < set timezone(val) unwrapSetter(ICAL.Timezone, val, function(val) { --- > get timezone() { return new calICALJSTimezone(this.innerObject.zone); }, > set timezone(val) { unwrapSetter(ICAL.Timezone, val, function(val) { 59c59 < }, this), --- > }, this); }, 69c69 < reset: function() this.innerObject.reset(), --- > reset: function() { this.innerObject.reset(); }, 71,73c71,73 < get timezoneOffset() this.innerObject.utcOffset(), < get isDate() this.innerObject.isDate, < set isDate(val) this.innerObject.isDate = val, --- > get timezoneOffset() { return this.innerObject.utcOffset(); }, > get isDate() { return this.innerObject.isDate; }, > set isDate(val) { this.innerObject.isDate = val; }, 75,76c75,76 < get weekday() this.innerObject.dayOfWeek() - 1, < get yearday() this.innerObject.dayOfYear(), --- > get weekday() { return this.innerObject.dayOfWeek() - 1; }, > get yearday() { return this.innerObject.dayOfYear(); }, 78c78 < toString: function() this.innerObject.toString(), --- > toString: function() { return this.innerObject.toString(); }, 112,117c112,117 < get startOfWeek() new calDateTime(this.innerObject.startOfWeek()), < get endOfWeek() new calDateTime(this.innerObject.endOfWeek()), < get startOfMonth() new calDateTime(this.innerObject.startOfMonth()), < get endOfMonth() new calDateTime(this.innerObject.endOfMonth()), < get startOfYear() new calDateTime(this.innerObject.startOfYear()), < get endOfYear() new calDateTime(this.innerObject.endOfYear()), --- > get startOfWeek() { return new calDateTime(this.innerObject.startOfWeek()); }, > get endOfWeek() { return new calDateTime(this.innerObject.endOfWeek()); }, > get startOfMonth() { return new calDateTime(this.innerObject.startOfMonth()); }, > get endOfMonth() { return new calDateTime(this.innerObject.endOfMonth()); }, > get startOfYear() { return new calDateTime(this.innerObject.startOfYear()); }, > get endOfYear() { return new calDateTime(this.innerObject.endOfYear()); }, 119c119 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDateTimeFormatter.js 9c9 < const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; --- > var nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; 68,69c68,69 < const calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); < const calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; --- > var calDateTimeFormatterClassID = Components.ID("{4123da9a-f047-42da-a7d0-cc4175b9f36a}"); > var calDateTimeFormatterInterfaces = [Components.interfaces.calIDateTimeFormatter]; 94a95 > let longDate; 96,103c97,113 < return this.mDateService.FormatDate("", < nsIScriptableDateFormat.dateFormatLong, < aDate.year, < aDate.month + 1, < aDate.day); < } else { < // HACK We are probably on Linux and want a string in long format. < // dateService.dateFormatLong on Linux may return a short string, so --- > longDate = this.mDateService.FormatDate("", > nsIScriptableDateFormat.dateFormatLong, > aDate.year, > aDate.month + 1, > aDate.day); > // check whether weekday name appears as in Lightning localization. if not, this is > // probably a minority language without OS support, so we should fall back to compose > // longDate on our own. May be not needed anymore once bug 441167 is fixed. > if (!longDate.includes(this.dayName(aDate.weekday)) && > !longDate.includes(this.shortDayName(aDate.weekday))) { > longDate = null; > this.mUseLongDateService = false; > } > } > if (longDate == null) { > // HACK We are probably on Linux or have a minority localization and want a string in > // long format. dateService.dateFormatLong on Linux may return a short string, so 105,109c115,119 < return cal.calGetString("calendar", "formatDateLong", < [this.shortDayName(aDate.weekday), < this.formatDayWithOrdinal(aDate.day), < this.shortMonthName(aDate.month), < aDate.year]); --- > longDate = cal.calGetString("calendar", "formatDateLong", > [this.shortDayName(aDate.weekday), > this.formatDayWithOrdinal(aDate.day), > this.shortMonthName(aDate.month), > aDate.year]); 110a121 > return longDate; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDavRequestHandlers.js 548,549c548 < r.href.length >= 4 && < r.href.substr(r.href.length - 4,4) == ".ics") { --- > r.href.endsWith(".ics")) { 588c587 < r.status.indexOf(" 507") > -1) { --- > r.status.includes(" 507")) { 607c606 < r.getcontenttype.substr(0,13) == "text/calendar") || --- > r.getcontenttype.startsWith("text/calendar")) || 609c608 < r.status.indexOf(" 404") == -1)) { --- > !r.status.includes(" 404"))) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDeletedItems.js 26,27c26,27 < const calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); < const calDeletedItemsInterfaces = [ --- > var calDeletedItemsClassID = Components.ID("{8e6799af-e7e9-4e6c-9a82-a2413e86d8c3}"); > var calDeletedItemsInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calDuration.js 13,14c13,14 < const calDurationInterfaces = [Components.interfaces.calIDuration]; < const calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); --- > var calDurationInterfaces = [Components.interfaces.calIDuration]; > var calDurationClassID = Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"); 25,26c25,26 < get icalDuration() this.innerObject, < set icalDuration(val) this.innerObject = val, --- > get icalDuration() { return this.innerObject; }, > set icalDuration(val) { this.innerObject = val; }, 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calDuration(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calDuration(this.innerObject.clone()); }, 32,33c32,33 < get isNegative() this.innerObject.isNegative, < set isNegative(val) this.innerObject.isNegative = val, --- > get isNegative() { return this.innerObject.isNegative; }, > set isNegative(val) { this.innerObject.isNegative = val; }, 35,36c35,36 < get weeks() this.innerObject.weeks, < set weeks(val) this.innerObject.weeks = val, --- > get weeks() { return this.innerObject.weeks; }, > set weeks(val) { this.innerObject.weeks = val; }, 38,39c38,39 < get days() this.innerObject.days, < set days(val) this.innerObject.days = val, --- > get days() { return this.innerObject.days; }, > set days(val) { this.innerObject.days = val; }, 41,42c41,42 < get hours() this.innerObject.hours, < set hours(val) this.innerObject.hours = val, --- > get hours() { return this.innerObject.hours; }, > set hours(val) { this.innerObject.hours = val; }, 44,45c44,45 < get minutes() this.innerObject.minutes, < set minutes(val) this.innerObject.minutes = val, --- > get minutes() { return this.innerObject.minutes; }, > set minutes(val) { this.innerObject.minutes = val; }, 47,48c47,48 < get seconds() this.innerObject.seconds, < set seconds(val) this.innerObject.seconds = val, --- > get seconds() { return this.innerObject.seconds; }, > set seconds(val) { this.innerObject.seconds = val; }, 50,51c50,51 < get inSeconds() this.innerObject.toSeconds(), < set inSeconds(val) this.innerObject.fromSeconds(val), --- > get inSeconds() { return this.innerObject.toSeconds(); }, > set inSeconds(val) { this.innerObject.fromSeconds(val); }, 61,63c61,63 < reset: function() this.innerObject.reset(), < normalize: function() this.innerObject.normalize(), < toString: function() this.innerObject.toString(), --- > reset: function() { this.innerObject.reset(); }, > normalize: function() { this.innerObject.normalize(); }, > toString: function() { return this.innerObject.toString(); }, 65,66c65,66 < get icalString() this.innerObject.toString(), < set icalString(val) this.innerObject = ICAL.Duration.fromString(val) --- > get icalString() { return this.innerObject.toString(); }, > set icalString(val) { this.innerObject = ICAL.Duration.fromString(val); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calEvent.js 20,21c20,21 < const calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); < const calEventInterfaces = [ --- > var calEventClassID = Components.ID("{974339d5-ab86-4491-aaaf-2b2ca177c12b}"); > var calEventInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFilter.js 5a6 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 357c358 < for each (let field in ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { --- > for (let field of ["SUMMARY", "DESCRIPTION", "LOCATION", "URL"]) { 359c360 < if (val && val.toLowerCase().indexOf(searchText) != -1) { --- > if (val && val.toLowerCase().includes(searchText)) { 365c366 < return (cat.toLowerCase().indexOf(searchText) != -1); --- > return cat.toLowerCase().includes(searchText); 423c424 < return aItem.getCategories({}).indexOf(cat) > -1; --- > return aItem.getCategories({}).includes(cat); 867a869 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calFreeBusyService.js 58,59c58,59 < const calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); < const calFreeBusyServiceInterfaces = [ --- > var calFreeBusyServiceClassID = Components.ID("{29c56cd5-d36e-453a-acde-0083bd4fe6d3}"); > var calFreeBusyServiceInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calHtmlExport.js 17,18c17,18 < const calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); < const calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calHtmlExporterClassID = Components.ID("{72d9ab35-9b1b-442a-8cd0-ae49f00b159b}"); > var calHtmlExporterInterfaces = [Components.interfaces.calIExporter]; 64c64 < function setupTextRow(classKey, propValue, prefixKey) { --- > let setupTextRow = function(classKey, propValue, prefixKey) { 76c76 < } --- > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService-worker.js 9,11c9,11 < const NS_OK = 0; < const NS_ERROR_FAILURE = 2147500037; < const ICS_ERROR_BASE = 2152333568; --- > var NS_OK = 0; > var NS_ERROR_FAILURE = 2147500037; > var ICS_ERROR_BASE = 2152333568; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calICSService.js 14,15c14,15 < const calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; < const calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); --- > var calIcalPropertyInterfaces = [Components.interfaces.calIIcalProperty]; > var calIcalPropertyClassID = Components.ID("{423ac3f0-f612-48b3-953f-47f7f8fd705b}"); 26,28c26,28 < get icalString() this.innerObject.toICAL() + ICAL.newLineChar, < get icalProperty() this.innerObject, < set icalProperty(val) this.innerObject = val, --- > get icalString() { return this.innerObject.toICAL() + ICAL.newLineChar; }, > get icalProperty() { return this.innerObject; }, > set icalProperty(val) { this.innerObject = val; }, 30,31c30,31 < get parent() this.innerObject.parent, < toString: function() this.innerObject.toICAL(), --- > get parent() { return this.innerObject.parent; }, > toString: function() { return this.innerObject.toICAL(); }, 52,54c52,54 < let type = this.innerObject.type; < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < return this.innerObject.getValues().map(stringifyValue).join(","); --- > return this.innerObject.getValues().map(v => { > return ICAL.stringify.value(v.toString(), this.innerObject.type); > }).join(","); 68c68 < set valueAsDatetime(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set valueAsDatetime(val) { unwrapSetter(ICAL.Time, val, function(val) { 81c81 < }, this), --- > }, this); }, 83c83 < get propertyName() this.innerObject.name.toUpperCase(), --- > get propertyName() { return this.innerObject.name.toUpperCase(); }, 110,111c110 < function stringifyValue(x) ICAL.stringify.value(x.toString(), type); < function reparseValue(x) ICAL.parse._parseValue(stringifyValue(x), v); --- > let oldValues; 114d112 < let oldValue; 117c115 < oldValue = this.innerObject.getValues(); --- > oldValues = this.innerObject.getValues(); 119c117 < oldValue = [this.innerObject.getFirstValue()]; --- > oldValues = [this.innerObject.getFirstValue()]; 120a119 > 123c122,125 < oldValue = oldValue.map(reparseValue); --- > oldValues = oldValues.map(oldValue => { > let strvalue = ICAL.stringify.value(oldValue.toString(), type); > return ICAL.parse._parseValue(strvalue, v) > }); 127c129 < oldValue = null; --- > oldValues = null; 130c132 < if (oldValue) { --- > if (oldValues) { 132,134c134,136 < this.innerObject.setValues(oldValue); < } else if (oldValue) { < this.innerObject.setValue(oldValue.join(",")); --- > this.innerObject.setValues(oldValues); > } else { > this.innerObject.setValue(oldValues.join(",")); 207,208c209,210 < const calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; < const calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); --- > var calIcalComponentInterfaces = [Components.interfaces.calIIcalComponent]; > var calIcalComponentClassID = Components.ID("{51ac96fd-1279-4439-a85b-6947b37f4cea}"); 219c221 < clone: function() new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())), --- > clone: function() { return new calIcalComponent(new ICAL.Component(this.innerObject.toJSON())); }, 221c223 < get parent() wrapGetter(calIcalComponent, this.innerObject.parent), --- > get parent() { return wrapGetter(calIcalComponent, this.innerObject.parent); }, 223,225c225,227 < get icalTimezone() this.innerObject.name == "vtimezone" ? this.innerObject : null, < get icalComponent() this.innerObject, < set icalComponent(val) this.innerObject = val, --- > get icalTimezone() { return this.innerObject.name == "vtimezone" ? this.innerObject : null; }, > get icalComponent() { return this.innerObject; }, > set icalComponent(val) { this.innerObject = val; }, 256c258 < get componentType() this.innerObject.name.toUpperCase(), --- > get componentType() { return this.innerObject.name.toUpperCase(); }, 258,259c260,261 < get uid() this.innerObject.getFirstPropertyValue("uid"), < set uid(val) this.innerObject.updatePropertyWithValue("uid", val), --- > get uid() { return this.innerObject.getFirstPropertyValue("uid"); }, > set uid(val) { this.innerObject.updatePropertyWithValue("uid", val); }, 261,262c263,264 < get prodid() this.innerObject.getFirstPropertyValue("prodid"), < set prodid(val) this.innerObject.updatePropertyWithValue("prodid", val), --- > get prodid() { return this.innerObject.getFirstPropertyValue("prodid"); }, > set prodid(val) { this.innerObject.updatePropertyWithValue("prodid", val); }, 264,265c266,267 < get version() this.innerObject.getFirstPropertyValue("version"), < set version(val) this.innerObject.updatePropertyWithValue("version", val), --- > get version() { return this.innerObject.getFirstPropertyValue("version"); }, > set version(val) { this.innerObject.updatePropertyWithValue("version", val); }, 267,268c269,270 < get method() this.innerObject.getFirstPropertyValue("method"), < set method(val) this.innerObject.updatePropertyWithValue("method", val), --- > get method() { return this.innerObject.getFirstPropertyValue("method"); }, > set method(val) { this.innerObject.updatePropertyWithValue("method", val); }, 270,271c272,273 < get status() this.innerObject.getFirstPropertyValue("status"), < set status(val) this.innerObject.updatePropertyWithValue("status", val), --- > get status() { return this.innerObject.getFirstPropertyValue("status"); }, > set status(val) { this.innerObject.updatePropertyWithValue("status", val); }, 273,274c275,276 < get summary() this.innerObject.getFirstPropertyValue("summary"), < set summary(val) this.innerObject.updatePropertyWithValue("summary", val), --- > get summary() { return this.innerObject.getFirstPropertyValue("summary"); }, > set summary(val) { this.innerObject.updatePropertyWithValue("summary", val); }, 276,277c278,279 < get description() this.innerObject.getFirstPropertyValue("description"), < set description(val) this.innerObject.updatePropertyWithValue("description", val), --- > get description() { return this.innerObject.getFirstPropertyValue("description"); }, > set description(val) { this.innerObject.updatePropertyWithValue("description", val); }, 279,280c281,282 < get location() this.innerObject.getFirstPropertyValue("location"), < set location(val) this.innerObject.updatePropertyWithValue("location", val), --- > get location() { return this.innerObject.getFirstPropertyValue("location"); }, > set location(val) { this.innerObject.updatePropertyWithValue("location", val); }, 282,283c284,285 < get categories() this.innerObject.getFirstPropertyValue("categories"), < set categories(val) this.innerObject.updatePropertyWithValue("categories", val), --- > get categories() { return this.innerObject.getFirstPropertyValue("categories"); }, > set categories(val) { this.innerObject.updatePropertyWithValue("categories", val); }, 285,286c287,288 < get URL() this.innerObject.getFirstPropertyValue("url"), < set URL(val) this.innerObject.updatePropertyWithValue("url", val), --- > get URL() { return this.innerObject.getFirstPropertyValue("url"); }, > set URL(val) { this.innerObject.updatePropertyWithValue("url", val); }, 296c298 < set priority(val) this.innerObject.updatePropertyWithValue("priority", val), --- > set priority(val) { this.innerObject.updatePropertyWithValue("priority", val); }, 310,311c312,313 < get startTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")), < set startTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this), --- > get startTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstart")); }, > set startTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstart"), this); }, 313,314c315,316 < get endTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")), < set endTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this), --- > get endTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtend")); }, > set endTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtend"), this); }, 316c318 < get duration() wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getFirstPropertyValue("duration")); }, 318,319c320,321 < get dueTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")), < set dueTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this), --- > get dueTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("due")); }, > set dueTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "due"), this); }, 321,322c323,324 < get stampTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")), < set stampTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this), --- > get stampTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("dtstamp")); }, > set stampTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "dtstamp"), this); }, 324,325c326,327 < get createdTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")), < set createdTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this), --- > get createdTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("created")); }, > set createdTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "created"), this); }, 327,328c329,330 < get completedTime() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")), < set completedTime(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this), --- > get completedTime() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("completed")); }, > set completedTime(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "completed"), this); }, 330,331c332,333 < get lastModified() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")), < set lastModified(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this), --- > get lastModified() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("last-modified")); }, > set lastModified(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "last-modified"), this); }, 333,334c335,336 < get recurrenceId() wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")), < set recurrenceId(val) unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this), --- > get recurrenceId() { return wrapGetter(calDateTime, this.innerObject.getFirstPropertyValue("recurrence-id")); }, > set recurrenceId(val) { unwrapSetter(ICAL.Time, val, this._setTimeAttr.bind(this, "recurrence-id"), this); }, 336,337c338,339 < serializeToICS: function() this.innerObject.toString() + ICAL.newLineChar, < toString: function() this.innerObject.toString(), --- > serializeToICS: function() { return this.innerObject.toString() + ICAL.newLineChar; }, > toString: function() { return this.innerObject.toString(); }, 441,442c443,444 < const calICSServiceInterfaces = [Components.interfaces.calIICSService]; < const calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); --- > var calICSServiceInterfaces = [Components.interfaces.calIICSService]; > var calICSServiceClassID = Components.ID("{c61cb903-4408-41b3-bc22-da0b27efdfe1}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsImportExport.js 28,29c28,29 < const calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); < const calIcsImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calIcsImporterClassID = Components.ID("{1e3e33dc-445a-49de-b2b6-15b2a050bb9d}"); > var calIcsImporterInterfaces = [Components.interfaces.calIImporter]; 55,56c55,56 < const calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); < const calIcsExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calIcsExporterClassID = Components.ID("{a6a524ce-adff-4a0f-bb7d-d1aaad4adc60}"); > var calIcsExporterInterfaces = [Components.interfaces.calIExporter]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsParser.js 16,17c16,17 < const calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); < const calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; --- > var calIcsParserClassID = Components.ID("{6fe88047-75b6-4874-80e8-5f5800f14984}"); > var calIcsParserInterfaces = [Components.interfaces.calIIcsParser]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calIcsSerializer.js 14,15c14,15 < const calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); < const calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; --- > var calIcsSerializerClassID = Components.ID("{207a6682-8ff1-4203-9160-729ec28c8766}"); > var calIcsSerializerInterfaces = [Components.interfaces.calIIcsSerializer]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItemBase.js 624c624 < if (!this.mAttachments.some(function(x) x.hashId == attachment.hashId)) { --- > if (!this.mAttachments.some(x => x.hashId == attachment.hashId)) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calItipItem.js 17,18c17,18 < const calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); < const calItipItemInterfaces = [Components.interfaces.calIItipItem]; --- > var calItipItemClassID = Components.ID("{f41392ab-dcad-4bad-818f-b3d1631c4d93}"); > var calItipItemInterfaces = [Components.interfaces.calIItipItem]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calListFormatter.js 15,16c15,16 < const calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); < const calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calListFormatterClassID = Components.ID("{9ae04413-fee3-45b9-8bbb-1eb39a4cbd1b}"); > var calListFormatterInterfaces = [Components.interfaces.calIPrintFormatter]; 28c28 < get name() cal.calGetString("calendar", "formatListName"), --- > get name() { return cal.calGetString("calendar", "formatListName"); }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calMonthGridPrinter.js 19,20c19,20 < const calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); < const calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calMonthPrinterClassID = Components.ID("{f42d5132-92c4-487b-b5c8-38bf292d74c1}"); > var calMonthPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "monthPrinterName"), --- > get name() { return cal.calGetString("calendar", "monthPrinterName"); }, 62,63d61 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 68a67,68 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 89c89 < let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item); --- > let addSingleItem = cal.print.addItemToDaybox.bind(cal.print, document, item, boxDate); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calOutlookCSVImportExport.js 10c10 < const localeEn = { --- > var localeEn = { 44c44 < const localeNl = { --- > var localeNl = { 75c75 < const locales = [localeEn, localeNl]; --- > var locales = [localeEn, localeNl]; 78c78 < const exportLineEnding = "\r\n"; --- > var exportLineEnding = "\r\n"; 94,95c94,95 < const calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); < const calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; --- > var calOutlookCSVImporterClassID = Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"); > var calOutlookCSVImporterInterfaces = [Components.interfaces.calIImporter]; 423,424c423,424 < const calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); < const calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; --- > var calOutlookCSVExporterClassID = Components.ID("{48e6d3a6-b41b-4052-9ed2-40b27800bd4b}"); > var calOutlookCSVExporterInterfaces = [Components.interfaces.calIExporter]; 439,441c439,441 < function dateString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); < function timeString(aDateTime) cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); < function txtString(aString) aString || ""; --- > function dateString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.dateFormat); } > function timeString(aDateTime) { return cal.dateTimeToJsDate(aDateTime).toLocaleFormat(localeEn.timeFormat); } > function txtString(aString) { return aString || ""; } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calPeriod.js 13,14c13,14 < const calPeriodInterfaces = [Components.interfaces.calIPeriod]; < const calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); --- > var calPeriodInterfaces = [Components.interfaces.calIPeriod]; > var calPeriodClassID = Components.ID("{394a281f-7299-45f7-8b1f-cce21258972f}"); 28,29c28,29 < get icalPeriod() this.innerObject, < set icalPeriod(val) this.innerObject = val, --- > get icalPeriod() { return this.innerObject; }, > set icalPeriod(val) { this.innerObject = val; }, 31,32c31,32 < makeImmutable: function() this.isMutable = false, < clone: function() new calPeriod(this.innerObject.clone()), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calPeriod(this.innerObject.clone()); }, 34,35c34,35 < get start() wrapGetter(calDateTime, this.innerObject.start), < set start(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get start() { return wrapGetter(calDateTime, this.innerObject.start); }, > set start(val) { unwrapSetter(ICAL.Time, val, function(val) { 37c37 < }, this), --- > }, this); }, 39,40c39,40 < get end() wrapGetter(calDateTime, this.innerObject.getEnd()), < set end(val) unwrapSetter(ICAL.Time, val, function(val) { --- > get end() { return wrapGetter(calDateTime, this.innerObject.getEnd()); }, > set end(val) { unwrapSetter(ICAL.Time, val, function(val) { 45c45 < }, this), --- > }, this); }, 47c47 < get duration() wrapGetter(calDuration, this.innerObject.getDuration()), --- > get duration() { return wrapGetter(calDuration, this.innerObject.getDuration()); }, 49c49 < get icalString() this.innerObject.toICALString(), --- > get icalString() { return this.innerObject.toICALString(); }, 56c56 < toString: function() this.innerObject.toString() --- > toString: function() { return this.innerObject.toString(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calProtocolHandler.js 30,31c30,31 < get defaultPort() this.mHttpProtocol.defaultPort, < get protocolFlags() this.mHttpProtocol.protocolFlags, --- > get defaultPort() { return this.mHttpProtocol.defaultPort; }, > get protocolFlags() { return this.mHttpProtocol.protocolFlags; }, 36c36 < uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, --- > uri.init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD, 40c40 < --- > 49c49 < var uri = aUri.clone(); --- > let uri = aUri.clone(); 52c52,62 < var channel = Services.io.newChannelFromURI(uri, null); --- > let channel; > if (aLoadInfo) { > channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo); > } else { > channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > } 58c68 < allowPort: function cph_allowPort(aPort, aScheme) false --- > allowPort: function cph_allowPort(aPort, aScheme) { return false; } 61,62c71,72 < const calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); < const calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalClassID = Components.ID("{1153c73a-39be-46aa-9ba9-656d188865ca}"); > var calProtocolHandlerWebcalInterfaces = [Components.interfaces.nsIProtocolHandler]; 75,76c85,86 < const calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); < const calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var calProtocolHandlerWebcalsClassID = Components.ID("{bdf71224-365d-4493-856a-a7e74026f766}"); > var calProtocolHandlerWebcalsInterfaces = [Components.interfaces.nsIProtocolHandler]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceDate.js 12,13c12,13 < const calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); < const calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; --- > var calRecurrenceDateClassID = Components.ID("{806b6423-3aaa-4b26-afa3-de60563e9cec}"); > var calRecurrenceDateInterfaces = [Components.interfaces.calIRecurrenceDate]; 45c45 < get isNegative() this.mIsNegative, --- > get isNegative() { return this.mIsNegative; }, 51c51 < get isFinite() true, --- > get isFinite() { return true; }, 53c53 < get date() this.mDate, --- > get date() { return this.mDate; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceInfo.js 26,27c26,27 < const calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); < const calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; --- > var calRecurrenceInfoClassID = Components.ID("{04027036-5884-4a30-b4af-f2cad79f6edf}"); > var calRecurrenceInfoInterfaces = [Components.interfaces.calIRecurrenceInfo]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRecurrenceRule.js 14,15c14,15 < const calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; < const calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); --- > var calRecurrenceRuleInterfaces = [Components.interfaces.calIRecurrenceRule]; > var calRecurrenceRuleClassID = Components.ID("{df19281a-5389-4146-b941-798cb93a7f0d}"); 29,30c29,30 < makeImmutable: function() this.isMutable = false, < clone: function() new calRecurrenceRule(new ICAL.Recur(this.innerObject)), --- > makeImmutable: function() { this.isMutable = false; }, > clone: function() { return new calRecurrenceRule(new ICAL.Recur(this.innerObject)); }, 33c33 < get isFinite() this.innerObject.isFinite(), --- > get isFinite() { return this.innerObject.isFinite(); }, 98,99c98,99 < get icalString() "RRULE:" + this.innerObject.toString() + ICAL.newLineChar, < set icalString(val) this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")), --- > get icalString() { return "RRULE:" + this.innerObject.toString() + ICAL.newLineChar; }, > set icalString(val) { this.innerObject = ICAL.Recur.fromString(val.replace(/^RRULE:/i, "")); }, 106c106 < set icalProperty(val) unwrapSetter(ICAL.Property, val, function(val) { --- > set icalProperty(val) { unwrapSetter(ICAL.Property, val, function(val) { 108c108 < }, this), --- > }, this); }, 110,111c110,111 < get type() this.innerObject.freq, < set type(val) this.innerObject.freq = val, --- > get type() { return this.innerObject.freq; }, > set type(val) { this.innerObject.freq = val; }, 113,114c113,114 < get interval() this.innerObject.interval, < set interval(val) this.innerObject.interval = val, --- > get interval() { return this.innerObject.interval; }, > set interval(val) { this.innerObject.interval = val; }, 122c122 < set count(val) this.innerObject.count = (val && val > 0 ? val : null), --- > set count(val) { this.innerObject.count = (val && val > 0 ? val : null); }, 131c131 < set untilDate(val) unwrapSetter(ICAL.Time, val, function(val) { --- > set untilDate(val) { unwrapSetter(ICAL.Time, val, function(val) { 138c138 < }, this), --- > }, this); }, 140c140 < get isByCount() this.innerObject.isByCount(), --- > get isByCount() { return this.innerObject.isByCount(); }, 142,143c142,143 < get weekStart() this.innerObject.wkst - 1, < set weekStart(val) this.innerObject.wkst = val + 1, --- > get weekStart() { return this.innerObject.wkst - 1; }, > set weekStart(val) { this.innerObject.wkst = val + 1; }, diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calRelation.js 19,20c19,20 < const calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); < const calRelationInterfaces = [Components.interfaces.calIRelation]; --- > var calRelationClassID = Components.ID("{76810fae-abad-4019-917a-08e95d5bbd68}"); > var calRelationInterfaces = [Components.interfaces.calIRelation]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calStartupService.js 33,34c33,34 < const calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; < const calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); --- > var calStartupServiceInterfaces = [Components.interfaces.nsIObserver]; > var calStartupServiceClassID = Components.ID("{2547331f-34c0-4a4b-b93c-b503538ba6d6}"); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTimezone.js 14,15c14,15 < const calTimezoneInterfaces = [Components.interfaces.calITimezone]; < const calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); --- > var calTimezoneInterfaces = [Components.interfaces.calITimezone]; > var calTimezoneClassID = Components.ID("{6702eb17-a968-4b43-b562-0d0c5f8e9eb5}"); 28c28 < get provider() cal.getTimezoneService(), --- > get provider() { return cal.getTimezoneService(); }, 38,42c38,42 < get tzid() this.innerObject.tzid, < get isFloating() this.innerObject == ICAL.Timezone.localTimezone, < get isUTC() this.innerObject == ICAL.Timezone.utcTimezone, < get latitude() this.innerObject.latitude, < get longitude() this.innerObject.longitude, --- > get tzid() { return this.innerObject.tzid; }, > get isFloating() { return this.innerObject == ICAL.Timezone.localTimezone; }, > get isUTC() { return this.innerObject == ICAL.Timezone.utcTimezone; }, > get latitude() { return this.innerObject.latitude; }, > get longitude() { return this.innerObject.longitude; }, 58c58 < toString: function() this.innerObject.toString() --- > tostring: function() { return this.innerObject.toString(); } 84c84 < get isUTC() this.mUTC, --- > get isUTC() { return this.mUTC; }, 108c108 < get provider() cal.getTimezoneService() --- > get provider() { return cal.getTimezoneService(); } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTodo.js 23,24c23,24 < const calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); < const calTodoInterfaces = [ --- > var calTodoClassID = Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"); > var calTodoInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calTransactionManager.js 17,18c17,18 < const calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); < const calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; --- > var calTransactionManagerClassID = Components.ID("{40a1ccf4-5f54-4815-b842-abf06f84dbfd}"); > var calTransactionManagerInterfaces = [Components.interfaces.calITransactionManager]; 54,71c54,57 < if (transaction) { < transaction = transaction.wrappedJSObject; < if (transaction) { < function checkItem(item) { < if (item) { < var calendar = item.calendar; < if (calendar && (!isCalendarWritable(calendar) || !userCanAddItemsToCalendar(calendar))) { < return false; < } < } < return true; < } < < if (!checkItem(transaction.mItem) || < !checkItem(transaction.mOldItem)) { < return false; < } < } --- > function checkItem(item) { > return item && item.calendar && > isCalendarWritable(item.calendar) && > userCanAddItemsToCalendar(item.calendar); 73c59,61 < return true; --- > > let trans = transaction && transaction.wrappedJSObject; > return trans && checkItem(trans.mItem) && checkItem(trans.mOldItem); 104,105c92,93 < const calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); < const calTransactionInterfaces = [ --- > var calTransactionClassID = Components.ID("{fcb54c82-2fb9-42cb-bf44-1e197a55e520}"); > var calTransactionInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calUtils.js 25c25 < let createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", --- > var createEvent = _calIcalCreator("@mozilla.org/calendar/event;1", 27c27 < let createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", --- > var createTodo = _calIcalCreator("@mozilla.org/calendar/todo;1", 29c29 < let createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", --- > var createDateTime = _calIcalCreator("@mozilla.org/calendar/datetime;1", 31c31 < let createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", --- > var createDuration = _calIcalCreator("@mozilla.org/calendar/duration;1", 33c33 < let createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", --- > var createAttendee = _calIcalCreator("@mozilla.org/calendar/attendee;1", 35c35 < let createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", --- > var createAttachment = _calIcalCreator("@mozilla.org/calendar/attachment;1", 37c37 < let createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", --- > var createAlarm = _calIcalCreator("@mozilla.org/calendar/alarm;1", 39c39 < let createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", --- > var createRelation = _calIcalCreator("@mozilla.org/calendar/relation;1", 41c41 < let createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", --- > var createRecurrenceDate = _calIcalCreator("@mozilla.org/calendar/recurrence-date;1", 43c43 < let createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", --- > var createRecurrenceRule = _calIcalCreator("@mozilla.org/calendar/recurrence-rule;1", 131c131 < recentTimezones.indexOf(aTzid) < 0) { --- > !recentTimezones.includes(aTzid)) { 604c604 < let sum = Array.map(str || " ", function(e) e.charCodeAt(0)).reduce(function(a,b) a + b); --- > let sum = Array.map(str || " ", e => e.charCodeAt(0)).reduce((a, b) => a + b); 1170c1170 < [Symbol.iterator]: function() this.mInterfaces[Symbol.iterator](), --- > [Symbol.iterator]: function() { return this.mInterfaces[Symbol.iterator](); }, 1189,1193c1189,1192 < var iid = this.mIid; < function eq(obj) { < return compareObjects(obj, iface, iid); < } < if (!this.mInterfaces.some(eq)) { --- > let existing = this.mInterfaces.some(obj => { > return compareObjects(obj, iface, this.mIid); > }); > if (!existing) { 1195d1193 < return true; 1196a1195 > return !existing; 1203,1207c1202,1204 < var iid = this.mIid; < function neq(obj) { < return !compareObjects(obj, iface, iid); < } < this.mInterfaces = this.mInterfaces.filter(neq); --- > this.mInterfaces = this.mInterfaces.filter((obj) => { > return !compareObjects(obj, iface, this.mIid); > }); 1290,1293c1287 < function filterFunc(op_) { < return (op.id != op_.id); < } < this.mSubOperations = this.mSubOperations.filter(filterFunc); --- > this.mSubOperations = this.mSubOperations.filter(op_ => op.id != op_.id); 1341c1335 < function forEachFunc(op) { --- > for (let op of subOperations) { 1344d1337 < subOperations.forEach(forEachFunc); 1816c1809 < binaryInsertNode.defaultAccessor = function(n) n.item; --- > binaryInsertNode.defaultAccessor = n => n.item; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendar.js 13,14c13,14 < const calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); < const calWcapCalendarInterfaces = [ --- > var calWcapCalendarClassID = Components.ID("{cf4d93e5-af79-451a-95f3-109055b32ef0}"); > var calWcapCalendarInterfaces = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapCalendarItems.js 4a5 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 146c147 < let alarms = item.getAlarms({}).filter(function(x) x.action == "EMAIL"); --- > let alarms = item.getAlarms({}).filter(x => x.action == "EMAIL"); 160c161 < --- > 274,278c275,279 < const METHOD_PUBLISH = 1; < const METHOD_REQUEST = 2; < const METHOD_REPLY = 4; < const METHOD_CANCEL = 8; < const METHOD_UPDATE = 256; --- > var METHOD_PUBLISH = 1; > var METHOD_REQUEST = 2; > var METHOD_REPLY = 4; > var METHOD_CANCEL = 8; > var METHOD_UPDATE = 256; 281a283,327 > function getOrgId(item) { > return (item && item.organizer && item.organizer.id ? item.organizer.id : null); > } > function encodeAttendees(atts) { > function attendeeSort(one, two) { > one = one.id; > two = two.id; > if (one == two) { > return 0; > } > return (one < two ? -1 : 1); > } > atts = atts.concat([]); > atts.sort(attendeeSort); > return atts.map(this_.encodeAttendee, this_).join(";"); > } > function encodeCategories(cats) { > cats = cats.concat([]); > cats.sort(); > return cats.join(";"); > } > function getPrivacy(item) { > return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); > } > function getAttachments(item) { > var ret; > var attachments = item.attachments; > if (attachments) { > var strings = []; > for each (var att in attachements) { > let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); > if (typeof(att) == "string") { > strings.push(encodeURIComponent(att)); > } else if (wrappedAtt && wrappedAtt.uri) { > strings.push(encodeURIComponent(wrappedAtt.uri.spec)); > } else { // xxx todo > logError("only URLs supported as attachment, not: " + att, this_); > } > } > strings.sort(); > ret = strings.join(";"); > } > return ret || ""; > } > 361,364c407 < < function getOrgId(item) { < return (item && item.organizer && item.organizer.id ? item.organizer.id : null); < } --- > 372c415 < --- > 376,388d418 < function encodeAttendees(atts) { < function attendeeSort(one, two) { < one = one.id; < two = two.id; < if (one == two) { < return 0; < } < return (one < two ? -1 : 1); < } < atts = atts.concat([]); < atts.sort(attendeeSort); < return atts.map(this_.encodeAttendee, this_).join(";"); < } 422,426d451 < function encodeCategories(cats) { < cats = cats.concat([]); < cats.sort(); < return cats.join(";"); < } 450,452d474 < function getPrivacy(item) { < return ((item.privacy && item.privacy != "") ? item.privacy : "PUBLIC"); < } 499,518d520 < function getAttachments(item) { < var ret = ""; < var attachments = item.attachments; < if (attachments) { < var strings = []; < for each (var att in attachements) { < let wrappedAtt = cal.wrapInstance(att, Components.interfaces.calIAttachment); < if (typeof(att) == "string") { < strings.push(encodeURIComponent(att)); < } else if (wrappedAtt && wrappedAtt.uri) { < strings.push(encodeURIComponent(wrappedAtt.uri.spec)); < } else { // xxx todo < logError("only URLs supported as attachment, not: " + att, this_); < } < } < strings.sort(); < ret += strings.join(";"); < } < return ret; < } 524c526 < --- > 569c571 < params += "&replace=1"; // (update) don't append to any lists --- > params += "&replace=1"; // (update) don't append to any lists 573c575 < function netRespFunc(err, icalRootComp) { --- > let netRespFunc = (err, icalRootComp) => { 577,578c579,580 < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, < 0, null, null, true /* bLeaveMutable */); --- > var items = this.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, > 0, null, null, true /* bLeaveMutable */); 580,581c582,583 < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); --- > this.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); 584c586 < this_.tunnelXProps(newItem, item); --- > this.tunnelXProps(newItem, item); 587c589 < delete this_.m_cachedResults; --- > delete this.m_cachedResults; 590c592 < } --- > }; 612c614 < if (name.indexOf("X-MOZ-") == 0) { --- > if (name.startsWith("X-MOZ-")) { 947c949 < if (item.id in fakedParents) { --- > if (item.id in fakedParents) { 1066,1081d1067 < function notifyResult(icalRootComp) { < var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); < if (items.length < 1) { < throw new Components.Exception("no such item!"); < } < if (items.length > 1) { < this_.notifyError(NS_ERROR_UNEXPECTED, < "unexpected number of items: " + items.length); < } < if (listener) { < listener.onGetResult(this_.superCalendar, NS_OK, < calIItemBase, log("getItem(): success. id=" + id, this_), < items.length, items); < } < request.execRespFunc(null, items[0]); < }; 1085a1072,1087 > function notifyResult(icalRootComp) { > var items = this_.parseItems(icalRootComp, calICalendar.ITEM_FILTER_ALL_ITEMS, 0, null, null); > if (items.length < 1) { > throw new Components.Exception("no such item!"); > } > if (items.length > 1) { > this_.notifyError(NS_ERROR_UNEXPECTED, > "unexpected number of items: " + items.length); > } > if (listener) { > listener.onGetResult(this_.superCalendar, NS_OK, > calIItemBase, log("getItem(): success. id=" + id, this_), > items.length, items); > } > request.execRespFunc(null, items[0]); > }; 1151c1153 < --- > 1166c1168 < --- > 1344a1347 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapErrors.js 5c5 < const NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; --- > var NS_ERROR_INVALID_ARG = Components.results.NS_ERROR_INVALID_ARG; 10,11c10,11 < const NS_ERROR_MODULE_BASE_OFFSET = 0x45; < const NS_ERROR_MODULE_NETWORK = 6; --- > var NS_ERROR_MODULE_BASE_OFFSET = 0x45; > var NS_ERROR_MODULE_NETWORK = 6; 52c52 < const NS_ERROR_OFFLINE = generateNetFailure(16); --- > var NS_ERROR_OFFLINE = generateNetFailure(16); 55c55 < const NS_BINDING_SUCCEEDED = NS_OK; --- > var NS_BINDING_SUCCEEDED = NS_OK; 57,60c57,60 < const NS_BINDING_FAILED = generateNetFailure(1); < const NS_BINDING_ABORTED = generateNetFailure(2); < const NS_BINDING_REDIRECTED = generateNetFailure(3); < const NS_BINDING_RETARGETED = generateNetFailure(4); --- > var NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_ABORTED = generateNetFailure(2); > var NS_BINDING_REDIRECTED = generateNetFailure(3); > var NS_BINDING_RETARGETED = generateNetFailure(4); 62c62 < const g_nsNetErrorCodes = [ --- > var g_nsNetErrorCodes = [ 124c124 < const g_wcapErrorCodes = [ --- > var g_wcapErrorCodes = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapRequest.js 195,196c195,196 < const calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); < const calWcapNetworkRequestInterfaces = [ --- > var calWcapNetworkRequestClassID = Components.ID("{e3c62b37-83cf-41ec-9872-0af9f952430a}"); > var calWcapNetworkRequestInterfaces = [ 410c410,415 < var channel = Services.io.newChannelFromURI(uri); --- > var channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWcapSession.js 105,106c105,106 < const calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); < const calWcapSessionInterfaces = [ --- > var calWcapSessionClassID = Components.ID("{cbf803fd-4469-4999-ae39-367af1c7b077}"); > var calWcapSessionInterfaces = [ 1060a1061,1066 > function assureDefault(pref, val) { > if (aCalendar.getProperty(pref) === null) { > aCalendar.setProperty(pref, val); > } > } > 1065,1069d1070 < function assureDefault(pref, val) { < if (aCalendar.getProperty(pref) === null) { < aCalendar.setProperty(pref, val); < } < } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekInfoService.js 12,13c12,13 < const calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); < const calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; --- > var calWeekInfoServiceClassID = Components.ID("{6877bbdd-f336-46f5-98ce-fe86d0285cc1}"); > var calWeekInfoServiceInterfaces = [Components.interfaces.calIWeekInfoService]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/calendar-js/calWeekPrinter.js 19,20c19,20 < const calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); < const calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; --- > var calWeekPrinterClassID = Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"); > var calWeekPrinterInterfaces = [Components.interfaces.calIPrintFormatter]; 32c32 < get name() cal.calGetString("calendar", "weekPrinterName"), --- > get name() { return cal.calGetString("calendar", "weekPrinterName"); }, 55,56d54 < itemStartDate = itemStartDate.getInTimezone(defaultTimezone); < itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 61a60,61 > itemStartDate = itemStartDate.getInTimezone(defaultTimezone); > itemEndDate = itemEndDate.getInTimezone(defaultTimezone); 82c82 < cal.print.addItemToDaybox(document, item, dayTable[boxDateKey]); --- > cal.print.addItemToDaybox(document, item, boxDate, dayTable[boxDateKey]); Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.jar differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/chrome.manifest 7,8d6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-aero/ os=WINNT osversion>=6 < skin calendar-windows classic/1.0 jar:chrome.jar!/skin/windows/calendar/win-classic/ os=WINNT osversion<6 42c40 < override chrome://lightning/skin/accountCentral.css chrome://lightning/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} --- > override chrome://lightning/skin/accountCentral.css chrome://lightning-common/skin/suite-accountCentral.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 47d44 < style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 49d45 < style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT 51,52c47 < style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6 < style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT --- > style chrome://global/content/customizeToolbar.xul chrome://calendar-common/skin/dialogs/calendar-event-dialog.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 54a50 > style chrome://global/content/customizeToolbar.xul chrome://lightning-common/skin/lightning.css application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calBackendLoader.js 17,18c17,18 < const calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); < const calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; --- > var calBackendLoaderClassID = Components.ID("{0314c271-7168-40fa-802e-83c8c46a557e}"); > var calBackendLoaderInterfaces = [Components.interfaces.nsIObserver]; 41,44c41,42 < let backend = "libical"; < if (Services.prefs.prefHasUserValue("calendar.icaljs")) { < backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; < } --- > let backend = Services.prefs.getBoolPref("calendar.icaljs") ? "icaljs" : "libical"; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calCompositeCalendar.js 15c15 < const calIOperationListener = Components.interfaces.calIOperationListener; --- > var calIOperationListener = Components.interfaces.calIOperationListener; 84,85c84,85 < const calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); < const calCompositeCalendarInterfaces = [ --- > var calCompositeCalendarClassID = Components.ID("{aeff788d-63b0-4996-91fb-40a7654c6224}"); > var calCompositeCalendarInterfaces = [ 101,105d100 < // private members < // < mDefaultCalendar: null, < < // 108,109c103,104 < get prefChromeOverlay() null, < get displayName() cal.calGetString("calendar", "compositeName"), --- > get prefChromeOverlay() { return null; }, > get displayName() { return cal.calGetString("calendar", "compositeName"); }, 393c388 < return; --- > return null; 459,462c454,456 < let this_ = this; < function cancelFunc() { // operation group has been cancelled < let listener = this_.mRealListener; < this_.mRealListener = null; --- > this.mOpGroup = new cal.calOperationGroup(() => { > let listener = this.mRealListener; > this.mRealListener = null; 465c459 < this_, Components.interfaces.calIErrors.OPERATION_CANCELLED, --- > this, Components.interfaces.calIErrors.OPERATION_CANCELLED, 467,468c461,462 < if (this_.mCompositeCalendar.statusDisplayed) { < this_.mCompositeCalendar.mStatusObserver.stopMeteors(); --- > if (this.mCompositeCalendar.statusDisplayed) { > this.mCompositeCalendar.mStatusObserver.stopMeteors(); 471,472c465 < } < this.mOpGroup = new cal.calOperationGroup(cancelFunc); --- > }); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDavCalendar.js 25c25 < const xmlHeader = '\n'; --- > var xmlHeader = '\n'; 27,31c27,31 < const davNS = "DAV:" < const caldavNS = "urn:ietf:params:xml:ns:caldav"; < const calservNS = "http://calendarserver.org/ns/"; < const MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; < const MIME_TEXT_XML = "text/xml; charset=utf-8"; --- > var davNS = "DAV:" > var caldavNS = "urn:ietf:params:xml:ns:caldav"; > var calservNS = "http://calendarserver.org/ns/"; > var MIME_TEXT_CALENDAR = "text/calendar; charset=utf-8"; > var MIME_TEXT_XML = "text/xml; charset=utf-8"; 33,34c33,34 < const cICL = Components.interfaces.calIChangeLog; < const cIOL = Components.interfaces.calIOperationListener; --- > var cICL = Components.interfaces.calIChangeLog; > var cIOL = Components.interfaces.calIOperationListener; 82,85c82,85 < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalDavCalendar = Components.interfaces.calICalDavCalendar; --- > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalDavCalendar = Components.interfaces.calICalDavCalendar; 88,90c88,90 < const kDavResourceTypeNone = 0; < const kDavResourceTypeCollection = 1; < const kDavResourceTypeCalendar = 2; --- > var kDavResourceTypeNone = 0; > var kDavResourceTypeCollection = 1; > var kDavResourceTypeCalendar = 2; 93,94c93,94 < const CALDAV_MODIFY_ITEM = "modify"; < const CALDAV_DELETE_ITEM = "delete"; --- > var CALDAV_MODIFY_ITEM = "modify"; > var CALDAV_DELETE_ITEM = "delete"; 96,97c96,97 < const calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); < const calDavCalendarInterfaces = [ --- > var calDavCalendarClassID = Components.ID("{a35fc6ea-3d92-11d9-89f9-00045ace3b8d}"); > var calDavCalendarInterfaces = [ 262a263 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 341c342 < if (wwwauth.startsWith("Bearer") && wwwauth.contains("error=")) { --- > if (wwwauth.startsWith("Bearer") && wwwauth.includes("error=")) { 567c568 < return (this.supportedItemTypes.indexOf("VTODO") > -1); --- > return (this.supportedItemTypes.includes("VTODO")); 569c570 < return (this.supportedItemTypes.indexOf("VEVENT") > -1); --- > return (this.supportedItemTypes.includes("VEVENT")); 632,633c633,635 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Can't set ID on non-mutable item to addItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Can't set ID on non-mutable item to addItem"); > return; 637,638c639,641 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "Server does not support item type"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "Server does not support item type"); > return; 750,751c753,755 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID for modifyItem doesn't exist or is null"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID for modifyItem doesn't exist or is null"); > return; 874,875c878,880 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "ID doesn't exist for deleteItem"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "ID doesn't exist for deleteItem"); > return; 888,890c893,896 < return notifyListener(Components.results.NS_ERROR_FAILURE, < "eventUri and calendarUri paths are the same, " + < "will not go on to delete entire calendar"); --- > notifyListener(Components.results.NS_ERROR_FAILURE, > "eventUri and calendarUri paths are the same, " + > "will not go on to delete entire calendar"); > return; 941c947 < return --- > return; 1329a1336 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1398c1405,1406 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1404c1412,1413 < return notifyListener(Components.results.NS_ERROR_FAILURE); --- > notifyListener(Components.results.NS_ERROR_FAILURE); > return; 1425c1434,1435 < return notifyListener(Components.results.NS_OK); --- > notifyListener(Components.results.NS_OK); > return; 1642c1652 < function postpone() { --- > setTimeout(function postpone() { 1649,1651c1659 < } < < setTimeout(postpone, 0); --- > }, 0); 1838c1846 < if (thisCalendar.mGenerallySupportedItemTypes.indexOf(compName) >= 0) --- > if (thisCalendar.mGenerallySupportedItemTypes.includes(compName)) 1963c1971 < if (dav && dav.indexOf("calendar-auto-schedule") != -1) { --- > if (dav && dav.includes("calendar-auto-schedule")) { 1970c1978 < } else if (dav && dav.indexOf("calendar-schedule") != -1) { --- > } else if (dav && dav.includes("calendar-schedule")) { 1978c1986 < if (thisCalendar.hasAutoScheduling || (dav && dav.indexOf("calendar-schedule") != -1)) { --- > if (thisCalendar.hasAutoScheduling || (dav && dav.includes("calendar-schedule"))) { 2073c2081 < nsList = pcs.map(function(x) thisCalendar.ensureDecodedPath(x)); --- > nsList = pcs.map(x => thisCalendar.ensureDecodedPath(x)); 2198a2207,2215 > function createBoxUrl(path) { > let url = thisCalendar.mUri.clone(); > url.path = thisCalendar.ensureDecodedPath(path); > // Make sure the uri has a / at the end, as we do with the calendarUri. > if (url.path.charAt(url.path.length - 1) != '/') { > url.path += "/"; > } > return url; > } 2211,2219d2227 < function createBoxUrl(path) { < let url = thisCalendar.mUri.clone(); < url.path = thisCalendar.ensureDecodedPath(path); < // Make sure the uri has a / at the end, as we do with the calendarUri. < if (url.path.charAt(url.path.length - 1) != '/') { < url.path += "/"; < } < return url; < } 2606c2614 < aString.indexOf(this.mInboxUrl.spec) == 0); --- > aString.startsWith(this.mInboxUrl.spec)); 2633a2642 > getItemListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2665a2675 > modListener.QueryInterface = XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 2788c2798 < return false; --- > return; 2943,2945c2953,2955 < "\x64\x65"](("dpotu!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0#!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs#!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ --- > "\x64\x65"](("wbs!!!PBVUI`CBTF`VSJ!>!#iuuqt;00bddpvout/hpphmf/dpn0p0# "!!PBVUI`TDPQF!>!#iuuqt;00xxx/hpphmfbqjt/dpn0bvui0dbmfoebs# "JFOU`JE!>!#831674:95649/bqqt/hpphmfvtfsdpoufou/dpn#!#z"+ 2988c2998 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calDefaultACLManager.js 15,16c15,16 < const calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); < const calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; --- > var calDefaultACLManagerClassID = Components.ID("{7463258c-6ef3-40a2-89a9-bb349596e927}"); > var calDefaultACLManagerInterfaces = [Components.interfaces.calICalendarACLManager]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICALJSComponents.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calICSCalendar.js 22,25c22,25 < const CI = Components.interfaces; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calICalendar = Components.interfaces.calICalendar; < const calIErrors = Components.interfaces.calIErrors; --- > var CI = Components.interfaces; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calICalendar = Components.interfaces.calICalendar; > var calIErrors = Components.interfaces.calIErrors; 51,52c51,52 < const calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); < const calICSCalendarInterfaces = [ --- > var calICSCalendarClassID = Components.ID("{f8438bff-a3c9-4ed5-b23f-2663b5469abf}"); > var calICSCalendarInterfaces = [ 119c119,124 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 176c181,186 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 312a323 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 320c331,336 < var channel = Services.io.newChannelFromURI(savedthis.mUri); --- > var channel = Services.io.newChannelFromURI2(savedthis.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 454c470 < if (this.readOnly) --- > if (this.readOnly) 461c477 < if (this.readOnly) --- > if (this.readOnly) 469c485 < if (this.readOnly) --- > if (this.readOnly) 498a515 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 652,654c669 < function f(v) { < return (v.name.indexOf("calBackupData_"+pseudoID+"_"+type) != -1) < }); --- > v => v.name.includes("calBackupData_"+pseudoID+"_"+type)); 770c785,790 < var channel = Services.io.newChannelFromURI(this.mUri); --- > var channel = Services.io.newChannelFromURI2(this.mUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); 894a915,917 > var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); > httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); > 896d918 < var httpchannel = aChannel.QueryInterface(Components.interfaces.nsIHttpChannel); 899d920 < httpchannel.setRequestHeader("Accept", "text/calendar,text/plain;q=0.8,*/*;q=0.5", false); 900a922,924 > } else if (!aForceRefresh && this.mLastModified) { > // Only send 'If-Modified-Since' if no ETag is available > httpchannel.setRequestHeader("If-Modified-Since", this.mLastModified, false); 948a973,979 > > try { > this.mLastModified = httpchannel.getResponseHeader("Last-Modified"); > } catch(e) { > this.mLastModified = null; > } > 1079c1110 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calImportExportModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItemModule.js 7c7 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipEmailTransport.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 25,26c26,27 < const calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); < const calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; --- > var calItipEmailTransportClassID = Components.ID("{d4d7b59e-c9e0-4a7a-b5e8-5958f85515f0}"); > var calItipEmailTransportInterfaces = [Components.interfaces.calIItipTransport]; 42,43c43,44 < get scheme() "mailto", < get type() "email", --- > get scheme() { return "mailto"; }, > get type() { return "email"; }, 218,225c219,226 < cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); < let toList = ""; < for each (let recipient in aToList) { < // Strip leading "mailto:" if it exists. < let rId = recipient.id.replace(/^mailto:/i, ""); < // Prevent trailing commas. < if (toList.length > 0) { < toList += ", "; --- > // don't show log message in case of falling through > if (aItem.autoResponse == Components.interfaces.calIItipItem.AUTO) { > cal.LOG("sendXpcomMail: Found AUTO autoResponse type."); > } > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Invalid recipient for email transport: " + aVal.toString()); 227,228c228,233 < // Add this recipient id to the list. < toList += rId; --- > return email; > } > let toMap = aToList.map(cbEmail).filter(function (aVal, aInd, aArr) {return (aVal.length)}); > if (toMap.length < aToList.length) { > // at least one invalid recipient, so we skip sending for this message > return false; 229a235 > let toList = toMap.join(', '); 296c302 < _createTempImipFile: function cietCTIF(compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { --- > _createTempImipFile: function (compatMode, aToList, aSubject, aBody, aItem, aIdentity, aMessageId) { 298,310d303 < function encodeUTF8(text) { < return convertFromUnicode("UTF-8", text).replace(/(\r\n)|\n/g, "\r\n"); < } < function encodeMimeHeader(aHeader, aIsEmail = false) { < let fieldNameLen = (aHeader.indexOf(": ") + 2); < return MailServices.mimeConverter < .encodeMimePartIIStr_UTF8(aHeader, < aIsEmail, < "UTF-8", < fieldNameLen, < Components.interfaces.nsIMimeConverter.MIME_ENCODED_WORD_SIZE); < } < 319,322c312 < let utf8CalText = encodeUTF8(calText); < < let fullFrom = !aIdentity.fullName.length ? null : < cal.validateRecipientList(aIdentity.fullName + "<" + aIdentity.email + ">"); --- > let utf8CalText = ltn.invitation.encodeUTF8(calText); 327,349c317 < let mailText = ("MIME-version: 1.0\r\n" + < (aIdentity.replyTo < ? "Return-path: " + encodeMimeHeader(aIdentity.replyTo, true) + "\r\n" : "") + < "From: " + encodeMimeHeader(fullFrom || aIdentity.email, true) + "\r\n" + < (aIdentity.organization < ? "Organization: " + encodeMimeHeader(aIdentity.organization) + "\r\n" : "") + < "Message-ID: " + aMessageId + "\r\n" + < "To: " + encodeMimeHeader(aToList, true) + "\r\n" + < "Date: " + (new Date()).toUTCString() + "\r\n" + < "Subject: " + encodeMimeHeader(aSubject.replace(/(\n|\r\n)/, "|")) + "\r\n"); < let validRecipients; < if (aIdentity.doCc) { < validRecipients = cal.validateRecipientList(aIdentity.doCcList); < if (validRecipients != "") { < mailText += ("Cc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } < if (aIdentity.doBcc) { < validRecipients = cal.validateRecipientList(aIdentity.doBccList); < if (validRecipients != "") { < mailText += ("Bcc: " + encodeMimeHeader(validRecipients, true) + "\r\n"); < } < } --- > let mailText = ltn.invitation.getHeaderSection(aMessageId, aIdentity, aToList, aSubject); 370c338 < encodeUTF8(aBody) + --- > ltn.invitation.encodeUTF8(aBody) + diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calItipProtocolHandler.js 8c8 < const CI = Components.interfaces; --- > var CI = Components.interfaces; 10,11c10,11 < const ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; < const ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; --- > var ITIP_HANDLER_MIMETYPE = "application/x-itip-internal"; > var ITIP_HANDLER_PROTOCOL = "moz-cal-handle-itip"; 21,22c21,22 < const ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); < const ItipChannelInterfaces = [ --- > var ItipChannelClassID = Components.ID("{643e0328-36f6-411d-a107-16238dff9cd7}"); > var ItipChannelInterfaces = [ 62,63c62,63 < const ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); < const ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; --- > var ItipProtocolHandlerClassID = Components.ID("{6e957006-b4ce-11d9-b053-001124736B74}"); > var ItipProtocolHandlerInterfaces = [Components.interfaces.nsIProtocolHandler]; 75c75 < allowPort: function () false, --- > allowPort: () => false, 99,100c99,100 < const ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); < const ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; --- > var ItipContentHandlerClassID = Components.ID("{47c31f2b-b4de-11d9-bfe6-001124736B74}"); > var ItipContentHandlerInterfaces = [Components.interfaces.nsIContentHandler]; 114c114 < if (uri.indexOf(ITIP_HANDLER_PROTOCOL + ":") != 0) { --- > if (!uri.startsWith(ITIP_HANDLER_PROTOCOL + ":")) { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calMemoryCalendar.js 16,18c16,18 < const calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; < const calICalendarManager = Components.interfaces.calICalendarManager; < const cICL = Components.interfaces.calIChangeLog; --- > var calCalendarManagerContractID = "@mozilla.org/calendar/manager;1"; > var calICalendarManager = Components.interfaces.calICalendarManager; > var cICL = Components.interfaces.calIChangeLog; 24,25c24,25 < const calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); < const calMemoryCalendarInterfaces = [ --- > var calMemoryCalendarClassID = Components.ID("{bda0dd7f-0a2f-4fcf-ba08-5517e6fbf133}"); > var calMemoryCalendarInterfaces = [ 470a471 > return cal.forEach.CONTINUE; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calSleepMonitor.js 9,10c9,10 < const calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); < const calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; --- > var calSleepMonitorClassID = Components.ID("9b987a8d-c2ef-4cb9-9602-1261b4b2f6fa"); > var calSleepMonitorInterfaces = [Components.interfaces.nsIObserver]; 71c71 < let NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); --- > var NSGetFactory = XPCOMUtils.generateNSGetFactory([calSleepMonitor]); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calStorageCalendar.js 14,16c14,16 < const USECS_PER_SECOND = 1000000; < const kCalICalendar = Components.interfaces.calICalendar; < const cICL = Components.interfaces.calIChangeLog; --- > var USECS_PER_SECOND = 1000000; > var kCalICalendar = Components.interfaces.calICalendar; > var cICL = Components.interfaces.calIChangeLog; 28,29c28,29 < const calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); < const calStorageCalendarInterfaces = [ --- > var calStorageCalendarClassID = Components.ID("{b3eaa1c4-5dfe-4c0a-b62a-b3a514218461}"); > var calStorageCalendarInterfaces = [ 281c281 < function migrateTables(db, newCalId, oldCalId) { --- > let migrateTables = function(db, newCalId, oldCalId) { 304c304 < } --- > }; 1015a1016 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1037a1039 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), 1564c1566 < sp = this.mSelectTodosWithRecurrence.params; --- > let sp = this.mSelectTodosWithRecurrence.params; 2445c2447 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calTimezoneService.js 41,42c41,42 < const calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); < const calTimezoneServiceInterfaces = [ --- > var calTimezoneServiceClassID = Components.ID("{e736f2bd-7640-4715-ab35-887dc866c587}"); > var calTimezoneServiceInterfaces = [ 64c64 < has: function(id) this.getTimezone(id) != null, --- > has: function(id) { return this.getTimezone(id) != null; }, 77c77,85 < NetUtil.asyncFetch(aURL, (inputStream, status) => { --- > let uri = Services.io.newURI(aURL, null, null); > let channel = Services.io.newChannelFromURI2(uri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); > > NetUtil.asyncFetch(channel, (inputStream, status) => { 179c187 < if (tzid.indexOf("/mozilla.org/") == 0) { --- > if (tzid.startsWith("/mozilla.org/")) { 220a229,234 > get aliasIds() { > return new calStringEnumerator([ > k for ([k, v] of this.mZones.entries()) if (v.aliasTo && k != "UTC" && k != "floating") > ]); > }, > 291a306,310 > var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; > var ocean = "Arctic|Atlantic|Indian|Pacific"; > var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ > "(?:[/][-A-Z_a-z]+)+)"); > 483a503,565 > function environmentVariableValue(varName) { > let envSvc = Components.classes["@mozilla.org/process/environment;1"] > .getService(Components.interfaces.nsIEnvironment); > let value = envSvc.get(varName); > if (!value) return ""; > if (!value.match(tzRegex)) return ""; > return varName+"="+value; > } > > function symbolicLinkTarget(filepath) { > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > if (!file.isSymlink()) return ""; > if (!file.target.match(tzRegex)) return ""; > return filepath +" -> "+file.target; > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function fileFirstZoneLineString(filepath) { > // return first line of file that matches tzRegex (ZoneInfo id), > // or "" if no file or no matching line. > try { > let file = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > file.initWithPath(filepath); > file.QueryInterface(Components.interfaces.nsIFile); > if (!file.exists()) return ""; > let fileInstream = Components.classes["@mozilla.org/network/file-input-stream;1"] > .createInstance(Components.interfaces.nsIFileInputStream); > const PR_RDONLY = 0x1; > fileInstream.init(file, PR_RDONLY, 0, 0); > fileInstream.QueryInterface(Components.interfaces.nsILineInputStream); > try { > let line = {}, hasMore = true, MAXLINES = 10; > for (let i = 0; hasMore && i < MAXLINES; i++) { > hasMore = fileInstream.readLine(line); > if (line.value && line.value.match(tzRegex)) { > return filepath+": "+line.value; > } > } > return ""; // not found > } finally { > fileInstream.close(); > } > } catch (ex) { > Components.utils.reportError(filepath+": "+ex); > return ""; > } > } > > function weekday(icsDate, tz) { > let calDate = cal.createDateTime(icsDate); > calDate.timezone = tz; > return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); > } > 562,623d643 < var continent = "Africa|America|Antarctica|Asia|Australia|Europe"; < var ocean = "Arctic|Atlantic|Indian|Pacific"; < var tzRegex = new RegExp(".*((?:"+continent+"|"+ocean+")"+ < "(?:[/][-A-Z_a-z]+)+)"); < const CC = Components.classes; < const CI = Components.interfaces; < var envSvc = (CC["@mozilla.org/process/environment;1"] < .getService(Components.interfaces.nsIEnvironment)); < function environmentVariableValue(varName) { < var value = envSvc.get(varName); < if (!value) return ""; < if (!value.match(tzRegex)) return ""; < return varName+"="+value; < } < function symbolicLinkTarget(filepath) { < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < if (!file.isSymlink()) return ""; < if (!file.target.match(tzRegex)) return ""; < return filepath +" -> "+file.target; < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < } < function fileFirstZoneLineString(filepath) { < // return first line of file that matches tzRegex (ZoneInfo id), < // or "" if no file or no matching line. < try { < var file = (CC["@mozilla.org/file/local;1"] < .createInstance(CI.nsILocalFile)); < file.initWithPath(filepath); < file.QueryInterface(CI.nsIFile); < if (!file.exists()) return ""; < var fileInstream = < (CC["@mozilla.org/network/file-input-stream;1"]. < createInstance(CI.nsIFileInputStream)); < const PR_RDONLY = 0x1; < fileInstream.init(file, PR_RDONLY, 0, 0); < fileInstream.QueryInterface(CI.nsILineInputStream); < try { < var line = {}, hasMore = true, MAXLINES = 10; < for (var i = 0; hasMore && i < MAXLINES; i++) { < hasMore = fileInstream.readLine(line); < if (line.value && line.value.match(tzRegex)) { < return filepath+": "+line.value; < } < } < return ""; // not found < } finally { < fileInstream.close(); < } < } catch (ex) { < Components.utils.reportError(filepath+": "+ex); < return ""; < } < < } 629c649 < var results = osUserTimeZone.match(tzRegex); --- > let results = osUserTimeZone.match(tzRegex); 752,757d771 < function weekday(icsDate) { < var calDate = cal.createDateTime(); < calDate.icalString = icsDate; < calDate.timezone = tz; < return cal.dateTimeToJsDate(calDate).toLocaleFormat("%a"); < } 759c773 < var standardStartWeekday = weekday(standardStart); --- > var standardStartWeekday = weekday(standardStart, tz); 765c779 < var daylightStartWeekday = weekday(daylightStart); --- > var daylightStartWeekday = weekday(daylightStart, tz); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/calWcapCalendarModule.js 13,26c13,26 < const NS_OK = Components.results.NS_OK; < const NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; < const nsIException = Components.interfaces.nsIException; < const nsISupports = Components.interfaces.nsISupports; < const calIWcapSession = Components.interfaces.calIWcapSession; < const calIWcapCalendar = Components.interfaces.calIWcapCalendar; < const calIWcapErrors = Components.interfaces.calIWcapErrors; < const calICalendar = Components.interfaces.calICalendar; < const calIItemBase = Components.interfaces.calIItemBase; < const calIOperationListener = Components.interfaces.calIOperationListener; < const calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; < const calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; < const calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; < const calIErrors = Components.interfaces.calIErrors; --- > var NS_OK = Components.results.NS_OK; > var NS_ERROR_UNEXPECTED = Components.results.NS_ERROR_UNEXPECTED; > var nsIException = Components.interfaces.nsIException; > var nsISupports = Components.interfaces.nsISupports; > var calIWcapSession = Components.interfaces.calIWcapSession; > var calIWcapCalendar = Components.interfaces.calIWcapCalendar; > var calIWcapErrors = Components.interfaces.calIWcapErrors; > var calICalendar = Components.interfaces.calICalendar; > var calIItemBase = Components.interfaces.calIItemBase; > var calIOperationListener = Components.interfaces.calIOperationListener; > var calIFreeBusyProvider = Components.interfaces.calIFreeBusyProvider; > var calIFreeBusyInterval = Components.interfaces.calIFreeBusyInterval; > var calICalendarSearchProvider = Components.interfaces.calICalendarSearchProvider; > var calIErrors = Components.interfaces.calIErrors; 62c62 < const scriptLoadOrder = [ --- > var scriptLoadOrder = [ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/interfaces.xpt differ Binary files source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib and target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.dylib differ diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/lightningTextCalendarConverter.js 9a10 > Components.utils.import("resource://calendar/modules/ltnInvitationUtils.jsm"); 15,16c16,17 < const ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); < const ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; --- > var ltnMimeConverterClassID = Components.ID("{c70acb08-464e-4e55-899d-b2c84c5409fa}"); > var ltnMimeConverterInterfaces = [Components.interfaces.nsISimpleMimeConverter]; 28,273d28 < /** < * Append the text to node, converting contained URIs to links. < * < * @param text The text to convert. < * @param node The node to append the text to. < */ < linkifyText: function linkifyText(text, node) { < let doc = node.ownerDocument; < let localText = text; < < // XXX This should be improved to also understand abbreviated urls, could be < // extended to only linkify urls that have an internal protocol handler, or < // have an external protocol handler that has an app assigned. The same < // could be done for mailto links which are not handled here either. < < // XXX Ideally use mozITXTToHTMLConv here, but last time I tried it didn't work. < < while (localText.length) { < let pos = localText.search(/(^|\s+)([a-zA-Z0-9]+):\/\/[^\s]+/); < if (pos == -1) { < node.appendChild(doc.createTextNode(localText)); < break; < } < pos += localText.substr(pos).match(/^\s*/)[0].length; < let endPos = pos + localText.substr(pos).search(/([.!,<>(){}]+)?(\s+|$)/); < let url = localText.substr(pos, endPos - pos); < < if (pos > 0) { < node.appendChild(doc.createTextNode(localText.substr(0, pos))); < } < let a = doc.createElement("a"); < a.setAttribute("href", url); < a.textContent = url; < < node.appendChild(a); < < localText = localText.substr(endPos); < } < }, < < /** < * Returns a header title for an ITIP item depending on the response method < * @param aItipItem the event < * @return string the header title < */ < getItipHeader: function getItipHeader(aItipItem) { < let header; < < if (aItipItem) { < let item = aItipItem.getItemList({})[0]; < let summary = item.getProperty("SUMMARY") || ""; < let organizer = item.organizer; < let organizerString = (organizer) ? < (organizer.commonName || organizer.toString()) : ""; < < switch (aItipItem.responseMethod) { < case "REQUEST": < header = cal.calGetString("lightning", < "itipRequestBody", < [organizerString, summary], < "lightning"); < break; < case "CANCEL": < header = cal.calGetString("lightning", < "itipCancelBody", < [organizerString, summary], < "lightning"); < break; < case "REPLY": { < // This is a reply received from someone else, there should < // be just one attendee, the attendee that replied. If < // there is more than one attendee, just take the first so < // code doesn't break here. < let attendees = item.getAttendees({}); < if (attendees && attendees.length >= 1) { < let sender = attendees[0]; < let statusString = (sender.participationStatus == "DECLINED" ? < "itipReplyBodyDecline" : < "itipReplyBodyAccept"); < < header = cal.calGetString("lightning", < statusString, < [sender.toString()], < "lightning"); < } else { < header = ""; < } < break; < } < } < } < < if (!header) { < header = cal.calGetString("lightning", "imipHtml.header", null, "lightning"); < } < < return header; < }, < < /** < * Returns the html representation of the event as a DOM document. < * < * @param event The calIItemBase to parse into html. < * @param aNewItipItem The parsed itip item. < * @return The DOM document with values filled in. < */ < createHtml: function createHtml(event, aNewItipItem) { < // Creates HTML using the Node strings in the properties file < let doc = cal.xml.parseFile("chrome://lightning/content/lightning-invitation.xhtml"); < let formatter = cal.getDateFormatter(); < < let self = this; < function field(field, contentText, linkify) { < let descr = doc.getElementById("imipHtml-" + field + "-descr"); < if (descr) { < let labelText = cal.calGetString("lightning", "imipHtml." + field, null, "lightning"); < descr.textContent = labelText; < } < < if (contentText) { < let content = doc.getElementById("imipHtml-" + field + "-content"); < doc.getElementById("imipHtml-" + field + "-row").hidden = false; < if (linkify) { < self.linkifyText(contentText, content); < } else { < content.textContent = contentText; < } < } < } < < // Simple fields < let headerDescr = doc.getElementById("imipHtml-header-descr"); < if (headerDescr) { < headerDescr.textContent = this.getItipHeader(aNewItipItem); < } < < field("summary", event.title); < field("location", event.getProperty("LOCATION")); < < let dateString = formatter.formatItemInterval(event); < < if (event.recurrenceInfo) { < let kDefaultTimezone = cal.calendarDefaultTimezone(); < let startDate = event.startDate; < let endDate = event.endDate; < startDate = startDate ? startDate.getInTimezone(kDefaultTimezone) : null; < endDate = endDate ? endDate.getInTimezone(kDefaultTimezone) : null; < let repeatString = recurrenceRule2String(event.recurrenceInfo, startDate, < endDate, startDate.isDate); < if (repeatString) { < dateString = repeatString; < } < < let formattedExDates = []; < let modifiedOccurrences = []; < function dateComptor(a,b) a.startDate.compare(b.startDate); < < // Show removed instances < for each (let exc in event.recurrenceInfo.getRecurrenceItems({})) { < if (exc instanceof Components.interfaces.calIRecurrenceDate) { < if (exc.isNegative) { < // This is an EXDATE < formattedExDates.push(formatter.formatDateTime(exc.date)); < } else { < // This is an RDATE, close enough to a modified occurrence < let excItem = event.recurrenceInfo.getOccurrenceFor(exc.date); < cal.binaryInsert(modifiedOccurrences, excItem, dateComptor, true) < } < } < } < if (formattedExDates.length > 0) { < field("canceledOccurrences", formattedExDates.join("\n")); < } < < // Show modified occurrences < for each (let recurrenceId in event.recurrenceInfo.getExceptionIds({})) { < let exc = event.recurrenceInfo.getExceptionFor(recurrenceId); < let excLocation = exc.getProperty("LOCATION"); < < // Only show modified occurrence if start, duration or location < // has changed. < if (exc.startDate.compare(exc.recurrenceId) != 0 || < exc.duration.compare(event.duration) != 0 || < excLocation != event.getProperty("LOCATION")) { < cal.binaryInsert(modifiedOccurrences, exc, dateComptor, true) < } < } < < function stringifyOcc(occ) { < let formattedExc = formatter.formatItemInterval(occ); < let occLocation = occ.getProperty("LOCATION"); < if (occLocation != event.getProperty("LOCATION")) { < let location = cal.calGetString("lightning", "imipHtml.newLocation", [occLocation], "lightning"); < formattedExc += " (" + location + ")"; < } < return formattedExc; < } < < if (modifiedOccurrences.length > 0) { < field("modifiedOccurrences", modifiedOccurrences.map(stringifyOcc).join("\n")); < } < } < < field("when", dateString); < field("comment", event.getProperty("COMMENT"), true); < < // DESCRIPTION field < let eventDescription = (event.getProperty("DESCRIPTION") || "") < /* Remove the useless "Outlookism" squiggle. */ < .replace("*~*~*~*~*~*~*~*~*~*", ""); < field("description", eventDescription, true); < < // ATTENDEE and ORGANIZER fields < let attendees = event.getAttendees({}); < let attendeeTemplate = doc.getElementById("attendee-template"); < let attendeeTable = doc.getElementById("attendee-table"); < let organizerTable = doc.getElementById("organizer-table"); < doc.getElementById("imipHtml-attendees-row").hidden = (attendees.length < 1); < doc.getElementById("imipHtml-organizer-row").hidden = !event.organizer; < < function setupAttendee(attendee) { < let row = attendeeTemplate.cloneNode(true); < row.removeAttribute("id"); < row.removeAttribute("hidden"); < row.getElementsByClassName("status-icon")[0].setAttribute("status", attendee.participationStatus); < row.getElementsByClassName("attendee-name")[0].textContent = attendee.toString(); < return row; < } < < // Fill rows for attendees and organizer < field("attendees"); < for each (let attendee in attendees) { < attendeeTable.appendChild(setupAttendee(attendee)); < } < < field("organizer"); < if (event.organizer) { < organizerTable.appendChild(setupAttendee(event.organizer)); < } < < return doc; < }, < < < /* nsISimpleMimeConverter */ < 281c36 < for each (let item in parser.getItems({})) { --- > for (let item of parser.getItems({})) { 299a55 > let msgOverlay = ''; 315c71 < .createInstance(Components.interfaces.calIItipItem); --- > .createInstance(Components.interfaces.calIItipItem); 316a73,74 > let dom = ltn.invitation.createInvitationOverlay(event, itipItem); > msgOverlay = cal.xml.serializeDOM(dom); 319a78 > sinkProps.setPropertyAsAUTF8String("msgOverlay", msgOverlay); 330c89 < return cal.xml.serializeDOM(this.createHtml(event, itipItem)); --- > return msgOverlay; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning-l10n.js 1c1 < //@line 4 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pt-PT/calendar/lightning-l10n.js" --- > //@line 4 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pt-PT/calendar/lightning-l10n.js" 3c3 < //@line 6 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pt-PT/calendar/lightning-l10n.js" --- > //@line 6 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pt-PT/calendar/lightning-l10n.js" 5c5 < //@line 9 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pt-PT/calendar/lightning-l10n.js" --- > //@line 9 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pt-PT/calendar/lightning-l10n.js" 8c8 < //@line 12 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pt-PT/calendar/lightning-l10n.js" --- > //@line 12 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pt-PT/calendar/lightning-l10n.js" 19c19 < //@line 23 "/builds/slave/tb-rel-c-esr38-m64_rpk_7-00000/l10n/pt-PT/calendar/lightning-l10n.js" --- > //@line 23 "/builds/slave/tb-rel-c-esr45-m64_rpk_7-00000/l10n/pt-PT/calendar/lightning-l10n.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/defaults/preferences/lightning.js 74a75,80 > //whether changes in email invitation updates should be displayed > pref("calendar.itip.displayInvitationChanges", true); > > //whether for delegated invitations a delegatee's replies will be send also to delegator(s) > pref("calendar.itip.notifyDelegatorOnReply", true); > 83a90,92 > // Show week number in minimonth and multiweek/month views > pref("calendar.view-minimonth.showWeekNumber", true); > 132c141 < pref("calendar.useragent.extra", "Lightning/4.0.8"); --- > pref("calendar.useragent.extra", "Lightning/4.7.1"); 141a151 > //@line 154 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" 142a153 > //@line 156 "/builds/slave/tb-rel-c-esr45-m64_bld-0000000/build/calendar/lightning/content/lightning.js" diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/install.rdf 17,18c17,18 < 38.8.0 < 38.* --- > 45.1.0 > 45.* 26,27c26,27 < 2.35 < 2.35.* --- > 2.42 > 2.42.* 33c33 < 4.0.8 --- > 4.7.1 diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAlarmUtils.jsm 8c8 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 25c25 < if (["weeks", "days", "hours", "minutes", "seconds"].indexOf(units) < 0) { --- > if (!["weeks", "days", "hours", "minutes", "seconds"].includes(units)) { 45c45 < alarm.action = (actionValues.indexOf("DISPLAY") < 0 ? actionValues[0] : "DISPLAY"); --- > alarm.action = (actionValues.includes("DISPLAY") ? "DISPLAY" : actionValues[0]); 100a101 > let offset = aAlarm.offset; 107a109 > 109c111 < return returnDate.subtractDate(aAlarm.alarmDate); --- > offset = aAlarm.alarmDate.subtractDate(returnDate); 111,114d112 < < return offset; < } else { < return aAlarm.offset; 115a114 > return offset; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAsyncUtils.jsm 7a8 > Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); 13,15c14,16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this < const cIOL = Components.interfaces.calIOperationListener; < const cIC = Components.interfaces.calICalendar; --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this > var cIOL = Components.interfaces.calIOperationListener; > var cIC = Components.interfaces.calICalendar; 17c18 < const promisifyProxyHandler = { --- > var promisifyProxyHandler = { 94a96 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calAuthUtils.jsm 13c13 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 338c338 < let gAuthCache = { --- > var gAuthCache = { diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calExtract.jsm 5c5 < const EXPORTED_SYMBOLS = ["Extractor"]; --- > this.EXPORTED_SYMBOLS = ["Extractor"]; 87c87 < let path = this.bundleUrl.replace("LOCALE", locale, "g"); --- > let path = this.bundleUrl.replace(/LOCALE/g, locale); 128c128 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 216c216 < path = this.bundleUrl.replace("LOCALE", "ko", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ko"); 220c220 < path = this.bundleUrl.replace("LOCALE", "zh-TW", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "zh-TW"); 223c223 < path = this.bundleUrl.replace("LOCALE", "ja", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ja"); 227c227 < path = this.bundleUrl.replace("LOCALE", "ru", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "ru"); 231c231 < path = this.bundleUrl.replace("LOCALE", mostLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, mostLocale); 235c235 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 240c240 < path = this.bundleUrl.replace("LOCALE", this.fallbackLocale, "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, this.fallbackLocale); 243c243 < path = this.bundleUrl.replace("LOCALE", "en-US", "g"); --- > path = this.bundleUrl.replace(/LOCALE/g, "en-US"); 299,300c299,300 < this.hourlyNumbers = this.hourlyNumbers.replace("|", this.marker, "g"); < this.dailyNumbers = this.dailyNumbers.replace("|", this.marker, "g"); --- > this.hourlyNumbers = this.hourlyNumbers.replace(/\|/g, this.marker); > this.dailyNumbers = this.dailyNumbers.replace(/\|/g, this.marker); 305c305 < this.allMonths = this.months.join(this.marker).replace("|", this.marker, "g"); --- > this.allMonths = this.months.join(this.marker).replace(/\|/g, this.marker); 394c394 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 406c406 < if (this.months[i].split("|").indexOf(month.toLowerCase()) != -1) { --- > if (this.months[i].split("|").includes(month.toLowerCase())) { 439c439 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 450,451c450,451 < let ms = this.months[i].unescape().split("|"); < if (ms.indexOf(month.toLowerCase()) != -1) { --- > let ms = this.unescape(this.months[i]).split("|"); > if (ms.includes(month.toLowerCase())) { 520c520 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 580c580 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 610c610 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 683c683 < let exp = alts[alt].pattern.replace(this.marker, "|", "g"); --- > let exp = alts[alt].pattern.split(this.marker).join("|"); 730,731c730,731 < if (!selection.contains(this.collected[j].str) && < !title.contains(this.collected[j].str) && --- > if (!selection.includes(this.collected[j].str) && > !title.includes(this.collected[j].str) && 786c786 < let startTimes = this.collected.filter(function(val) val.relation == "start"); --- > let startTimes = this.collected.filter(val => val.relation == "start"); 796c796 < let wDayInit = startTimes.filter(function(val) val.day != null && val.start === undefined); --- > let wDayInit = startTimes.filter(val => val.day != null && val.start === undefined); 808,809c808,809 < let wDay = startTimes.filter(function(val) val.day != null && val.start !== undefined); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); --- > let wDay = startTimes.filter(val => val.day != null && val.start !== undefined); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); 811,813c811,813 < let wMinute = startTimes.filter(function(val) val.minute != null && val.start !== undefined); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); < let wMinuteInit = startTimes.filter(function(val) val.minute != null && val.start === undefined); --- > let wMinute = startTimes.filter(val => val.minute != null && val.start !== undefined); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); > let wMinuteInit = startTimes.filter(val => val.minute != null && val.start === undefined); 863,864c863,864 < let endTimes = this.collected.filter(function(val) val.relation == "end"); < let durations = this.collected.filter(function(val) val.relation == "duration"); --- > let endTimes = this.collected.filter(val => val.relation == "end"); > let durations = this.collected.filter(val => val.relation == "duration"); 872,875c872,875 < let wDay = endTimes.filter(function(val) val.day != null); < let wDayNA = wDay.filter(function(val) val.ambiguous === undefined); < let wMinute = endTimes.filter(function(val) val.minute != null); < let wMinuteNA = wMinute.filter(function(val) val.ambiguous === undefined); --- > let wDay = endTimes.filter(val => val.day != null); > let wDayNA = wDay.filter(val => val.ambiguous === undefined); > let wMinute = endTimes.filter(val => val.minute != null); > let wMinuteNA = wMinute.filter(val => val.ambiguous === undefined); 1068c1068 < pattern = pattern.replace("%" + cnt + "$S", replaceables[cnt - 1], "g"); --- > pattern = pattern.split("#" + cnt).join(replaceables[cnt - 1]); 1091c1091 < let re = /\%(\d)\$S/g; --- > let re = /#(\d)/g; 1094c1094 < while (match = re.exec(s)) { --- > while ((match = re.exec(s))) { 1103c1103 < ", missing parameter %" + i + "$S"); --- > ", missing parameter #" + i); 1113c1113 < return value.sanitize().replace(/\s+/g, "\\s*"); --- > return this.sanitize(value).replace(/\s+/g, "\\s*"); 1255c1255 < if (ns.indexOf(number.toLowerCase()) != -1) { --- > if (ns.includes(number.toLowerCase())) { 1275,1276c1275 < } < }; --- > }, 1278,1281c1277,1279 < String.prototype.sanitize = function() { < return this.replace(/[-[\]{}()*+?.,\\^#]/g, "\\$&") < .replace(/([^\d])([$])/g, "$1\\$2"); < } --- > sanitize: function(str) { > return str.replace(/[-[\]{}()*+?.,\\^$]/g, "\\$&"); > }, 1283,1286c1281,1284 < String.prototype.unescape = function() { < let res = this.replace(/\\([\.])/g, "$1"); < return res; < } --- > unescape: function(str) { > return str.replace(/\\([\.])/g, "$1"); > } > }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calHashedArray.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > var EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItemUtils.jsm 5d4 < var EXPORTED_SYMBOLS = ["itemDiff"]; 7a7,8 > this.EXPORTED_SYMBOLS = ["itemDiff"]; > diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calIteratorUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 123,127c123,129 < function calVCALENDARIterator(aWantKeys) { < cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); < for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { < for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { < yield itemComp; --- > return { > __iterator__: function calVCALENDARIterator(aWantKeys) { > cal.ASSERT(aWantKeys, "Please use for() on the calendar component iterator"); > for (let calComp in cal.ical.subcomponentIterator(aComponent, "VCALENDAR")) { > for (let itemComp in cal.ical.subcomponentIterator(calComp, compType)) { > yield itemComp; > } 131d132 < return { __iterator__: calVCALENDARIterator }; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calItipUtils.jsm 15c15 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 148c148 < function isWritableCalendar(aCalendar) { --- > let isWritableCalendar = function (aCalendar) { 152c152 < } --- > }; 177a178 > let text = ""; 181,183c182,184 < case cIOL.ADD: return _gs("imipAddedItemToCal"); < case cIOL.MODIFY: return _gs("imipUpdatedItem"); < case cIOL.DELETE: return _gs("imipCanceledItem"); --- > case cIOL.ADD: text = _gs("imipAddedItemToCal"); break; > case cIOL.MODIFY: text = _gs("imipUpdatedItem"); break; > case cIOL.DELETE: text = _gs("imipCanceledItem"); break; 186c187 < return _gs("imipBarProcessingFailed", [aStatus.toString(16)]); --- > text = _gs("imipBarProcessingFailed", [aStatus.toString(16)]); 187a189 > return text; 619c621,648 < sendMessage(aItem, "REPLY", [aItem.organizer], autoResponse); --- > // if the event was delegated to the replying attendee, we may also notify also > // the delegator due to chapter 3.2.2.3. of RfC 5546 > let replyTo = new Array; > let delegatorIds = invitedAttendee.getProperty("DELEGATED-FROM"); > if (delegatorIds && > Preferences.get("calendar.itip.notifyDelegatorOnReply", false)) { > let getDelegator = function (aDelegatorId) { > let delegator = aOriginalItem.getAttendeeById(aDelegatorId); > if (delegator) { > replyTo.push(delegator); > } > }; > // Our backends currently do not support multi-value params. libical just > // swallows any value but the first, while ical.js fails to parse the item > // at all. Single values are handled properly by both backends though. > // Once bug 1206502 lands, ical.js will handle multi-value params, but > // we end up in different return types of getProperty. A native exposure of > // DELEGATED-FROM and DELEGATED-TO in calIAttendee may change this. > if (Array.isArray(delegatorIds)) { > for (let delegatorId of delegatorIds) { > getDelegator(delegatorId); > } > } else if (typeof delegatorIds == "string") { > getDelegator(delegatorIds); > } > } > replyTo.push(aItem.organizer); > sendMessage(aItem, "REPLY", replyTo, autoResponse); 622d650 < 760c788 < function hashMajorProps(aItem) { --- > let hashMajorProps = function (aItem) { 783c811 < } --- > }; 811c839 < (aItems || []).forEach(function(item) serializedItems += cal.getSerializedItem(item)); --- > (aItems || []).forEach(item => serializedItems += cal.getSerializedItem(item)); 991c1019 < function _sendItem(aSendToList, aSendItem) { --- > let _sendItem = function (aSendToList, aSendItem) { 1006c1034 < } --- > }; 1043a1072 > QueryInterface: XPCOMUtils.generateQI([Components.interfaces.calIOperationListener]), diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calPrintUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 86c86 < addItemToDaybox: function addItemToDaybox(document, item, dayContainer) { --- > addItemToDaybox: function addItemToDaybox(document, item, boxDate, dayContainer) { 93c93 < let itemInterval = cal.print.getItemIntervalString(item); --- > let itemInterval = cal.print.getItemIntervalString(item, boxDate); 152c152 < cal.binaryInsertNode(taskContainer, taskNode, item, function(a, b) collator.compareString(0, a, b), function(node) node.item.title); --- > cal.binaryInsertNode(taskContainer, taskNode, item, (a, b) => collator.compareString(0, a, b), node => node.item.title); 161c161 < getItemIntervalString: function getItemIntervalString(aItem) { --- > getItemIntervalString: function getItemIntervalString(aItem, aBoxDate) { 163c163 < let startDate = aItem[cal.calGetStartDateProp(aItem)] --- > let startDate = aItem[cal.calGetStartDateProp(aItem)]; 169,170c169,195 < // Bug 359007: will result in wrong time label for events that span two or more days < return cal.getDateFormatter().formatItemTimeInterval(aItem); --- > // check for tasks without start and/or due date > if (!startDate || !endDate) { > return cal.getDateFormatter().formatItemTimeInterval(aItem); > } > > let dateFormatter = cal.getDateFormatter(); > let defaultTimezone = cal.calendarDefaultTimezone(); > let start = startDate.getInTimezone(defaultTimezone).clone(); > let end = endDate.getInTimezone(defaultTimezone).clone(); > start.isDate = true; > end.isDate = true; > if (start.compare(end) == 0) { > // Events that start and end in the same day. > return dateFormatter.formatTimeInterval(startDate, endDate); > } else { > // Events that span two or more days. > let compareStart = aBoxDate.compare(start); > let compareEnd = aBoxDate.compare(end); > if (compareStart == 0) > return "\u21e4 " + dateFormatter.formatTime(startDate); // unicode '⇤' > else if (compareStart > 0 && compareEnd < 0) > return "\u21ff"; // unicode '↔' > else if (compareEnd == 0) > return "\u21e5 " + dateFormatter.formatTime(endDate); // unicode '⇥' > else > return ""; > } diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calProviderUtils.jsm 16c16 < EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this --- > this.EXPORTED_SYMBOLS = ["cal"]; // even though it's defined in calUtils.jsm, import needs this 33c33,38 < let channel = aExisting || Services.io.newChannelFromURI(aUri); --- > let channel = aExisting || Services.io.newChannelFromURI2(aUri, > null, > Services.scriptSecurityManager.getSystemPrincipal(), > null, > Components.interfaces.nsILoadInfo.SEC_NORMAL, > Components.interfaces.nsIContentPolicy.TYPE_OTHER); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calRecurrenceUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; --- > this.EXPORTED_SYMBOLS = ["recurrenceRule2String", "splitRecurrenceRules", "checkRecurrenceRule"]; 20c20,44 < function getRString(name, args) cal.calGetString("calendar-event-dialog", name, args); --- > function getRString(name, args) { > return cal.calGetString("calendar-event-dialog", name, args); > } > function day_of_week(day) { > return Math.abs(day) % 8; > } > function day_position(day) { > return (Math.abs(day) - day_of_week(day)) / 8 * (day < 0 ? -1 : 1); > } > function nounClass(aDayString, aRuleString) { > // Select noun class (grammatical gender) for rule string > let nounClass = getRString(aDayString + "Nounclass"); > return aRuleString + nounClass.substr(0, 1).toUpperCase() + > nounClass.substr(1); > } > function pluralWeekday(aDayString) { > let plural = getRString("pluralForWeekdays") == "true"; > return (plural ? aDayString + "Plural" : aDayString); > } > function everyWeekDay(aByDay) { > // Checks if aByDay contains only values from 1 to 7 with any order. > let mask = aByDay.reduce((v, c) => v | (1 << c), 1); > return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; > } > 40,62d63 < function day_of_week(day) { < return Math.abs(day) % 8; < } < function day_position(day) { < let dow = day_of_week(day); < return (Math.abs(day) - dow) / 8 * (day < 0 ? -1 : 1); < } < function nounClass(aDayString, aRuleString) { < // Select noun class (grammatical gender) for rule string < let nounClass = getRString(aDayString + "Nounclass"); < return aRuleString + nounClass.substr(0, 1).toUpperCase() + < nounClass.substr(1); < } < function pluralWeekday(aDayString) { < let plural = getRString("pluralForWeekdays") == "true"; < return (plural ? aDayString + "Plural" : aDayString); < } < function everyWeekDay(aByDay) { < // Checks if aByDay contains only values from 1 to 7 with any order. < let mask = aByDay.reduce(function(v, c) v | (1 << c), 1); < return aByDay.length == 7 && mask == Math.pow(2, 8) - 1; < } < diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calStorageUpgrade.jsm 257c257 < let func = function(db /* , ... */) { --- > return function(db, ...args) { 259,260d258 < let args = Array.slice(arguments); < args.shift(); 262c260 < return db[funcName].apply(db, args); --- > return db[funcName](...args); 270,272d267 < < func.name = "dbDelegate_" + funcName; < return func; 284c279 < let func = function(db) { --- > return function(db) { 287,289d281 < < func.name = "dbDelegate_get_" + getterAttr; < return func; 743a736,740 > function updateSql(tbl, field) { > executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + > " WHERE " + field + " IS NOT NULL"); > } > 791,795d787 < function updateSql(tbl, field) { < executeSimpleSQL(db, "UPDATE " + tbl + " SET " + field + "_tz='UTC'" + < " WHERE " + field + " IS NOT NULL"); < } < 1537a1530 > function parseInt10(x) { return parseInt(x, 10); } 1588d1580 < function parseInt10(x) parseInt(x, 10); diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calUtils.jsm 18,19c18,19 < EXPORTED_SYMBOLS = ["cal"]; < let cal = { --- > this.EXPORTED_SYMBOLS = ["cal"]; > var cal = { 257,264c257,298 < // Resolve the list considering also configured display names < let result = compFields.splitRecipients(aRecipients, false, {}); < // Malformed e-mail addresses with display name in list will result in "Display name <>". < // So, we need an additional check on the e-mail address itself and sort out malformed < // entries from the previous list (both objects have always the same length) < if (result.length > 0) { < let resultAddress = compFields.splitRecipients(aRecipients, true, {}); < result = result.filter((v, idx) => !!resultAddress[idx]); --- > // Resolve the list considering also configured common names > let members = compFields.splitRecipients(aRecipients, false, {}); > let list = []; > let prefix = ""; > for (let member of members) { > if (prefix != "") { > // the previous member had no email address - this happens if a recipients CN > // contains a ',' or ';' (splitRecipients(..) behaves wrongly here and produces an > // additional member with only the first CN part of that recipient and no email > // address while the next has the second part of the CN and the according email > // address) - we still need to identify the original delimiter to append it to the > // prefix > let memberCnPart = member.match(/(.*) <.*>/); > if (memberCnPart) { > let pattern = new RegExp(prefix + "([;,] *)" + memberCnPart[1]); > let delimiter = aRecipients.match(pattern); > if (delimiter) { > prefix = prefix + delimiter[1]; > } > } > } > let parts = (prefix + member).match(/(.*)( <.*>)/); > if (parts) { > if (parts[2] == " <>") { > // CN but no email address - we keep the CN part to prefix the next member's CN > prefix = parts[1]; > } else { > // CN with email address > let cn = parts[1].trim(); > // in case of any special characters in the CN string, we make sure to enclose > // it with dquotes - simple spaces don't require dquotes > if (cn.match(/[\-\[\]{}()*+?.,;\\\^$|#\f\n\r\t\v]/)) { > cn = '"' + cn.replace(/\\"|"/, "").trim() + '"'; > } > list.push(cn + parts[2]); > prefix = ""; > } > } else if (member.length) { > // email address only > list.push(member); > prefix = ""; > } 266c300 < return result.join(","); --- > return list.join(", "); 273c307 < * @param aItem either calIAttendee or calIItemBase --- > * @param aItem either calIAttendee or calIItemBase 310a345,382 > * Resolves delegated-to/delegated-from calusers for a given attendee to also include the > * respective CNs if available in a given set of attendees > * > * @param aAttendee {calIAttendee} The attendee to resolve the delegation information for > * @param aAttendees {Array} An array of calIAttendee objects to look up > * @return {Object} An object with string attributes for delegators and delegatees > */ > resolveDelegation: function (aAttendee, aAttendees) { > let attendees = aAttendees || [aAttendee]; > > // this will be replaced by a direct property getter in calIAttendee > let delegators = []; > let delegatees = []; > let delegatorProp = aAttendee.getProperty("DELEGATED-FROM"); > if (delegatorProp) { > delegators = typeof delegatorProp == "string" ? [delegatorProp] : delegatorProp; > } > let delegateeProp = aAttendee.getProperty("DELEGATED-TO"); > if (delegateeProp) { > delegatees = typeof delegateeProp == "string" ? [delegateeProp] : delegateeProp; > } > > for (let att of attendees) { > let resolveDelegation = function (e, i, a) { > if (e == att.id) { > a[i] = att.toString(); > } > }; > delegators.forEach(resolveDelegation); > delegatees.forEach(resolveDelegation); > } > return { > delegatees: delegatees.join(", "), > delegators: delegators.join(", ") > }; > }, > > /** 325a398,444 > * Returns a wellformed email string like 'attendee@example.net', > * 'Common Name ' or '"Name, Common" ' > * > * @param {calIAttendee} aAttendee - the attendee to check > * @param {boolean} aIncludeCn - whether or not to return also the CN if available > * @return {string} valid email string or an empty string in case of error > */ > getAttendeeEmail: function (aAttendee, aIncludeCn) { > // If the recipient id is of type urn, we need to figure out the email address, otherwise > // we fall back to the attendee id > let email = aAttendee.id.match(/^urn:/i) ? aAttendee.getProperty("EMAIL") || "" : aAttendee.id; > // Strip leading "mailto:" if it exists. > email = email.replace(/^mailto:/i, ""); > // We add the CN if requested and available > let cn = aAttendee.commonName; > if (aIncludeCn && email.length > 0 && cn && cn.length > 0) { > if (cn.match(/[,;]/)) { > cn = '"' + cn + '"'; > } > cn = cn + " <" + email + ">"; > if (cal.validateRecipientList(cn) == cn) { > email = cn; > } > } > return email; > }, > > /** > * Provides a string to use in email "to" header for given attendees > * > * @param {array} aAttendees - array of calIAttendee's to check > * @return {string} Valid string to use in a 'to' header of an email > */ > getRecipientList: function (aAttendees) { > let cbEmail = function (aVal, aInd, aArr) { > let email = cal.getAttendeeEmail(aVal, true); > if (!email.length) { > cal.LOG("Dropping invalid recipient for email transport: " + aVal.toString()); > } > return email; > } > return aAttendees.map(cbEmail) > .filter(aVal => aVal.length > 0) > .join(', '); > }, > > /** 388c507 < function compareNumbers(sortEntryA, sortEntryB) { --- > return function compareNumbers(sortEntryA, sortEntryB) { 392,393c511 < } < return compareNumbers; --- > }; 395c513 < function compareTimes(sortEntryA, sortEntryB) { --- > return function compareTimes(sortEntryA, sortEntryB) { 399,400c517 < } < return compareTimes; --- > }; 402c519 < function compareTimesFilled(sortEntryA, sortEntryB) { --- > return function compareTimesFilled(sortEntryA, sortEntryB) { 410,411c527 < } < return compareTimesFilled --- > }; 413,414c529 < let collator = cal.createLocaleCollator(); < function compareStrings(sortEntryA, sortEntryB) { --- > return function compareStrings(sortEntryA, sortEntryB) { 422a538 > let collator = cal.createLocaleCollator(); 425,427c541 < } < return compareStrings; < --- > }; 429c543 < function compareOther(sortEntryA, sortEntryB) { --- > return function compareOther(sortEntryA, sortEntryB) { 431,432c545 < } < return compareOther; --- > }; 501a615,616 > default: > return "unknown"; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calViewUtils.jsm 7c7 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/calXMLUtils.jsm 9c9 < EXPORTED_SYMBOLS = ["cal"]; --- > this.EXPORTED_SYMBOLS = ["cal"]; diff -r source/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ical.js 22c22 < return function(val) unwrapSetter.call(this, type, val, innerFunc); --- > return function(val) { return unwrapSetter.call(this, type, val, innerFunc); }; 4951,4952c4951,4956 < // found date or at the last BYMONTHDAY. < while (byMonthDay[dateIdx] <= lastDay && dateIdx < dateLen - 1) { --- > // found date or at the last BYMONTHDAY, unless we are > // initializing the iterator because in this case we have > // to consider the last found date too. > while (byMonthDay[dateIdx] <= lastDay && > !(isInit && byMonthDay[dateIdx] == lastDay) && > dateIdx < dateLen - 1) { 4973c4977,4982 < while (!dataIsValid) { --- > // Use a counter to avoid an infinite loop with malformed rules. > // Stop checking after 4 years so we consider also a leap year. > var monthsCounter = 48; > > while (!dataIsValid && monthsCounter) { > monthsCounter--; 5030a5040,5045 > if (monthsCounter <= 0) { > // Checked 4 years without finding a Byday that matches > // a Bymonthday. Maybe the rule is not correct. > throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); > } > Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnInvitationUtils.jsm Only in target/Thunderbird.app/Contents/Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules: ltnUtils.jsm Only in source/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd} Only in target/Thunderbird.app/Contents/Resources/extensions: {972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi Binary files source/Thunderbird.app/Contents/Resources/omni.ja and target/Thunderbird.app/Contents/Resources/omni.ja differ diff -r source/Thunderbird.app/Contents/Resources/platform.ini target/Thunderbird.app/Contents/Resources/platform.ini 2,5c2,5 < BuildID=20160503054940 < Milestone=38.8.0 < SourceStamp=e612dadc1a46 < SourceRepository=http://hg.mozilla.org/releases/mozilla-esr38 --- > BuildID=20160509110721 > Milestone=45.1.0 > SourceStamp=1f7c05ab920b7a5b400d2e91def69f292fa9a071 > SourceRepository=https://hg.mozilla.org/releases/mozilla-esr45 diff -r source/Thunderbird.app/Contents/Resources/precomplete target/Thunderbird.app/Contents/Resources/precomplete 4,8d3 < remove "Contents/Resources/searchplugins/wikipedia-ptpt.xml" < remove "Contents/Resources/searchplugins/sapo.xml" < remove "Contents/Resources/searchplugins/priberam.xml" < remove "Contents/Resources/searchplugins/google.xml" < remove "Contents/Resources/searchplugins/amazon-en-GB.xml" 57,59c52 < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png" < remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png" --- > remove "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi" 90c83 < remove "Contents/MacOS/libmozalloc.dylib" --- > remove "Contents/MacOS/liblgpllibs.dylib" 116d108 < rmdir "Contents/Resources/searchplugins/" 122d113 < rmdir "Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/" diff -r source/Thunderbird.app/Contents/Resources/removed-files target/Thunderbird.app/Contents/Resources/removed-files 0a1,3 > #ifndef XP_MACOSX > #define UNIX_BUT_NOT_MAC > #endif 10a14,16 > #ifndef ACCESSIBILITY > Contents/MacOS/components/accessibility.xpt > #endif 338a345,349 > #ifdef XP_UNIX > #ifndef XP_MACOSX > components/nsFilePicker.js > #endif > #endif 399a411,413 > #ifdef XP_WIN > modules/DownloadTaskbarProgress.jsm > #endif 421a436 > #ifdef XP_MACOSX 422a438 > #endif 423a440,442 > #ifdef XP_WIN > modules/WinSearchIntegration.js > #endif 496a516,518 > #ifdef XP_WIN > res/fonts/mathfontSymbol.properties > #endif 539a562 > #ifdef XP_MACOSX 571a595,600 > #else > extensions/talkback@mozilla.org/components/talkback/talkback > extensions/talkback@mozilla.org/components/talkback/XTalkback.ad > extensions/talkback@mozilla.org/components/talkback/master.ini > extensions/talkback@mozilla.org/components/talkback/talkback.so > #endif 798a828 > #ifdef XP_MACOSX 801a832,837 > #else > components/accessibility.xpt > components/filepicker.xpt > components/toolkitremote.xpt > components/websrvcs.xpt > #endif Only in source/Thunderbird.app/Contents/Resources: searchplugins diff -r source/Thunderbird.app/Contents/Resources/updater.ini target/Thunderbird.app/Contents/Resources/updater.ini 7c7 < Info=O Thunderbird está a instalar as atualizações e será iniciado brevemente... --- > Info=O Thunderbird está a instalar as atualizações e será iniciado brevemente… diff -r source/Thunderbird.app/Contents/_CodeSignature/CodeResources target/Thunderbird.app/Contents/_CodeSignature/CodeResources 9c9 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 13c13 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 25c25 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 37c37 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 41c41 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 45c45 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 49c49 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 53c53 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 57c57 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 61c61 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 65c65 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 69c69 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 73c73 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 77c77 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 81c81 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 85c85 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 89c89 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 93c93 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 97c97 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 101c101 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 105c105 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 109c109 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 113c113 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 117c117 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 121c121 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 125c125 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 129c129 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 133c133 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 137c137 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 141c141 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 145c145 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 149c149 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 153c153 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 157c157 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 161c161 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 165c165 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 169c169 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 173c173 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 177c177 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 181c181 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 185c185 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 189c189 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 193c193 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 197c197 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 201c201 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 205c205 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 209c209 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 217c217 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 221c221 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 225c225 < jWEhtwLrgPpiZWnz+Vfb7M874m0= --- > 11hPIlTqHHRvU0DjcLM+z3sVOUE= 229c229 < 1oDGf23VehvqGjUTHtXE8tWGbo4= --- > 3KERX6rlNQpA31cY5pqSWr3OOAQ= 233c233 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 237c237 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 241c241 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 245c245 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 249c249 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 253c253 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 257c257 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 261c261 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 265c265 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 269c269 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 273c273 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 277c277 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 281c281 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 285c285 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 289c289 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 301c301 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 305c305 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 313c313 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 317c317 < Kg2bEMD9vrFBwv0ZiTNT6F5QF38= --- > USUXzRuyucHOkk5GeiWl3oGg3Jc= 321c321 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 325c325 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 329c329 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 333c333 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 337c337 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 341c341 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 345c345 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 349c349 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 353c353 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 357c357 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 361c361 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 365c365 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 369c369 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 377c377 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 381c381 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 385c385 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 389c389 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 393c393 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 395c395 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 397c397 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 399c399 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 401c401 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 403c403 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 405c405 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 407c407 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 409c409 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 437c437 < 5uTUI56WLWlajTc6f8+ozdu7TP4= --- > ZrQBMqYZdfmNTvhPrvmW/ir0OWc= 441c441 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 445c445 < g1sF8KrmlxL1Z+8NcLod5o99m1Q= --- > 3eIm40yIco7pqE9gnYrE9+O5RYE= 458c458 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 608,627d607 < Resources/searchplugins/amazon-en-GB.xml < < QVoEK/OaPbZvX8N8bMN+KM8CQw8= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/priberam.xml < < AFonH8z/+zLr8/XpStrWICpxHAk= < < Resources/searchplugins/sapo.xml < < heaxH7WVWaK8dgNNPavr1JDSbUY= < < Resources/searchplugins/wikipedia-ptpt.xml < < 0ZXkZd6MwP1Rh+v4LKmeQPwCi/s= < 638c618 < w1iVOHTugPDgPhGbpArMtp6EYYk= --- > UaOg7wiwsUYenbYHciS9dmT9qCQ= 656c636 < EScJpAa+1dsywgXEr9TjyqUwD0A= --- > z5okeBCYt4xraAm+t42OfK3lnmA= 665c645 < cryOGdccfSm1ldm4nJmxg5vT9WM= --- > LpQssWvm1JJ3ZAe6fyvGPrHaxUY= 674c654 < VQPyjOlWR5oKDikjmppkxlnMx4U= --- > 52AOPntiMye4hkBeRRKKUPN0Iv0= 683c663 < uiq+Xg+OctUL0vj8NqRJ9VXRVOw= --- > /htQ6Yk7mhYJ/PCDNKKu49+DVdc= 692c672 < M6nY6p096+oFCAPtbbik5HOK9+k= --- > /Fnp6vZhQ9xJkFlWYztn9VhE7SM= 697c677 < MacOS/libmozalloc.dylib --- > MacOS/liblgpllibs.dylib 701c681 < 1UTPPc0ZwoJgffBQUH17CDuQaSw= --- > H3dm/kAsEx0Q4DmeK4fwUWsGFh8= 710c690 < 0aoGHelqSPrIeMAZz/wlG9pnuyI= --- > BBnbTrc9zarA8rtzbSpR2cjwAmg= 719c699 < qwDEhJwBuNLwNXPwRQsptamIsMM= --- > iykDTAP6rrD+8ZuPdmL4VPVHAOQ= 728c708 < FPpSGolbMvyGrv/eSnxOxlQ50LI= --- > C9K41vLMaZDwBz7uRdEdZjN1GYw= 737c717 < sfhf40wtzWCuVEKQ5RwH+UO202E= --- > Ik93qzGq/ZoBex9KPf9G8k3Lifg= 746c726 < mNQ5zxppB0NaXJf/DEjX799giXM= --- > 9mb1CZM9lDOX0O2d9ndJFpXxk1I= 755c735 < tDpHjGEliLO0aftjfanxaUZl058= --- > aqFPaM/rsd8Q7CSORbBCWQZd5A4= 764c744 < P14BPG0rTpOgt+B6DpUr7li+3pI= --- > ibPjtVnitJ9lcXn1hY2pJp2ZGfE= 773c753 < vmbS5DObBUjmvD3DPv7m+fh4Nc8= --- > KJA4TJxQtXcKwMfGSv0xC0HLfHA= 782c762 < bOUxn4JuRxL/jl+XqvbUJHLtNh4= --- > YXqxfZi6g/k80KGfuvSMdOmpoD4= 791c771 < VnVPnvQo4cU5KmVGkhAjTlRd9Ak= --- > Q82S3J0LIMgt+TzoB7uH3xKD8lk= 798c778 < 9WHif2NfbxTzY+9rasMBfUaf4wU= --- > izmUIyeu8qu2gIBTnFs6119TsO0= 802c782 < EhPD7eokduSv8rZMK1G+oTb9AN4= --- > ejjRlIpE8kXCwkKKa07i+EH+FVk= 814c794 < /cHaApqlf4UdToc3b5dhD3GsBNQ= --- > 8p33z3HZyYf4TmmbEz8ozMyj2YA= 826c806 < FDMOAcQWiKLSPzL7l5DgEOvH/mU= --- > m60GocIXAXkJ6+GyVcsdKHY5ZIU= 830c810 < uBOuhwLP+2z/9EKebqvkY2qaNKA= --- > JxOzwpavejhJEp9pHXLfBqoILl8= 834c814 < 90m5hlov/VHenl0yNjJqiosC1rY= --- > gLZZRPt1/cka4JoGIWRFM/5X2vw= 838c818 < hTh5P1bdCQRSZtNBTw48xvmFrOE= --- > 66l3vd++bD/Olim2EaR2YpWwAPQ= 842c822 < FdCOGw8UGskbso8vxbyWjL2KwJY= --- > YYYDMD5z7IHwTr3O0nUFYpfZBAM= 846c826 < XgTzMduQc14GInc6PgmQsGenqLA= --- > 8t8RqguQuzulU5BFsDtTCYlnmNg= 850c830 < unw5iZgcXYgB2lgqXTsccRuqOk8= --- > HZYK5QPzalBapuG2/jjwFtAFC0g= 854c834 < kaGJljop04pdYVZHRL+0tNb8vBg= --- > SBtbAOxPmSVSXSn3G7gZpCyJ/BQ= 858c838 < +nLhxSAQFFV12rjG66W/mlzUiSg= --- > 4K4eKPyd4i1Qkn/w91zwFH0G+a4= 862c842 < RV/2VEQ6/ulgaVp6UwPmEMFCRz8= --- > gQZfz9fnKAz3E34vrVtWXEAgYn8= 866c846 < agqG2SqD2UfJ34w1uz+gqthBfnM= --- > FnNV1XdjWDJN+Mfnusl3fXLTBAo= 870c850 < tIvhCc7/la+/FldndW/c96vKxEA= --- > /P7eId70yv/b7hRCoVLZotY3SAI= 874c854 < hvd+Xr8/35SITpzkJfV/wck3Kn0= --- > CLDovCAwRmSUhI572cJGJhucFP4= 878c858 < PMKclov0eEwV4iVw78YWiN8AtfY= --- > 2xS7HEkHCMc8UhIAkmZFlDmmwaI= 882c862 < HYIsvMDEc8BRoVefKaCn8Se1efo= --- > V3fBX3tVOmFg/OfeRupbFYnV4qA= 886c866 < BbZD6IrlmBAZ+wtSnfmtBURFtX8= --- > 6QJBenb5+diH659bRLQJ8wWFcFo= 890c870 < WnReC6a/dVRnVP8jz6NbY6FD/Ck= --- > VfGN9qi5bQ+KA8Knur0GCuoz1Bk= 894c874 < IQa2EcWD4KYVaoEKl8sG1VYx9aM= --- > rE+fWBhhmEI876nyEIuEapIswMo= 898c878 < R3PEqasqACpzH+8T45Fl1bATGnE= --- > h+Wxal6PfaeEUAGTZIJNWI3p8A4= 902c882 < RBgZGBgAuD9br1JyyV4eQH+3soc= --- > Yt4HZ1GsrMiFmqH4hRy5Uj25Yeg= 906c886 < 70WcH5GneOmMiuCP+EhMGV6b6i8= --- > D+L6NkzkKGqU4FJ8dW1bRItjMic= 910c890 < 9O/HoIQLnQVUERCkyAqQlfLOo3o= --- > l3Sz1YT+0DZ7Bh/2WQxdZdX8m7I= 914c894 < O8xlGtAafu3RYadUG1Rr7mKJVkk= --- > q1u+da5ytt9mwmjlvOYfgwBTc08= 918c898 < 88KUTR8yA+q8zctg3FWhe3S1ZUk= --- > 3zcsWRQsy4WS52Wv6WRi7YmKDiE= 922c902 < EOTijAiRbrptYmUVXt7PzpD87BQ= --- > 1tuV4UadlDrbeiD9cng9/xajlE0= 926c906 < tmPcbYIOd6064b7uuuj1jXadKvM= --- > +oaYMxFzfBWbGDsnthLU4IS8xJY= 930c910 < 1VfWPTEzjEwD9zRe1s9wrDs2mjE= --- > w/rBbfoHQgGob+Nqge0EPe0pzTk= 934c914 < UXgs/jmRU+a6t4oT0ElxxnqdKig= --- > uE7E7eUV8tYCOcrDM3xnIq8pAXk= 938c918 < RqeQHuKxNLM+mRMcEqx1jKS6DmI= --- > aRNf760L/uTPwqf2t0EyAwOVpeQ= 942c922 < nqST5bdDyokHGplXo59p+PUoZ7A= --- > mYSPIVB3E+CrB2CP7xfVc7jqljg= 946c926 < M5rzlVXmrwXQxRyMRqa4n3kEbP4= --- > WDH/dUg09t1Hip4qSDL23/X+Nk0= 950c930 < goi84xodMbyMZyHhEiu5BKL9mDw= --- > hOWK9Y8JahghTa/AItJOkRJxQLo= 954c934 < HGtckIK5ttvLli3LtLaI6KFcW/c= --- > drtXSD++e5Cdz2LAyLiEPwFzwsk= 958c938 < TZeebYf1VjR98LyxfjY6EXdE/cg= --- > ez6jeI7bjakesjaZ3C4/FgD16VU= 962c942 < 4K7R09D40SRZ4gDIZJ+htd2OHxU= --- > uoy4JE4JKYG/ewcuPUASgj+aEa0= 966c946 < C0uBQLh0LnqZUy1dogqmKO28jqk= --- > 94a6v3c8Dbq8svIobKOxgXJXZJ4= 970c950 < lw4dqVV28fgWZcneUQB+WYezABc= --- > fD4CPuZF0Qa7T8R2H0EfS1SffAk= 974c954 < BSTXNX7W1/qdtgNU+UQLWk8gwQU= --- > UCLNvorgaS00llJU1q8kiHVfDqo= 978c958 < r6h7Ti4iFdPx+LRV00b4e8JGn3M= --- > Cd/Wvir2Aw8Uh7e2/GQNllVKR3g= 982c962 < k2Pgza0654IeUB0AVwOGMjOIEtk= --- > mKX2wF5SHnWu8dLSAxChfcRf39M= 986c966 < vhcTH7RRWTR3RngB1IFGXPTvy8Y= --- > FtVQItYPPDaSukSv64Mrh6ceZ04= 990c970 < GN7hjBYFYFQF14IHLXYvoCVXuUI= --- > 0oQoRaPmYvPxZT79iNIslmjQ+u0= 994c974 < F2RR4/EXih7aMZu2VWoJ+1HdSzY= --- > 1i12R4KvTeJ+NoLbKuT6xh+8fGo= 998c978 < 1Dih2A+8MUvF97DHl0cZmVmufw0= --- > k6GNZE7is+Uk+zUdfMVwbEl+9H4= 1006c986 < uPIpHXe9ZDFDYFD8jCkB4Qpp3ds= --- > ehpY+NzqdS1ZMdQs2fg63Imou38= 1010c990 < v9nr2/Bz4BmL2s1eZso2s5D+rso= --- > jYV4u1p7uWv8OCLEiCOZMhM0GEw= 1014c994 < jWEhtwLrgPpiZWnz+Vfb7M874m0= --- > 11hPIlTqHHRvU0DjcLM+z3sVOUE= 1018c998 < 1oDGf23VehvqGjUTHtXE8tWGbo4= --- > 3KERX6rlNQpA31cY5pqSWr3OOAQ= 1022c1002 < UD3WwgSRfiQY18RNe1qSWNCJgJs= --- > 5FbiniU+Fa9b9s+vIt1U2lHitxU= 1026c1006 < X++JkPfBrPqu/a2OtxQAO9zHd5Y= --- > 8S9Z8MqkqApCOIP2Ud90kCkUMhw= 1030c1010 < HQojoGoYjjrcn4wtPq5bfdRM4sg= --- > 77/Ini5H2prifMQKWnoecgwqOWk= 1034c1014 < MUNBzymBgzNhU0Rl2JS62jv/xhc= --- > SV2VgEh99bD7aVVLaBdP9TQnIXg= 1038c1018 < p93Bwm66tyypsOo7ceb6wqDngac= --- > 3UPN75ScF9L+XRwkHbgz1sZsGcw= 1042c1022 < vYPBK8ZULRU40wW7N3dv9Aj3q/M= --- > 2sKbUNIsNoOia7P5Nl6M+qzmmAU= 1046c1026 < BJ8Sx0zVvT1qG0p0KB3V07NplnA= --- > L9ksT3cfNRUmmV/lOZ2qU0iHfbw= 1050c1030 < C+Vc/u26yA41EvpXdZH5u6zCQTA= --- > biYz4UFTjYBMAt07PHrwtcjOyj4= 1054c1034 < rLsWR4ZWKTTYwcOB3AhMu2qmVRI= --- > FKdoU9AvwxwcHht7Tt8mCGX8lyI= 1058c1038 < iylzisirjC+pYQp7TZGTlxMfyuY= --- > mcpwT6ntrbR0dXLx7pzBXFHoXKc= 1062c1042 < y7dV7L5iDVs6odPFhaH4Bwsq7O8= --- > kxP4sND2+3EXBYGG9YwHn2xYFbQ= 1066c1046 < tE++WAcZVwzVsJdo0CaDd/PFZ7Q= --- > KkKmrdoQNzt6o9O4aBD591hv9kk= 1070c1050 < qNWDA5fxyA1L2ai3HmgjNEpVGu4= --- > kMhmFrEDQxuisD7J9ShQ5G1bUv0= 1074c1054 < Z2LtTc6d8oU7SlZqEvGYCWP3BU8= --- > CDiMJLn7AKCUWgMknOTtOOolMfQ= 1078c1058 < QFB5Wt0QI63uUCKv7Fusc6Yo/S8= --- > Lpew4R99ph7+5E4XSoz8MdXpfAg= 1090c1070 < or6ytMhzTvSPO7LutKhX3zcC0hw= --- > 9YR2GX1lZOTGIf4gb87/VjRyXjQ= 1094c1074 < 3lhgiyhbobgj2yIkDj9+msM1AQ8= --- > LwNlt3dxuZXWh2PYag8ld6GCGpE= 1102c1082 < IgJDQR1RDMI1zK8J7jygusW4Qp0= --- > ElD10GMn1fVwGCFJnXh7AB5mOYE= 1106c1086 < Kg2bEMD9vrFBwv0ZiTNT6F5QF38= --- > USUXzRuyucHOkk5GeiWl3oGg3Jc= 1110c1090 < 6xSqVonwJhsvY6EdB75nRP7Lmt4= --- > mUdVyy3dRWwMgx/dyvDglw/beUs= 1114c1094 < jKZfFlBL4JJHzV1JBLSDiqK/mcQ= --- > 1cjyeDMLkjvQcwLb3iXCyUWDvwo= 1118c1098 < 29g+SH03K1QwwM/tM9NzQH6Fnjs= --- > XslUJeC7g/brZdUreCyFOMrVQ9g= 1122c1102 < KaGI7QSd/+gkgYCQo0FG2YRSGnQ= --- > g4KvpA0ab5aswVMYWDQ0j3u/+ps= 1126c1106 < pKg1kjvRqnnaHjv/W8mPDhPVN00= --- > F9f6oLjDRTtTlq+RM1fQ077iR5I= 1130c1110 < CyJKZb33dXFqy1uWV+2kerrpuVY= --- > Nn0dt293lNGPXpk5JS6TC4hP+Y8= 1134c1114 < MhOSju74dMVaSqSTHJMFKmKVH1w= --- > /CFAANoYT7oxWxvenYVjugoNmwU= 1138c1118 < hpYHPQpJlLFzI9FFfeHVRyY1fok= --- > 2YFnoTxBKEshBivK03QKUUD7hFE= 1142c1122 < T2ypJrVE366LsuvS+NxygIsspo4= --- > GjaElIhbWUi7wCqYbCsi0mDFhH0= 1146c1126 < N5V5T5Th/8Db9TcgUYaYv+fjPgQ= --- > mOn7qH+prcM9zibQVvzKww8BmOE= 1150c1130 < KPHf/BPCSNSDhS2YSQiRN9qfags= --- > a6q7IMFDUjZV7mNyyhnW+G9o3ug= 1154c1134 < sXVCZJvCUDPm9LbxwOsjRkkWVvs= --- > OkUvUHm3Tukmz3HMnmXgzwaTaEY= 1158c1138 < cQIF8zibm51ww8wdQF1agzg2K0w= --- > by3VSXq1ebCRoFeXSRqP+2YKNho= 1166c1146 < 2gF5bz0NRge+sXpF7BOHjQ8llZI= --- > uh4/v72Pm1Y7YTMd4RWZQLG1IgE= 1170c1150 < kU6zvJyADqT2G6aOzHaLQIUhsdM= --- > cuY1pXQDKXfdP4NIg1u+wRVXH/Y= 1174c1154 < xf1P8QD4iCe/OpxGROupakx5MTw= --- > rFCptvS4F6Hp3DA+sT48jmiGbV0= 1178c1158 < E8xSfysdgFQXwsziuOiN4q5Jxy4= --- > BsXyfxLw7Gk2CPspGNTDMawSN7E= 1182c1162 < v0GEjFPFyK9EywJUWLN5x5nULHQ= --- > VgPnqcKS2Rs3CkZurDzBXJFz3e0= 1184c1164 < Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnInvitationUtils.jsm 1186c1166 < dBROKhPTWXWNEj8Ak1v8ZZrQYYg= --- > 8Ka1m+Sv1U9fTtPYjHynCw5SISI= 1188c1168 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/modules/ltnUtils.jsm 1190c1170 < NiKaniYKBXFH+iloIPnE4bVtgJE= --- > 2jL+4uB7OqwB9xw7ljx2YbBYH70= 1192c1172 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png --- > Resources/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/timezones/zones.json 1194c1174 < n7ao5GWdVNdbncAsveEOD80oCZQ= --- > dBROKhPTWXWNEj8Ak1v8ZZrQYYg= 1196c1176 < Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf --- > Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi 1198c1178 < iRaNrKmeGRu780vbOr3IF3lRnOY= --- > ZDY3OnvVyjQiQTQmDT1zrA7hcws= 1226c1206 < 5uTUI56WLWlajTc6f8+ozdu7TP4= --- > ZrQBMqYZdfmNTvhPrvmW/ir0OWc= 1230c1210 < 3rS7s3cAXK/G1zJFTW+9/U60Alo= --- > smRuyHsHX1rh7G2kUzmXjjcTMK8= 1234c1214 < g1sF8KrmlxL1Z+8NcLod5o99m1Q= --- > 3eIm40yIco7pqE9gnYrE9+O5RYE= 1247c1227 < RJLn6h+4uJL/TZRaQyzO+0qhccY= --- > 9sZxkbSBHWqYg8Bj/446NpxdrR0= 1397,1416d1376 < Resources/searchplugins/amazon-en-GB.xml < < QVoEK/OaPbZvX8N8bMN+KM8CQw8= < < Resources/searchplugins/google.xml < < aHXeudfH8oQaqvk/zrXZ8fhhjWk= < < Resources/searchplugins/priberam.xml < < AFonH8z/+zLr8/XpStrWICpxHAk= < < Resources/searchplugins/sapo.xml < < heaxH7WVWaK8dgNNPavr1JDSbUY= < < Resources/searchplugins/wikipedia-ptpt.xml < < 0ZXkZd6MwP1Rh+v4LKmeQPwCi/s= < 1427c1387 < w1iVOHTugPDgPhGbpArMtp6EYYk= --- > UaOg7wiwsUYenbYHciS9dmT9qCQ= Contents of source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} dir only in source or target 48054022 8 -rw-r--r-- 1 cltbld staff 1221 May 9 18:43 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png 48054021 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:43 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon64.png 48054020 8 -rw-r--r-- 1 cltbld staff 1614 May 9 18:43 source/Thunderbird.app/Contents/Resources/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf Contents of source/Thunderbird.app/Contents/Resources/searchplugins dir only in source or target 48053971 8 -rw-r--r-- 1 cltbld staff 1688 May 9 18:43 source/Thunderbird.app/Contents/Resources/searchplugins/amazon-en-GB.xml 48053970 8 -rw-r--r-- 1 cltbld staff 2371 May 9 18:43 source/Thunderbird.app/Contents/Resources/searchplugins/google.xml 48053969 8 -rw-r--r-- 1 cltbld staff 1742 May 9 18:43 source/Thunderbird.app/Contents/Resources/searchplugins/priberam.xml 48053968 8 -rw-r--r-- 1 cltbld staff 2284 May 9 18:43 source/Thunderbird.app/Contents/Resources/searchplugins/sapo.xml 48053967 8 -rw-r--r-- 1 cltbld staff 1350 May 9 18:43 source/Thunderbird.app/Contents/Resources/searchplugins/wikipedia-ptpt.xml FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Retrieving 'https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1' from cache... Got this response: FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:43:56-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:43:57 GMT Keep-Alive: timeout=5, max=991 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:43:57 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nn-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:43:58-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:43:58 GMT Keep-Alive: timeout=5, max=900 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:43:58 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pa-IN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:43:59-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:43:59 GMT Keep-Alive: timeout=5, max=969 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:43:59 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:01-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:01 GMT Keep-Alive: timeout=5, max=979 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:44:01 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-BR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:02-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:02 GMT Keep-Alive: timeout=5, max=861 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:44:02 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-PT/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:04-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:04 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:44:04 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/rm/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/rm/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:44:04-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/rm/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67826313 Connection: keep-alive Date: Tue, 10 May 2016 00:20:08 GMT x-amz-replication-status: COMPLETED x-amz-version-id: O5b8Knlm083m0Ohq9q2D2AEtKEgXpsQE Last-Modified: Tue, 03 May 2016 15:24:29 GMT ETag: "dac303a73bacc77d822a00dc1533bb0e" Accept-Ranges: bytes Server: AmazonS3 Age: 5037 X-Cache: Hit from cloudfront Via: 1.1 978198446b6fdba8a499c04f84a3a7e6.cloudfront.net (CloudFront) X-Amz-Cf-Id: kPiTbChSYSsh_tF-uqbfgagSddtqsc5d_cuJrmloZgvHYIrwA1en_A== Length: 67826313 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 15.0M 4s 3072K ........ ........ ........ ........ ........ ........ 9% 14.8M 4s 6144K ........ ........ ........ ........ ........ ........ 13% 77.4M 3s 9216K ........ ........ ........ ........ ........ ........ 18% 28.8M 2s 12288K ........ ........ ........ ........ ........ ........ 23% 54.6M 2s 15360K ........ ........ ........ ........ ........ ........ 27% 42.5M 2s 18432K ........ ........ ........ ........ ........ ........ 32% 42.7M 2s 21504K ........ ........ ........ ........ ........ ........ 37% 11.3M 2s 24576K ........ ........ ........ ........ ........ ........ 41% 34.1M 2s 27648K ........ ........ ........ ........ ........ ........ 46% 65.6M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 102M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 41.0M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 39.1M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 51.9M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 48.3M 1s 46080K ........ ........ ........ ........ ........ ........ 74% 50.1M 1s 49152K ........ ........ ........ ........ ........ ........ 78% 55.2M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 34.5M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 24.1M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 66.9M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 53.4M 0s 64512K ........ ........ ........ .. 100% 42.2M=1.9s 2016-05-09 18:44:06 (33.9 MB/s) - 'update/complete.mar' saved [67826313/67826313] Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:07-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:07 GMT Keep-Alive: timeout=5, max=958 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:44:07 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ro/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ro/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:44:08-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ro/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68470062 Connection: keep-alive Date: Tue, 10 May 2016 00:21:48 GMT x-amz-replication-status: COMPLETED x-amz-version-id: clyND4mbntyYSyaxn2F7kPJTsoAoaSF0 Last-Modified: Tue, 03 May 2016 15:38:31 GMT ETag: "8c8a7e2bc4457d7cee6da5c1cb064cea" Accept-Ranges: bytes Server: AmazonS3 Age: 4941 X-Cache: Hit from cloudfront Via: 1.1 75d3bdff1b8eb2920f04077d77f16ca0.cloudfront.net (CloudFront) X-Amz-Cf-Id: 8mquUvPOx_1LQjtpB0HEWi0vMbvLs5YTpvknlwU-hFS-8OJY5FUcHQ== Length: 68470062 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 29.3M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 40.8M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 38.2M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 44.8M 1s 12288K ........ ........ ........ ........ ........ ........ 22% 36.4M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 45.0M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 39.8M 1s 21504K ........ ........ ........ ........ ........ ........ 36% 38.8M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 46.4M 1s 27648K ........ ........ ........ ........ ........ ........ 45% 47.0M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 48.5M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 52.1M 1s 36864K ........ ........ ........ ........ ........ ........ 59% 50.9M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 40.1M 1s 43008K ........ ........ ........ ........ ........ ........ 68% 42.5M 0s 46080K ........ ........ ........ ........ ........ ........ 73% 46.9M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 38.9M 0s 52224K ........ ........ ........ ........ ........ ........ 82% 54.5M 0s 55296K ........ ........ ........ ........ ........ ........ 87% 43.1M 0s 58368K ........ ........ ........ ........ ........ ........ 91% 51.4M 0s 61440K ........ ........ ........ ........ ........ ........ 96% 46.2M 0s 64512K ........ ........ ........ ........ .... 100% 41.6M=1.5s 2016-05-09 18:44:09 (43.0 MB/s) - 'update/complete.mar' saved [68470062/68470062] Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:11-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:11 GMT Keep-Alive: timeout=5, max=955 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:44:11 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/si/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/si/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:44:11-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/si/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67925406 Connection: keep-alive Date: Tue, 10 May 2016 00:24:30 GMT x-amz-replication-status: COMPLETED x-amz-version-id: ruRh480j5gRm.xgNM6Hw5qiNg5MYzxpF Last-Modified: Tue, 03 May 2016 16:05:30 GMT ETag: "d9ea4183e9115fdd704af0a26715d1b0" Accept-Ranges: bytes Server: AmazonS3 Age: 4782 X-Cache: Hit from cloudfront Via: 1.1 ccf10d437e3b13a9b947840075a4df94.cloudfront.net (CloudFront) X-Amz-Cf-Id: gTcNsQ1rtk7p3EAiLNuErSWjhBIf2iOrqaO6bsJMGcKEzzC1M-pR3g== Length: 67925406 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 22.3M 3s 3072K ........ ........ ........ ........ ........ ........ 9% 39.0M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 33.1M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 33.3M 2s 12288K ........ ........ ........ ........ ........ ........ 23% 28.6M 2s 15360K ........ ........ ........ ........ ........ ........ 27% 36.4M 2s 18432K ........ ........ ........ ........ ........ ........ 32% 33.4M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 32.7M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 32.6M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 35.4M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 30.8M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 42.8M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 53.2M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 39.2M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 47.3M 1s 46080K ........ ........ ........ ........ ........ ........ 74% 41.2M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 39.8M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 31.9M 0s 55296K ........ ........ ........ ........ ........ ........ 87% 44.9M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 49.4M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 45.3M 0s 64512K ........ ........ ........ .... 100% 48.8M=1.8s 2016-05-09 18:44:13 (36.5 MB/s) - 'update/complete.mar' saved [67925406/67925406] Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:14-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:14 GMT Keep-Alive: timeout=5, max=988 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:44:14 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sk/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sk/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:44:14-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sk/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68751535 Connection: keep-alive Date: Tue, 10 May 2016 00:25:46 GMT x-amz-replication-status: COMPLETED x-amz-version-id: i1t6InPxUS18oktmPQ2QsSpKD9URq3Xj Last-Modified: Tue, 03 May 2016 16:18:50 GMT ETag: "6f1a62b22ffd9f22367280e9e8674cc3" Accept-Ranges: bytes Server: AmazonS3 Age: 4709 X-Cache: Hit from cloudfront Via: 1.1 6eaa7f856e226a0db7cef6201d3b8393.cloudfront.net (CloudFront) X-Amz-Cf-Id: So6JQ1n1ZXuEkjd2As-xipA5X-VwmIxRw-RV2k6F1Qd6Qdk94ORznw== Length: 68751535 (66M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 38.9M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 33.0M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 35.6M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 26.4M 2s 12288K ........ ........ ........ ........ ........ ........ 22% 38.4M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 32.6M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 29.9M 1s 21504K ........ ........ ........ ........ ........ ........ 36% 48.4M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 26.0M 1s 27648K ........ ........ ........ ........ ........ ........ 45% 27.3M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 60.5M 1s 33792K ........ ........ ........ ........ ........ ........ 54% 48.9M 1s 36864K ........ ........ ........ ........ ........ ........ 59% 44.3M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 32.7M 1s 43008K ........ ........ ........ ........ ........ ........ 68% 39.9M 1s 46080K ........ ........ ........ ........ ........ ........ 73% 38.6M 0s 49152K ........ ........ ........ ........ ........ ........ 77% 28.7M 0s 52224K ........ ........ ........ ........ ........ ........ 82% 52.5M 0s 55296K ........ ........ ........ ........ ........ ........ 86% 43.3M 0s 58368K ........ ........ ........ ........ ........ ........ 91% 49.3M 0s 61440K ........ ........ ........ ........ ........ ........ 96% 56.4M 0s 64512K ........ ........ ........ ........ ........ . 100% 54.8M=1.7s 2016-05-09 18:44:16 (37.7 MB/s) - 'update/complete.mar' saved [68751535/68751535] Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:17-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:17 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:44:18 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sl/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sl/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:44:18-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sl/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67833512 Connection: keep-alive Date: Tue, 10 May 2016 00:27:36 GMT x-amz-replication-status: COMPLETED x-amz-version-id: mizMtOhibjj1EpDzAsJNDPFmjjc8KYAG Last-Modified: Tue, 03 May 2016 15:25:01 GMT ETag: "38a1d7b5e35256c2ac30082aec1cb560" Accept-Ranges: bytes Server: AmazonS3 Age: 4602 X-Cache: Hit from cloudfront Via: 1.1 373880a309382d9266a9313233b86d25.cloudfront.net (CloudFront) X-Amz-Cf-Id: BRuthP72-aaXJS0j5U7-LgJ3XUlm2IOaQbh4ulVn-KakNhGOnoomlg== Length: 67833512 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 45.8M 1s 3072K ........ ........ ........ ........ ........ ........ 9% 42.7M 1s 6144K ........ ........ ........ ........ ........ ........ 13% 41.5M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 47.1M 1s 12288K ........ ........ ........ ........ ........ ........ 23% 31.6M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 34.1M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 50.0M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 41.7M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 53.1M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 28.7M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 33.4M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 40.0M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 28.5M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 38.9M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 35.7M 1s 46080K ........ ........ ........ ........ ........ ........ 74% 36.0M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 36.8M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 37.1M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 45.9M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 25.2M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 24.6M 0s 64512K ........ ........ ........ ... 100% 32.9M=1.8s 2016-05-09 18:44:20 (36.3 MB/s) - 'update/complete.mar' saved [67833512/67833512] Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:21-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:21 GMT Keep-Alive: timeout=5, max=920 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:44:21 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sq/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sq/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:44:21-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sq/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 67838298 Connection: keep-alive Date: Tue, 10 May 2016 00:29:04 GMT x-amz-replication-status: COMPLETED x-amz-version-id: 9L2VKGPkLl8v0kJbsSOlpLjm5OqB7xCw Last-Modified: Tue, 03 May 2016 15:38:07 GMT ETag: "f00066de04d2fb60f8de7b788053ede1" Accept-Ranges: bytes Server: AmazonS3 Age: 4518 X-Cache: Hit from cloudfront Via: 1.1 2239f0bfe6d7427183a4e375c4638619.cloudfront.net (CloudFront) X-Amz-Cf-Id: VXYiJugMdZUw0g647WCRc1aop3js9Zjf5vecqFEswnNJCMWkkNTiog== Length: 67838298 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 26.3M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 33.1M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 28.7M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 30.1M 2s 12288K ........ ........ ........ ........ ........ ........ 23% 36.7M 2s 15360K ........ ........ ........ ........ ........ ........ 27% 34.6M 1s 18432K ........ ........ ........ ........ ........ ........ 32% 31.1M 1s 21504K ........ ........ ........ ........ ........ ........ 37% 18.6M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 19.9M 1s 27648K ........ ........ ........ ........ ........ ........ 46% 28.9M 1s 30720K ........ ........ ........ ........ ........ ........ 51% 28.7M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 29.0M 1s 36864K ........ ........ ........ ........ ........ ........ 60% 36.8M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 37.2M 1s 43008K ........ ........ ........ ........ ........ ........ 69% 38.3M 1s 46080K ........ ........ ........ ........ ........ ........ 74% 37.6M 1s 49152K ........ ........ ........ ........ ........ ........ 78% 34.6M 0s 52224K ........ ........ ........ ........ ........ ........ 83% 37.8M 0s 55296K ........ ........ ........ ........ ........ ........ 88% 39.5M 0s 58368K ........ ........ ........ ........ ........ ........ 92% 39.2M 0s 61440K ........ ........ ........ ........ ........ ........ 97% 42.0M 0s 64512K ........ ........ ........ ... 100% 56.8M=2.0s 2016-05-09 18:44:23 (31.7 MB/s) - 'update/complete.mar' saved [67838298/67838298] Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:25-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:25 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:44:25 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sr/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sr/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:44:25-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sr/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 69835157 Connection: keep-alive Date: Tue, 10 May 2016 00:30:24 GMT x-amz-replication-status: COMPLETED x-amz-version-id: fOocYlDnmv_Dv6N0CwymJOmy3di8AkZ4 Last-Modified: Tue, 03 May 2016 15:51:11 GMT ETag: "311b2c0cd63d5eff13419095082d72d2" Accept-Ranges: bytes Server: AmazonS3 Age: 4442 X-Cache: Hit from cloudfront Via: 1.1 990c804118e679d7ea0f4d3ca3cc4534.cloudfront.net (CloudFront) X-Amz-Cf-Id: lCyglzKkX8T0AyFfuUsyZuHVSkQOyURWjH_nuEa1jdcNPA9VG9RebA== Length: 69835157 (67M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 28.5M 2s 3072K ........ ........ ........ ........ ........ ........ 9% 54.4M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 55.4M 1s 9216K ........ ........ ........ ........ ........ ........ 18% 53.8M 1s 12288K ........ ........ ........ ........ ........ ........ 22% 54.1M 1s 15360K ........ ........ ........ ........ ........ ........ 27% 59.2M 1s 18432K ........ ........ ........ ........ ........ ........ 31% 52.9M 1s 21504K ........ ........ ........ ........ ........ ........ 36% 37.1M 1s 24576K ........ ........ ........ ........ ........ ........ 40% 52.9M 1s 27648K ........ ........ ........ ........ ........ ........ 45% 50.1M 1s 30720K ........ ........ ........ ........ ........ ........ 49% 58.1M 1s 33792K ........ ........ ........ ........ ........ ........ 54% 42.9M 1s 36864K ........ ........ ........ ........ ........ ........ 58% 41.5M 1s 39936K ........ ........ ........ ........ ........ ........ 63% 43.4M 1s 43008K ........ ........ ........ ........ ........ ........ 67% 48.6M 0s 46080K ........ ........ ........ ........ ........ ........ 72% 53.0M 0s 49152K ........ ........ ........ ........ ........ ........ 76% 51.0M 0s 52224K ........ ........ ........ ........ ........ ........ 81% 49.1M 0s 55296K ........ ........ ........ ........ ........ ........ 85% 62.7M 0s 58368K ........ ........ ........ ........ ........ ........ 90% 53.9M 0s 61440K ........ ........ ........ ........ ........ ........ 94% 54.1M 0s 64512K ........ ........ ........ ........ ........ ........ 99% 47.0M 0s 67584K ........ . 100% 41.8M=1.4s 2016-05-09 18:44:26 (48.7 MB/s) - 'update/complete.mar' saved [69835157/69835157] Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:28-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:28 GMT Keep-Alive: timeout=5, max=815 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:44:28 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Downloading 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sv-SE/thunderbird-38.8.0.complete.mar' and placing in cache... Executing: ['wget', '-O', 'update/complete.mar', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sv-SE/thunderbird-38.8.0.complete.mar'] --2016-05-09 18:44:28-- http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sv-SE/thunderbird-38.8.0.complete.mar Resolving archive.mozilla.org... 52.84.242.143 Connecting to archive.mozilla.org|52.84.242.143|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 68458212 Connection: keep-alive Date: Tue, 10 May 2016 00:31:51 GMT x-amz-replication-status: COMPLETED x-amz-version-id: hSm7XIEqxslBgMTqjjr1KyFnW3bmvz.i Last-Modified: Tue, 03 May 2016 16:04:26 GMT ETag: "235446b122ed76a2d4f5bf0df7398635" Accept-Ranges: bytes Server: AmazonS3 Age: 4357 X-Cache: Hit from cloudfront Via: 1.1 30bb04916f91d64c600e15c15000042d.cloudfront.net (CloudFront) X-Amz-Cf-Id: X58jraSQ0TIaH3HUGH3yzlQx42akF052xjmvbHo_CetvzWeTcqY2bg== Length: 68458212 (65M) [application/octet-stream] Saving to: 'update/complete.mar' 0K ........ ........ ........ ........ ........ ........ 4% 18.4M 3s 3072K ........ ........ ........ ........ ........ ........ 9% 58.4M 2s 6144K ........ ........ ........ ........ ........ ........ 13% 69.0M 2s 9216K ........ ........ ........ ........ ........ ........ 18% 46.7M 1s 12288K ........ ........ ........ ........ ........ ........ 22% 10.2M 2s 15360K ........ ........ ........ ........ ........ ........ 27% 20.0M 2s 18432K ........ ........ ........ ........ ........ ........ 32% 58.7M 2s 21504K ........ ........ ........ ........ ........ ........ 36% 100M 1s 24576K ........ ........ ........ ........ ........ ........ 41% 112M 1s 27648K ........ ........ ........ ........ ........ ........ 45% 52.6M 1s 30720K ........ ........ ........ ........ ........ ........ 50% 54.1M 1s 33792K ........ ........ ........ ........ ........ ........ 55% 53.6M 1s 36864K ........ ........ ........ ........ ........ ........ 59% 54.7M 1s 39936K ........ ........ ........ ........ ........ ........ 64% 38.7M 1s 43008K ........ ........ ........ ........ ........ ........ 68% 39.8M 1s 46080K ........ ........ ........ ........ ........ ........ 73% 36.3M 0s 49152K ........ ........ ........ ........ ........ ........ 78% 42.6M 0s 52224K ........ ........ ........ ........ ........ ........ 82% 52.3M 0s 55296K ........ ........ ........ ........ ........ ........ 87% 49.2M 0s 58368K ........ ........ ........ ........ ........ ........ 91% 51.7M 0s 61440K ........ ........ ........ ........ ........ ........ 96% 53.7M 0s 64512K ........ ........ ........ ........ .... 100% 53.7M=1.7s 2016-05-09 18:44:30 (38.9 MB/s) - 'update/complete.mar' saved [68458212/68458212] Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:31-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:31 GMT Keep-Alive: timeout=5, max=986 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:44:31 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ta-LK/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:33-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:33 GMT Keep-Alive: timeout=5, max=924 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:44:33 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/tr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:35-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:35 GMT Keep-Alive: timeout=5, max=924 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:44:35 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/uk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:37-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:37 GMT Keep-Alive: timeout=5, max=850 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:44:37 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/vi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:39-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:39 GMT Keep-Alive: timeout=5, max=934 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:44:39 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-CN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:41-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.1/20140908105904/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:41 GMT Keep-Alive: timeout=5, max=995 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:44:41 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-TW/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:43-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:43 GMT Keep-Alive: timeout=5, max=930 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:44:43 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ar/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:45-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:45 GMT Keep-Alive: timeout=5, max=996 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 594 Length: 594 [text/xml] Saving to: 'update.xml' 0K 100% 80.9M=0s 2016-05-09 18:44:45 (80.9 MB/s) - 'update.xml' saved [594/594] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ast/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:47-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:47 GMT Keep-Alive: timeout=5, max=993 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:44:47 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/be/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:49-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:49 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:44:49 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bg/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:51-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:51 GMT Keep-Alive: timeout=5, max=943 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:44:51 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bn-BD/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:53-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:53 GMT Keep-Alive: timeout=5, max=993 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:44:53 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/br/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:55-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:55 GMT Keep-Alive: timeout=5, max=965 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:44:55 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ca/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:57-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:44:57 GMT Keep-Alive: timeout=5, max=909 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:44:57 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/cs/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:44:59-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.44, 63.245.213.46, 63.245.213.45 Connecting to aus4.mozilla.org|63.245.213.44|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:00 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:45:00 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/da/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:01-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.46, 63.245.213.45, 63.245.213.44 Connecting to aus4.mozilla.org|63.245.213.46|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:01 GMT Keep-Alive: timeout=5, max=959 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:45:01 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/el/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:03-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.46, 63.245.213.45, 63.245.213.44 Connecting to aus4.mozilla.org|63.245.213.46|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:03 GMT Keep-Alive: timeout=5, max=991 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:45:03 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-GB/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:06-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.46, 63.245.213.45, 63.245.213.44 Connecting to aus4.mozilla.org|63.245.213.46|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:06 GMT Keep-Alive: timeout=5, max=996 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:45:06 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-AR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:08-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.46, 63.245.213.45, 63.245.213.44 Connecting to aus4.mozilla.org|63.245.213.46|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:08 GMT Keep-Alive: timeout=5, max=760 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:45:08 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-ES/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:10-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:10 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:45:10 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/et/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:12-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:12 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:45:12 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/eu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:14-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:14 GMT Keep-Alive: timeout=5, max=894 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:45:14 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:16-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:16 GMT Keep-Alive: timeout=5, max=980 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:45:16 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:18-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:18 GMT Keep-Alive: timeout=5, max=980 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:45:18 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fy-NL/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:20-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:20 GMT Keep-Alive: timeout=5, max=981 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:45:20 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ga-IE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:22-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:22 GMT Keep-Alive: timeout=5, max=953 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:45:22 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gd/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:24-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:24 GMT Keep-Alive: timeout=5, max=970 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:45:24 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:26-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:26 GMT Keep-Alive: timeout=5, max=921 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:45:26 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/he/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:28-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:28 GMT Keep-Alive: timeout=5, max=943 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:45:28 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:30-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:30 GMT Keep-Alive: timeout=5, max=997 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:45:30 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:32-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:32 GMT Keep-Alive: timeout=5, max=825 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:45:32 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hy-AM/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:34-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:34 GMT Keep-Alive: timeout=5, max=837 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:45:34 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/id/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:36-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:36 GMT Keep-Alive: timeout=5, max=925 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:45:37 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/is/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:39-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:39 GMT Keep-Alive: timeout=5, max=907 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:45:39 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/it/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:41-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:41 GMT Keep-Alive: timeout=5, max=987 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 606 Length: 606 [text/xml] Saving to: 'update.xml' 0K 100% 82.6M=0s 2016-05-09 18:45:41 (82.6 MB/s) - 'update.xml' saved [606/606] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ja-JP-mac/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:43-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:43 GMT Keep-Alive: timeout=5, max=983 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:45:43 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ko/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:45-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:45 GMT Keep-Alive: timeout=5, max=981 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:45:45 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/lt/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:47-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:47 GMT Keep-Alive: timeout=5, max=997 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:45:47 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nb-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:49-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:49 GMT Keep-Alive: timeout=5, max=955 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:45:49 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:51-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:51 GMT Keep-Alive: timeout=5, max=808 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:45:51 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nn-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:52-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:52 GMT Keep-Alive: timeout=5, max=966 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:45:52 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pa-IN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:54-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:54 GMT Keep-Alive: timeout=5, max=992 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:45:54 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:55-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:55 GMT Keep-Alive: timeout=5, max=710 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:45:55 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-BR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:57-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:57 GMT Keep-Alive: timeout=5, max=967 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:45:57 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-PT/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:58-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:58 GMT Keep-Alive: timeout=5, max=997 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:45:58 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/rm/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:45:59-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:45:59 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:45:59 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ro/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:01-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:01 GMT Keep-Alive: timeout=5, max=942 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:01 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/si/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:02-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:02 GMT Keep-Alive: timeout=5, max=934 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:46:02 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:04-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:04 GMT Keep-Alive: timeout=5, max=946 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:04 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:05-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:05 GMT Keep-Alive: timeout=5, max=704 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:05 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sq/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:06-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:06 GMT Keep-Alive: timeout=5, max=955 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:06 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:08-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:08 GMT Keep-Alive: timeout=5, max=916 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:46:08 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sv-SE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:09-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:09 GMT Keep-Alive: timeout=5, max=614 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:46:09 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ta-LK/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:11-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:11 GMT Keep-Alive: timeout=5, max=872 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:46:11 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/tr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:12-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:12 GMT Keep-Alive: timeout=5, max=958 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:46:12 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/uk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:13-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:13 GMT Keep-Alive: timeout=5, max=903 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:13 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/vi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:14-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:14 GMT Keep-Alive: timeout=5, max=529 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:46:15 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-CN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:16-- https://aus4.mozilla.org/update/3/Thunderbird/31.1.0/20140828165811/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:16 GMT Keep-Alive: timeout=5, max=856 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:46:16 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-TW/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:17-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:17 GMT Keep-Alive: timeout=5, max=895 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:17 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ar/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:19-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:19 GMT Keep-Alive: timeout=5, max=905 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 594 Length: 594 [text/xml] Saving to: 'update.xml' 0K 100% 70.8M=0s 2016-05-09 18:46:19 (70.8 MB/s) - 'update.xml' saved [594/594] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ast/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:20-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:20 GMT Keep-Alive: timeout=5, max=885 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:20 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/be/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:21-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:21 GMT Keep-Alive: timeout=5, max=997 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:46:22 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bg/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:23-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:23 GMT Keep-Alive: timeout=5, max=888 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:46:23 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bn-BD/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:24-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:24 GMT Keep-Alive: timeout=5, max=997 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:24 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/br/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:26-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:26 GMT Keep-Alive: timeout=5, max=831 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:26 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ca/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:27-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:27 GMT Keep-Alive: timeout=5, max=981 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:27 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/cs/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:28-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:28 GMT Keep-Alive: timeout=5, max=522 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 94.1M=0s 2016-05-09 18:46:28 (94.1 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/da/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:30-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:31 GMT Keep-Alive: timeout=5, max=991 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:31 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/el/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:32-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:32 GMT Keep-Alive: timeout=5, max=960 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:46:32 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-GB/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:34-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:34 GMT Keep-Alive: timeout=5, max=974 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:46:34 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-AR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:35-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:35 GMT Keep-Alive: timeout=5, max=996 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:46:35 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-ES/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:37-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:37 GMT Keep-Alive: timeout=5, max=997 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:37 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/et/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:38-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:38 GMT Keep-Alive: timeout=5, max=722 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:38 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/eu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:39-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:39 GMT Keep-Alive: timeout=5, max=962 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:39 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:41-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:41 GMT Keep-Alive: timeout=5, max=994 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:46:41 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:42-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:42 GMT Keep-Alive: timeout=5, max=996 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:46:42 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fy-NL/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:43-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:43 GMT Keep-Alive: timeout=5, max=951 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:46:43 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ga-IE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:45-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:45 GMT Keep-Alive: timeout=5, max=997 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:45 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gd/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:46-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:46 GMT Keep-Alive: timeout=5, max=984 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:46:46 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:47-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:47 GMT Keep-Alive: timeout=5, max=699 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:47 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/he/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:49-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:49 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:49 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:50-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:50 GMT Keep-Alive: timeout=5, max=948 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:50 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:51-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:51 GMT Keep-Alive: timeout=5, max=986 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:46:51 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hy-AM/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:53-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:52 GMT Keep-Alive: timeout=5, max=691 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:53 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/id/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:54-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:54 GMT Keep-Alive: timeout=5, max=957 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:46:54 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/is/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:55-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:55 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:55 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/it/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:57-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:57 GMT Keep-Alive: timeout=5, max=995 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 606 Length: 606 [text/xml] Saving to: 'update.xml' 0K 100% 82.6M=0s 2016-05-09 18:46:57 (82.6 MB/s) - 'update.xml' saved [606/606] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ja-JP-mac/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:46:58-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:46:59 GMT Keep-Alive: timeout=5, max=778 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:46:59 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ko/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:00-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:00 GMT Keep-Alive: timeout=5, max=994 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:47:00 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/lt/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:02-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:02 GMT Keep-Alive: timeout=5, max=924 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:47:02 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nb-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:03-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:03 GMT Keep-Alive: timeout=5, max=907 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:03 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:04-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:04 GMT Keep-Alive: timeout=5, max=951 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:47:04 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nn-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:06-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:06 GMT Keep-Alive: timeout=5, max=979 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:47:06 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pa-IN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:07-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:07 GMT Keep-Alive: timeout=5, max=892 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:47:07 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:09-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:09 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:47:09 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-BR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:10-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:10 GMT Keep-Alive: timeout=5, max=962 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:47:10 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-PT/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:11-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:11 GMT Keep-Alive: timeout=5, max=997 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:11 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/rm/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:13-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:13 GMT Keep-Alive: timeout=5, max=850 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:13 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ro/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:14-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:14 GMT Keep-Alive: timeout=5, max=987 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:14 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/si/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:16-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:15 GMT Keep-Alive: timeout=5, max=956 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:16 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:17-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:17 GMT Keep-Alive: timeout=5, max=994 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:17 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:18-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:18 GMT Keep-Alive: timeout=5, max=850 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:18 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sq/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:19-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:19 GMT Keep-Alive: timeout=5, max=978 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:47:19 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:21-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:21 GMT Keep-Alive: timeout=5, max=652 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:47:21 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sv-SE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:22-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:22 GMT Keep-Alive: timeout=5, max=978 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:47:22 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ta-LK/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:24-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:24 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:24 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/tr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:25-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:25 GMT Keep-Alive: timeout=5, max=997 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:25 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/uk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:27-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:26 GMT Keep-Alive: timeout=5, max=984 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:27 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/vi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:28-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:28 GMT Keep-Alive: timeout=5, max=892 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:47:28 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-CN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:29-- https://aus4.mozilla.org/update/3/Thunderbird/31.0/20140717165725/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:29 GMT Keep-Alive: timeout=5, max=996 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:47:29 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-TW/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:31-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:30 GMT Keep-Alive: timeout=5, max=938 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:31 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ar/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:32-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:32 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 594 Length: 594 [text/xml] Saving to: 'update.xml' 0K 100% 70.8M=0s 2016-05-09 18:47:32 (70.8 MB/s) - 'update.xml' saved [594/594] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ast/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:33-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:33 GMT Keep-Alive: timeout=5, max=630 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:47:33 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/be/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:35-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:35 GMT Keep-Alive: timeout=5, max=462 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:47:35 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bg/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:36-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:36 GMT Keep-Alive: timeout=5, max=961 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:47:36 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bn-BD/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:38-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:38 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 56.5M=0s 2016-05-09 18:47:38 (56.5 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/br/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:39-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:39 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:39 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ca/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:41-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:41 GMT Keep-Alive: timeout=5, max=995 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:41 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/cs/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:42-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:42 GMT Keep-Alive: timeout=5, max=986 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:47:42 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/da/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:44-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:44 GMT Keep-Alive: timeout=5, max=984 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:47:44 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/el/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:45-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:45 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:47:45 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-GB/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:46-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:46 GMT Keep-Alive: timeout=5, max=949 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:47:46 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-AR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:48-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:48 GMT Keep-Alive: timeout=5, max=937 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:47:48 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-ES/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:49-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:49 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:49 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/et/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:51-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:51 GMT Keep-Alive: timeout=5, max=989 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:47:51 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/eu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:52-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:52 GMT Keep-Alive: timeout=5, max=822 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:52 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:53-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:53 GMT Keep-Alive: timeout=5, max=723 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:47:53 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:54-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:55 GMT Keep-Alive: timeout=5, max=893 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:47:55 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fy-NL/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:56-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:56 GMT Keep-Alive: timeout=5, max=913 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:47:56 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ga-IE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:57-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:57 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:57 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gd/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:47:59-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:47:59 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:47:59 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:00-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:00 GMT Keep-Alive: timeout=5, max=993 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:48:00 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/he/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:01-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:01 GMT Keep-Alive: timeout=5, max=975 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:48:01 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:02-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:03 GMT Keep-Alive: timeout=5, max=994 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:48:03 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:04-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:04 GMT Keep-Alive: timeout=5, max=993 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:48:04 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hy-AM/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:05-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:05 GMT Keep-Alive: timeout=5, max=577 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:48:05 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/id/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:06-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:06 GMT Keep-Alive: timeout=5, max=797 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:48:06 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/is/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:08-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:08 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:48:08 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/it/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:09-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:09 GMT Keep-Alive: timeout=5, max=931 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 606 Length: 606 [text/xml] Saving to: 'update.xml' 0K 100% 72.2M=0s 2016-05-09 18:48:09 (72.2 MB/s) - 'update.xml' saved [606/606] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ja-JP-mac/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:10-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:10 GMT Keep-Alive: timeout=5, max=857 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:48:11 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ko/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:12-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:12 GMT Keep-Alive: timeout=5, max=940 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:48:12 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/lt/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:13-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:13 GMT Keep-Alive: timeout=5, max=997 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:48:13 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nb-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:15-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:15 GMT Keep-Alive: timeout=5, max=995 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:48:15 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:16-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:16 GMT Keep-Alive: timeout=5, max=991 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:48:16 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nn-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:18-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:18 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:48:18 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pa-IN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:19-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:19 GMT Keep-Alive: timeout=5, max=986 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:48:19 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:20-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:20 GMT Keep-Alive: timeout=5, max=991 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:48:20 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-BR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:22-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:22 GMT Keep-Alive: timeout=5, max=980 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:48:22 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-PT/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:23-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:23 GMT Keep-Alive: timeout=5, max=979 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:48:23 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/rm/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:25-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:25 GMT Keep-Alive: timeout=5, max=894 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:48:25 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ro/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:26-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:26 GMT Keep-Alive: timeout=5, max=968 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:48:26 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/si/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:27-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:27 GMT Keep-Alive: timeout=5, max=981 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:48:27 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:29-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:29 GMT Keep-Alive: timeout=5, max=979 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:48:29 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:30-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:30 GMT Keep-Alive: timeout=5, max=888 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:48:30 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sq/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:31-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:31 GMT Keep-Alive: timeout=5, max=871 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:48:32 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:33-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:33 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:48:33 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sv-SE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:34-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:34 GMT Keep-Alive: timeout=5, max=850 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:48:34 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ta-LK/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:36-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:35 GMT Keep-Alive: timeout=5, max=875 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:48:36 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/tr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:37-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:37 GMT Keep-Alive: timeout=5, max=974 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:48:37 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/uk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:39-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:39 GMT Keep-Alive: timeout=5, max=981 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:48:39 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/vi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:40-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:40 GMT Keep-Alive: timeout=5, max=889 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 95.0M=0s 2016-05-09 18:48:40 (95.0 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-CN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:41-- https://aus4.mozilla.org/update/3/Thunderbird/24.6.0/20140610001341/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:41 GMT Keep-Alive: timeout=5, max=952 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:48:41 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-TW/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:42-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:43 GMT Keep-Alive: timeout=5, max=858 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:48:43 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ar/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:44-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:44 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 594 Length: 594 [text/xml] Saving to: 'update.xml' 0K 100% 80.9M=0s 2016-05-09 18:48:44 (80.9 MB/s) - 'update.xml' saved [594/594] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ast/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:45-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:45 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:48:45 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/be/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:47-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:46 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:48:47 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bg/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:48-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:48 GMT Keep-Alive: timeout=5, max=963 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:48:48 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bn-BD/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:49-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:49 GMT Keep-Alive: timeout=5, max=966 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:48:49 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/br/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:51-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:51 GMT Keep-Alive: timeout=5, max=927 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:48:51 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ca/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:52-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:52 GMT Keep-Alive: timeout=5, max=991 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 94.1M=0s 2016-05-09 18:48:52 (94.1 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/cs/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:54-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:54 GMT Keep-Alive: timeout=5, max=979 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:48:54 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/da/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:55-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:55 GMT Keep-Alive: timeout=5, max=987 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:48:55 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/el/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:56-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:56 GMT Keep-Alive: timeout=5, max=940 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:48:56 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-GB/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:58-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:58 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:48:58 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-AR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:48:59-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:48:59 GMT Keep-Alive: timeout=5, max=988 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:48:59 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-ES/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:00-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:00 GMT Keep-Alive: timeout=5, max=966 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:00 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/et/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:02-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:02 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:02 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/eu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:03-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:03 GMT Keep-Alive: timeout=5, max=975 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:49:03 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:04-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:05 GMT Keep-Alive: timeout=5, max=989 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:05 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:06-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:06 GMT Keep-Alive: timeout=5, max=941 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:49:07 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fy-NL/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:08-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:08 GMT Keep-Alive: timeout=5, max=851 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:49:08 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ga-IE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:09-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:09 GMT Keep-Alive: timeout=5, max=983 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:09 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gd/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:11-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:11 GMT Keep-Alive: timeout=5, max=991 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:11 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:12-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:12 GMT Keep-Alive: timeout=5, max=904 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:49:12 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/he/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:13-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:13 GMT Keep-Alive: timeout=5, max=981 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 94.1M=0s 2016-05-09 18:49:13 (94.1 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:15-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:14 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:49:15 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:16-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:16 GMT Keep-Alive: timeout=5, max=443 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:49:16 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hy-AM/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:17-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:17 GMT Keep-Alive: timeout=5, max=941 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 51.3M=0s 2016-05-09 18:49:17 (51.3 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/id/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:19-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:19 GMT Keep-Alive: timeout=5, max=969 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:19 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/is/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:20-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:20 GMT Keep-Alive: timeout=5, max=991 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:20 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/it/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:22-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:22 GMT Keep-Alive: timeout=5, max=955 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 606 Length: 606 [text/xml] Saving to: 'update.xml' 0K 100% 82.6M=0s 2016-05-09 18:49:22 (82.6 MB/s) - 'update.xml' saved [606/606] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ja-JP-mac/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:23-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:23 GMT Keep-Alive: timeout=5, max=977 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:23 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ko/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:24-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:24 GMT Keep-Alive: timeout=5, max=747 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:24 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/lt/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:26-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:26 GMT Keep-Alive: timeout=5, max=988 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:49:26 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nb-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:27-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:27 GMT Keep-Alive: timeout=5, max=857 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:27 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:28-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:28 GMT Keep-Alive: timeout=5, max=985 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:49:28 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nn-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:30-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:29 GMT Keep-Alive: timeout=5, max=972 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:49:30 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pa-IN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:31-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:31 GMT Keep-Alive: timeout=5, max=922 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:31 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:32-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:32 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 95.0M=0s 2016-05-09 18:49:33 (95.0 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-BR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:34-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:34 GMT Keep-Alive: timeout=5, max=969 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:49:34 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-PT/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:35-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:35 GMT Keep-Alive: timeout=5, max=992 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:35 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/rm/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:37-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:37 GMT Keep-Alive: timeout=5, max=914 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:37 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ro/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:38-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:38 GMT Keep-Alive: timeout=5, max=884 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:38 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/si/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:40-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:40 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 94.1M=0s 2016-05-09 18:49:40 (94.1 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:41-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:41 GMT Keep-Alive: timeout=5, max=402 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:41 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:42-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:43 GMT Keep-Alive: timeout=5, max=980 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:49:43 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sq/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:44-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:44 GMT Keep-Alive: timeout=5, max=993 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:44 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:45-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:45 GMT Keep-Alive: timeout=5, max=933 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:49:45 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sv-SE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:47-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:47 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:49:47 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ta-LK/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:48-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:48 GMT Keep-Alive: timeout=5, max=648 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:48 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/tr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:50-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:50 GMT Keep-Alive: timeout=5, max=988 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:50 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/uk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:51-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:51 GMT Keep-Alive: timeout=5, max=849 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:51 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/vi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:52-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:52 GMT Keep-Alive: timeout=5, max=821 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:49:52 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-CN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:54-- https://aus4.mozilla.org/update/3/Thunderbird/24.5.0/20140424091057/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:54 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:49:54 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-TW/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:55-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:55 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 62.7M=0s 2016-05-09 18:49:55 (62.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ar/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:57-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:57 GMT Keep-Alive: timeout=5, max=989 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 594 Length: 594 [text/xml] Saving to: 'update.xml' 0K 100% 80.9M=0s 2016-05-09 18:49:57 (80.9 MB/s) - 'update.xml' saved [594/594] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ast/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:58-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:58 GMT Keep-Alive: timeout=5, max=955 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:49:58 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/be/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:49:59-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:49:59 GMT Keep-Alive: timeout=5, max=933 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:49:59 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bg/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:01-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:01 GMT Keep-Alive: timeout=5, max=910 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:50:01 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bn-BD/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:02-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:02 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:02 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/br/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:03-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:03 GMT Keep-Alive: timeout=5, max=707 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:50:03 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ca/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:05-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:05 GMT Keep-Alive: timeout=5, max=884 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 94.1M=0s 2016-05-09 18:50:05 (94.1 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/cs/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:06-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:06 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:50:06 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/da/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:07-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:07 GMT Keep-Alive: timeout=5, max=355 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:07 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/el/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:09-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:09 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:50:09 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-GB/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:10-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:10 GMT Keep-Alive: timeout=5, max=997 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:50:10 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-AR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:11-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:11 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:50:12 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-ES/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:13-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:13 GMT Keep-Alive: timeout=5, max=876 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:13 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/et/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:14-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:14 GMT Keep-Alive: timeout=5, max=344 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:50:14 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/eu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:16-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:16 GMT Keep-Alive: timeout=5, max=887 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:16 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:17-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:17 GMT Keep-Alive: timeout=5, max=856 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:17 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:19-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:19 GMT Keep-Alive: timeout=5, max=897 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:50:19 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fy-NL/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:20-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:20 GMT Keep-Alive: timeout=5, max=949 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:50:20 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ga-IE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:21-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:22 GMT Keep-Alive: timeout=5, max=924 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:22 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gd/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:23-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:23 GMT Keep-Alive: timeout=5, max=959 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:50:23 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:25-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:25 GMT Keep-Alive: timeout=5, max=961 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:25 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/he/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:26-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:26 GMT Keep-Alive: timeout=5, max=892 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:50:26 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:28-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:28 GMT Keep-Alive: timeout=5, max=643 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:28 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:29-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:29 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:50:29 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hy-AM/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:30-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:31 GMT Keep-Alive: timeout=5, max=954 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:50:31 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/id/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:32-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:32 GMT Keep-Alive: timeout=5, max=970 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:50:32 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/is/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:33-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:33 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:33 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/it/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:35-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:35 GMT Keep-Alive: timeout=5, max=981 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 606 Length: 606 [text/xml] Saving to: 'update.xml' 0K 100% 82.6M=0s 2016-05-09 18:50:35 (82.6 MB/s) - 'update.xml' saved [606/606] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ja-JP-mac/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:36-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:36 GMT Keep-Alive: timeout=5, max=974 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:36 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ko/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:37-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:37 GMT Keep-Alive: timeout=5, max=886 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:37 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/lt/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:39-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:39 GMT Keep-Alive: timeout=5, max=984 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:50:39 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nb-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:40-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:40 GMT Keep-Alive: timeout=5, max=994 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:40 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:42-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:41 GMT Keep-Alive: timeout=5, max=964 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:50:42 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nn-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:43-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:43 GMT Keep-Alive: timeout=5, max=986 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:50:43 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pa-IN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:44-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:44 GMT Keep-Alive: timeout=5, max=702 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:44 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:46-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:46 GMT Keep-Alive: timeout=5, max=876 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:50:46 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-BR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:47-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:47 GMT Keep-Alive: timeout=5, max=944 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:50:47 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-PT/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:49-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:49 GMT Keep-Alive: timeout=5, max=868 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:50:49 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/rm/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:50-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:50 GMT Keep-Alive: timeout=5, max=958 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:50 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ro/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:52-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:52 GMT Keep-Alive: timeout=5, max=859 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 94.1M=0s 2016-05-09 18:50:52 (94.1 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/si/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:53-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:53 GMT Keep-Alive: timeout=5, max=878 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:53 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:55-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:55 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 94.1M=0s 2016-05-09 18:50:55 (94.1 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:56-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:56 GMT Keep-Alive: timeout=5, max=874 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:56 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sq/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:58-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:58 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:50:58 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:50:59-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:50:59 GMT Keep-Alive: timeout=5, max=955 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:50:59 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sv-SE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:00-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:00 GMT Keep-Alive: timeout=5, max=669 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:51:00 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ta-LK/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:02-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:02 GMT Keep-Alive: timeout=5, max=864 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:02 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/tr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:03-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:03 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:51:03 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/uk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:05-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:05 GMT Keep-Alive: timeout=5, max=989 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:05 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/vi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:06-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:06 GMT Keep-Alive: timeout=5, max=925 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:51:06 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-CN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:07-- https://aus4.mozilla.org/update/3/Thunderbird/24.4.0/20140316131045/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:07 GMT Keep-Alive: timeout=5, max=645 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:51:07 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-TW/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:09-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:09 GMT Keep-Alive: timeout=5, max=993 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:09 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ar/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:10-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:10 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 594 Length: 594 [text/xml] Saving to: 'update.xml' 0K 100% 80.9M=0s 2016-05-09 18:51:10 (80.9 MB/s) - 'update.xml' saved [594/594] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ast/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:12-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:12 GMT Keep-Alive: timeout=5, max=921 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:51:12 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/be/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:13-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:13 GMT Keep-Alive: timeout=5, max=941 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:13 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bg/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:14-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:14 GMT Keep-Alive: timeout=5, max=793 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:51:14 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bn-BD/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:16-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:16 GMT Keep-Alive: timeout=5, max=997 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:16 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/br/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:17-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:17 GMT Keep-Alive: timeout=5, max=994 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:17 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ca/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:18-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:18 GMT Keep-Alive: timeout=5, max=927 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:18 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/cs/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:20-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:20 GMT Keep-Alive: timeout=5, max=597 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:20 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/da/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:21-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:21 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:51:21 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/el/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:23-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:23 GMT Keep-Alive: timeout=5, max=979 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:51:23 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-GB/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:24-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:24 GMT Keep-Alive: timeout=5, max=945 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:51:24 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-AR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:25-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:25 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:51:25 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-ES/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:27-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:27 GMT Keep-Alive: timeout=5, max=987 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:27 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/et/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:28-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:28 GMT Keep-Alive: timeout=5, max=965 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:28 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/eu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:30-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:30 GMT Keep-Alive: timeout=5, max=989 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:30 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:32-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:32 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:32 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:33-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:33 GMT Keep-Alive: timeout=5, max=953 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:51:33 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fy-NL/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:35-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:35 GMT Keep-Alive: timeout=5, max=940 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 95.0M=0s 2016-05-09 18:51:35 (95.0 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ga-IE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:36-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:36 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:36 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gd/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:38-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:37 GMT Keep-Alive: timeout=5, max=562 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:51:38 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:39-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:39 GMT Keep-Alive: timeout=5, max=995 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 94.1M=0s 2016-05-09 18:51:39 (94.1 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/he/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:41-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:41 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:51:41 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:42-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:42 GMT Keep-Alive: timeout=5, max=903 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:51:42 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:44-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:44 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:51:44 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hy-AM/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:45-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:45 GMT Keep-Alive: timeout=5, max=973 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:45 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/id/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:46-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:46 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:46 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/is/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:48-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:48 GMT Keep-Alive: timeout=5, max=950 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:48 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/it/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:49-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:49 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 606 Length: 606 [text/xml] Saving to: 'update.xml' 0K 100% 72.2M=0s 2016-05-09 18:51:49 (72.2 MB/s) - 'update.xml' saved [606/606] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ja-JP-mac/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:50-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:50 GMT Keep-Alive: timeout=5, max=962 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:51:50 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ko/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:52-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:52 GMT Keep-Alive: timeout=5, max=870 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:52 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/lt/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:53-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:53 GMT Keep-Alive: timeout=5, max=508 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:51:53 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nb-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:54-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:55 GMT Keep-Alive: timeout=5, max=992 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:51:55 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:56-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:56 GMT Keep-Alive: timeout=5, max=464 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:51:56 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nn-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:57-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:57 GMT Keep-Alive: timeout=5, max=945 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:51:57 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pa-IN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:51:59-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:51:59 GMT Keep-Alive: timeout=5, max=944 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:51:59 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:00-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:00 GMT Keep-Alive: timeout=5, max=803 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:52:00 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-BR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:02-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:01 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:52:02 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-PT/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:03-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:03 GMT Keep-Alive: timeout=5, max=996 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:52:03 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/rm/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:05-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:05 GMT Keep-Alive: timeout=5, max=927 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:05 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ro/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:06-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:06 GMT Keep-Alive: timeout=5, max=949 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 113M=0s 2016-05-09 18:52:06 (113 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/si/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:07-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:07 GMT Keep-Alive: timeout=5, max=962 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:07 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:09-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:09 GMT Keep-Alive: timeout=5, max=876 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:09 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:10-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:10 GMT Keep-Alive: timeout=5, max=931 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:10 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sq/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:12-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:12 GMT Keep-Alive: timeout=5, max=986 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:12 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:13-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:13 GMT Keep-Alive: timeout=5, max=977 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:52:13 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sv-SE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:15-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:15 GMT Keep-Alive: timeout=5, max=927 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:52:15 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ta-LK/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:16-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:16 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:16 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/tr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:17-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:17 GMT Keep-Alive: timeout=5, max=941 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:17 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/uk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:19-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:19 GMT Keep-Alive: timeout=5, max=928 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:52:19 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/vi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:20-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:20 GMT Keep-Alive: timeout=5, max=978 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:52:20 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-CN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:21-- https://aus4.mozilla.org/update/3/Thunderbird/24.3.0/20140131124303/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:22 GMT Keep-Alive: timeout=5, max=973 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:52:22 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-TW/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:23-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:23 GMT Keep-Alive: timeout=5, max=904 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:23 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ar/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:24-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:24 GMT Keep-Alive: timeout=5, max=926 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 594 Length: 594 [text/xml] Saving to: 'update.xml' 0K 100% 80.9M=0s 2016-05-09 18:52:24 (80.9 MB/s) - 'update.xml' saved [594/594] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ast/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:26-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:26 GMT Keep-Alive: timeout=5, max=940 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:52:26 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/be/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:27-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:27 GMT Keep-Alive: timeout=5, max=965 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:27 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bg/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:28-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:28 GMT Keep-Alive: timeout=5, max=992 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:52:28 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bn-BD/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:30-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:30 GMT Keep-Alive: timeout=5, max=992 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:30 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/br/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:31-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:32 GMT Keep-Alive: timeout=5, max=955 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:52:32 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ca/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:33-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:33 GMT Keep-Alive: timeout=5, max=953 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:33 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/cs/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:34-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:34 GMT Keep-Alive: timeout=5, max=702 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:35 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/da/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:36-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:36 GMT Keep-Alive: timeout=5, max=904 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:36 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/el/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:37-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:37 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:52:37 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-GB/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:39-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:39 GMT Keep-Alive: timeout=5, max=945 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:52:39 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-AR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:40-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:40 GMT Keep-Alive: timeout=5, max=943 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:52:40 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-ES/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:42-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:42 GMT Keep-Alive: timeout=5, max=997 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:52:42 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/et/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:43-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:43 GMT Keep-Alive: timeout=5, max=901 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:43 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/eu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:44-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:44 GMT Keep-Alive: timeout=5, max=911 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:44 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:46-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:46 GMT Keep-Alive: timeout=5, max=875 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 94.1M=0s 2016-05-09 18:52:46 (94.1 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:47-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:47 GMT Keep-Alive: timeout=5, max=996 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:52:47 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fy-NL/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:48-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:48 GMT Keep-Alive: timeout=5, max=985 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:52:48 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ga-IE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:50-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:50 GMT Keep-Alive: timeout=5, max=910 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:50 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gd/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:51-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:51 GMT Keep-Alive: timeout=5, max=985 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:51 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:52-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:52 GMT Keep-Alive: timeout=5, max=965 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:52 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/he/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:54-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:54 GMT Keep-Alive: timeout=5, max=364 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:54 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:55-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:55 GMT Keep-Alive: timeout=5, max=640 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:55 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:56-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:56 GMT Keep-Alive: timeout=5, max=966 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:52:56 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hy-AM/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:58-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:58 GMT Keep-Alive: timeout=5, max=900 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:58 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/id/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:52:59-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:52:59 GMT Keep-Alive: timeout=5, max=823 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:52:59 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/is/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:00-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:00 GMT Keep-Alive: timeout=5, max=937 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:53:00 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/it/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:02-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:02 GMT Keep-Alive: timeout=5, max=344 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 606 Length: 606 [text/xml] Saving to: 'update.xml' 0K 100% 82.6M=0s 2016-05-09 18:53:02 (82.6 MB/s) - 'update.xml' saved [606/606] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ja-JP-mac/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:03-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:03 GMT Keep-Alive: timeout=5, max=873 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:53:03 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ko/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:04-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:04 GMT Keep-Alive: timeout=5, max=992 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:53:04 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/lt/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:06-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:06 GMT Keep-Alive: timeout=5, max=966 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:53:06 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nb-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:07-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:07 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:53:07 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:09-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:09 GMT Keep-Alive: timeout=5, max=959 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:53:09 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nn-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:10-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:10 GMT Keep-Alive: timeout=5, max=802 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:53:10 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pa-IN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:11-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:11 GMT Keep-Alive: timeout=5, max=710 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:53:11 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:13-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:13 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:53:13 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-BR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:14-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:14 GMT Keep-Alive: timeout=5, max=995 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:53:14 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-PT/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:15-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:15 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:53:15 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/rm/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:17-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:17 GMT Keep-Alive: timeout=5, max=899 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 113M=0s 2016-05-09 18:53:17 (113 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ro/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:18-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:18 GMT Keep-Alive: timeout=5, max=864 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:53:18 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/si/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:19-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:19 GMT Keep-Alive: timeout=5, max=991 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:53:19 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:21-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:21 GMT Keep-Alive: timeout=5, max=995 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 94.1M=0s 2016-05-09 18:53:21 (94.1 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:22-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:22 GMT Keep-Alive: timeout=5, max=948 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:53:22 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sq/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:23-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:23 GMT Keep-Alive: timeout=5, max=911 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:53:23 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:25-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:25 GMT Keep-Alive: timeout=5, max=903 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:53:25 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sv-SE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:26-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:26 GMT Keep-Alive: timeout=5, max=966 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:53:26 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ta-LK/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:28-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:28 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:53:28 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/tr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:29-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:29 GMT Keep-Alive: timeout=5, max=995 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:53:29 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/uk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:30-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:30 GMT Keep-Alive: timeout=5, max=574 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:53:31 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/vi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:32-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:32 GMT Keep-Alive: timeout=5, max=971 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:53:32 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-CN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:33-- https://aus4.mozilla.org/update/3/Thunderbird/24.2.0/20131206072529/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:33 GMT Keep-Alive: timeout=5, max=924 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:53:33 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-TW/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:35-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:35 GMT Keep-Alive: timeout=5, max=976 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:53:35 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ar/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:36-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:36 GMT Keep-Alive: timeout=5, max=900 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 594 Length: 594 [text/xml] Saving to: 'update.xml' 0K 100% 80.9M=0s 2016-05-09 18:53:36 (80.9 MB/s) - 'update.xml' saved [594/594] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ast/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:37-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:37 GMT Keep-Alive: timeout=5, max=907 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:53:37 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/be/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:39-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:39 GMT Keep-Alive: timeout=5, max=993 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 94.1M=0s 2016-05-09 18:53:39 (94.1 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bg/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:40-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:40 GMT Keep-Alive: timeout=5, max=845 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 143M=0s 2016-05-09 18:53:40 (143 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bn-BD/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:41-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:41 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:53:41 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/br/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:43-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:43 GMT Keep-Alive: timeout=5, max=972 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 94.1M=0s 2016-05-09 18:53:43 (94.1 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ca/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:44-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:44 GMT Keep-Alive: timeout=5, max=903 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:53:45 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/cs/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:46-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:46 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:53:46 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/da/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:47-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:47 GMT Keep-Alive: timeout=5, max=626 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:53:47 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/el/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:49-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:49 GMT Keep-Alive: timeout=5, max=991 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:53:49 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-GB/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:50-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:50 GMT Keep-Alive: timeout=5, max=984 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:53:50 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-AR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:51-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:51 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:53:51 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/es-ES/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:53-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:53 GMT Keep-Alive: timeout=5, max=906 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:53:53 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/et/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:54-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:54 GMT Keep-Alive: timeout=5, max=882 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:53:54 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/eu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:56-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:55 GMT Keep-Alive: timeout=5, max=966 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:53:56 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:57-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:57 GMT Keep-Alive: timeout=5, max=922 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:53:57 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:53:58-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:53:58 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:53:58 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/fy-NL/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:00-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:00 GMT Keep-Alive: timeout=5, max=979 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:54:00 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ga-IE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:01-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:01 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:54:01 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gd/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:02-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:02 GMT Keep-Alive: timeout=5, max=868 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 94.1M=0s 2016-05-09 18:54:02 (94.1 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/gl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:04-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:04 GMT Keep-Alive: timeout=5, max=971 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:04 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/he/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:05-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:05 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:54:05 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:07-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:07 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:07 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hu/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:08-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:08 GMT Keep-Alive: timeout=5, max=843 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:54:08 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/hy-AM/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:09-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:09 GMT Keep-Alive: timeout=5, max=887 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:54:09 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/id/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:11-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:11 GMT Keep-Alive: timeout=5, max=990 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:11 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/is/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:12-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:12 GMT Keep-Alive: timeout=5, max=801 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:54:12 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/it/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:14-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:14 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 606 Length: 606 [text/xml] Saving to: 'update.xml' 0K 100% 82.6M=0s 2016-05-09 18:54:14 (82.6 MB/s) - 'update.xml' saved [606/606] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ja-JP-mac/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:15-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:15 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:15 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ko/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:16-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:16 GMT Keep-Alive: timeout=5, max=903 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:16 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/lt/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:18-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:18 GMT Keep-Alive: timeout=5, max=959 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:54:18 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nb-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:19-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:19 GMT Keep-Alive: timeout=5, max=928 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:19 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:21-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:21 GMT Keep-Alive: timeout=5, max=984 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:54:21 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/nn-NO/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:22-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:22 GMT Keep-Alive: timeout=5, max=998 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:54:22 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pa-IN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:23-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:23 GMT Keep-Alive: timeout=5, max=949 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:23 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:25-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:25 GMT Keep-Alive: timeout=5, max=975 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:54:25 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-BR/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:26-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:26 GMT Keep-Alive: timeout=5, max=851 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:54:26 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/pt-PT/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:27-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/rm/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:27 GMT Keep-Alive: timeout=5, max=788 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:54:27 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/rm/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:29-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ro/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:29 GMT Keep-Alive: timeout=5, max=875 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:54:29 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ro/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:30-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/si/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:30 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:30 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/si/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:31-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:31 GMT Keep-Alive: timeout=5, max=847 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:31 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:33-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sl/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus3.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:33 GMT Keep-Alive: timeout=5, max=986 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:54:33 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sl/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:34-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sq/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:34 GMT Keep-Alive: timeout=5, max=869 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:54:34 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sq/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:35-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:35 GMT Keep-Alive: timeout=5, max=999 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:35 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:37-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/sv-SE/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:37 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:54:37 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/sv-SE/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:38-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/ta-LK/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:38 GMT Keep-Alive: timeout=5, max=964 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:54:38 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ta-LK/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:39-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/tr/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:39 GMT Keep-Alive: timeout=5, max=927 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:54:40 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/tr/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:41-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/uk/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:41 GMT Keep-Alive: timeout=5, max=1000 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:41 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/uk/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:42-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/vi/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:42 GMT Keep-Alive: timeout=5, max=989 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:42 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/vi/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:43-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/zh-CN/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:44 GMT Keep-Alive: timeout=5, max=951 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:54:44 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-CN/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:45-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.1/20131118083805/Darwin_x86_64-gcc3-u-i386-x86_64/zh-TW/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:45 GMT Keep-Alive: timeout=5, max=985 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:54:45 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/zh-TW/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:46-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:46 GMT Keep-Alive: timeout=5, max=898 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:54:46 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ar/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:47-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:47 GMT Keep-Alive: timeout=5, max=896 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 594 Length: 594 [text/xml] Saving to: 'update.xml' 0K 100% 80.9M=0s 2016-05-09 18:54:48 (80.9 MB/s) - 'update.xml' saved [594/594] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ast/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:49-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:49 GMT Keep-Alive: timeout=5, max=123 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:54:49 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/be/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:50-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:50 GMT Keep-Alive: timeout=5, max=993 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:50 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bg/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:52-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:52 GMT Keep-Alive: timeout=5, max=891 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 71.3M=0s 2016-05-09 18:54:52 (71.3 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/bn-BD/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:53-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus2.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:53 GMT Keep-Alive: timeout=5, max=886 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:53 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/br/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:54-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus4.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:54 GMT Keep-Alive: timeout=5, max=754 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:54 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/ca/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:56-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:56 GMT Keep-Alive: timeout=5, max=853 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:54:56 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/cs/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:57-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus5.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:57 GMT Keep-Alive: timeout=5, max=971 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 80.7M=0s 2016-05-09 18:54:57 (80.7 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/da/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:54:59-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus1.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:54:59 GMT Keep-Alive: timeout=5, max=980 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 592 Length: 592 [text/xml] Saving to: 'update.xml' 0K 100% 70.6M=0s 2016-05-09 18:54:59 (70.6 MB/s) - 'update.xml' saved [592/592] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/el/thunderbird-38.8.0.complete.mar' from cache... Using https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Downloading 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1' and placing in cache... Executing: ['wget', '-O', 'update.xml', '--progress=dot:mega', '--server-response', '--no-check-certificate', 'https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1'] --2016-05-09 18:55:00-- https://aus4.mozilla.org/update/3/Thunderbird/24.1.0/20131023145339/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 Resolving aus4.mozilla.org... 63.245.213.45, 63.245.213.44, 63.245.213.46 Connecting to aus4.mozilla.org|63.245.213.45|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache X-Backend-Server: aus6.webapp.phx1.mozilla.com Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0, private Content-Type: text/xml; charset=utf-8 Date: Tue, 10 May 2016 01:55:00 GMT Keep-Alive: timeout=5, max=916 Accept-Ranges: bytes Connection: Keep-Alive X-Cache-Info: caching Content-Length: 598 Length: 598 [text/xml] Saving to: 'update.xml' 0K 100% 81.5M=0s 2016-05-09 18:55:00 (81.5 MB/s) - 'update.xml' saved [598/598] Got this response: Retrieving 'http://archive.mozilla.org/pub/thunderbird/candidates/38.8.0-candidates/build1/update/mac/en-GB/thunderbird-38.8.0.complete.mar' from cache... command: END (5700.68s elapsed) + set +x Scanning log for failures ------------------------- < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.2.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.1.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.1.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.1.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.7.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ar/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ast/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/be/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bg/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/bn-BD/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/br/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ca/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cs/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/cy/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/da/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/de/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/dsb/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/el/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-GB/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-AR/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/es-ES/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/et/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/eu/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fi/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fr/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/fy-NL/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ga-IE/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gd/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/gl/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/he/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hr/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hsb/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hu/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/hy-AM/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/id/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/is/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/it/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ja-JP-mac/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/ko/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/lt/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nb-NO/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nl/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/nn-NO/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pa-IN/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pl/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-BR/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 < var isSerious = (aErrNo == calIErrors.MODIFICATION_FAILED); > if (aErrNo == calIErrors.MODIFICATION_FAILED) { < const NS_ERROR_FAILURE = 2147500037; > var NS_ERROR_FAILURE = 2147500037; < const NS_BINDING_FAILED = generateNetFailure(1); > var NS_BINDING_FAILED = generateNetFailure(1); < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE, > notifyListener(Components.results.NS_ERROR_FAILURE, < return notifyListener(Components.results.NS_ERROR_FAILURE); > notifyListener(Components.results.NS_ERROR_FAILURE); FAIL: binary files found in diff FAIL: check_updates returned failure for Darwin_x86_64-gcc3-u-i386-x86_64 downloads/Thunderbird 38.6.0.dmg vs. downloads/Thunderbird 45.1.0.dmg: 1 FAIL: no partial update found for https://aus4.mozilla.org/update/3/Thunderbird/38.6.0/20160211132445/Darwin_x86_64-gcc3-u-i386-x86_64/pt-PT/release-localtest/default/default/default/update.xml?force=1 FAIL: download_mars returned non-zero exit code: 1 ------------------------- This run has failed, see the above log program finished with exit code 1 elapsedTime=5706.056887 ========= master_lag: 0.19 ========= ========= Finished 'bash scripts/scripts/release/updates/chunked-verify.sh ...' failed (results: 2, elapsed: 1 hrs, 35 mins, 6 secs) (at 2016-05-09 18:55:04.199942) ========= ========= Started no change (results: 0, elapsed: 0 secs) (at 2016-05-09 18:55:04.200947) ========= bash -c 'for file in `ls -1`; do cat $file; done' in dir /builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/properties (timeout 1200 secs) watching logfiles {} argv: ['bash', '-c', 'for file in `ls -1`; do cat $file; done'] environment: Apple_PubSub_Socket_Render=/tmp/launch-DFF9Xb/Render BUILDBOTCUSTOM=https://hg.mozilla.org/build/buildbotcustom BUILDBOT_CONFIGS=https://hg.mozilla.org/build/buildbot-configs CCACHE_COMPRESS=1 CCACHE_DIR=/builds/ccache CCACHE_UMASK=002 CHOWN_REVERT=~/bin/chown_revert CHOWN_ROOT=~/bin/chown_root CLOBBERER_URL=https://api.pub.build.mozilla.org/clobberer/forceclobber DISPLAY=/tmp/launch-uzQmPJ/org.x:0 GIT_SHARE_BASE_DIR=/builds/git-shared HG_SHARE_BASE_DIR=/builds/hg-shared HOME=/Users/cltbld IDLEIZER_DISABLE_SHUTDOWN=true LC_ALL=C LOGNAME=cltbld MOZ_AUTOMATION=1 MOZ_CRASHREPORTER_NO_REPORT=1 MOZ_OBJDIR=objdir-tb PATH=/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin PWD=/builds/slave/tb-rel-c-esr45-m64_rel_u_v_3-0/properties RUNNER_CONFIG_CMD=/opt/runner/bin/python2.7 /opt/runner/bin/runner -c /opt/runner/runner.cfg SHELL=/bin/bash SSH_AUTH_SOCK=/tmp/launch-zuRkMn/Listeners TINDERBOX_OUTPUT=1 TMPDIR=/var/folders/2l/m9q0960520g34fxk65k8lx6w00000w/T/ TWISTD_LOG_PATH=/builds/slave/twistd.log USER=cltbld VERSIONER_PYTHON_PREFER_32_BIT=no VERSIONER_PYTHON_VERSION=2.7 __CF_USER_TEXT_ENCODING=0x1C:0:0 using PTY: False program finished with exit code 0 elapsedTime=0.050199 ========= master_lag: 0.06 ========= ========= Finished no change (results: 0, elapsed: 0 secs) (at 2016-05-09 18:55:04.306231) ========= ========= Total master_lag: 0.30 =========